亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

python生成器在讀取接口用例中應(yīng)用解析

 更新時(shí)間:2023年06月16日 11:21:16   作者:軟件開發(fā)技術(shù)修煉  
這篇文章主要為大家介紹了python生成器在讀取接口用例中應(yīng)用解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪

Python生成器Generator

Python生成器(Generator)是一種特殊類型的函數(shù),它可以通過yield語句逐步生成值。

生成器提供了一種延遲計(jì)算的方式,可以逐步產(chǎn)生結(jié)果,而不是一次性生成所有的值。

1、生成器原理:

生成器函數(shù)在被調(diào)用時(shí)并不立即執(zhí)行,而是返回一個(gè)生成器對象。生成器對象可以被迭代,每次迭代都會(huì)執(zhí)行生成器函數(shù)中的代碼,直到遇到y(tǒng)ield語句。

當(dāng)遇到y(tǒng)ield語句時(shí),生成器會(huì)暫停執(zhí)行,并將yield語句后面的值作為當(dāng)前迭代的結(jié)果返回給調(diào)用方。下一次迭代時(shí),生成器會(huì)從暫停的位置繼續(xù)執(zhí)行,直到再次遇到y(tǒng)ield語句。

2、常用場景:

  • 迭代大數(shù)據(jù)集:處理大型文件、數(shù)據(jù)庫查詢結(jié)果或網(wǎng)絡(luò)數(shù)據(jù)流等;
  • 無限序列:例如自然數(shù)序列、斐波那契數(shù)列等;
  • 數(shù)據(jù)流處理:處理連續(xù)的數(shù)據(jù)流,例如實(shí)時(shí)日志數(shù)據(jù)或傳感器數(shù)據(jù);
  • 惰性計(jì)算:算法計(jì)算應(yīng)用;
  • 異步編程:生成器可以與協(xié)程結(jié)合使用,處理IO密集型任務(wù)或事件驅(qū)動(dòng)的程序;

提供高效的惰性計(jì)算和按需生成數(shù)據(jù)的能力。

3、生成器在接口自動(dòng)化中讀取大量用例

# 生成器函數(shù),打開指定測試文件并逐行讀取,每讀取一行,都使用yield將用例返回給調(diào)用方
def read_test_case(file_path):
    with open(file_path,'r') as file:
        for line in file:
            # line.strip(),字符串方法,用于去除字符串兩端的空白字符(包括空格、制表符、換行符等)
            yield line.strip()
# 測試文件路勁
test_case_path = "testcase.txt"
for test_case in read_test_case(test_case_path):
    # execute_case函數(shù)為執(zhí)行用例函數(shù)
    execute_case(test_case)

4、生成器+pytest實(shí)現(xiàn)參數(shù)化

#定義:生成器是由函數(shù)和yield關(guān)鍵字創(chuàng)造出來的寫法
'''
case:模擬從excel或yaml文件讀取出的用例數(shù)據(jù)
     標(biāo)題 內(nèi)容 預(yù)取結(jié)果 是否執(zhí)行
'''
import pytest
case=[('標(biāo)題', '內(nèi)容', '預(yù)期結(jié)果','是'),('標(biāo)題1', '內(nèi)容1', '預(yù)期結(jié)果1','是'),('標(biāo)題2', '內(nèi)容2', '預(yù)期結(jié)果2','是2')]
def ye():
    '''這里寫讀取文件的方法,是最終讀取case格式這樣的用例數(shù)據(jù),返回一個(gè)生成器對'''
    for i in case:
        # 判斷用例是否需要執(zhí)行,如是,返回
        #print(f'i={i}')
        if i[3] == '是':
            # 返回一組用例數(shù)據(jù),這組數(shù)據(jù)使用完后,再返回下一組數(shù)據(jù)
            yield i
# 使用生成器需要循環(huán)讀取它返回的每一個(gè)值,生成器就是ye()這個(gè)函數(shù)
# for i in ye():
#     print(i)
#   ('標(biāo)題', '內(nèi)容', '預(yù)期結(jié)果', '是')
#   ('標(biāo)題1', '內(nèi)容1', '預(yù)期結(jié)果1', '是')
@pytest.mark.parametrize('title,body,result,is_execute',ye())
def test(title,body,result,is_execute):
    print(f'title={title},是否執(zhí)行={is_execute}')
    assert '是' == is_execute
if __name__ == '__main__':
    pytest.main([r'E:\Mygithub projects\New_api_auto\test_api.py'])

運(yùn)行結(jié)果 

以上就是python生成器在讀取接口用例中應(yīng)用解析的詳細(xì)內(nèi)容,更多關(guān)于python生成器讀取接口的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • python中常用的各種數(shù)據(jù)庫操作模塊和連接實(shí)例

    python中常用的各種數(shù)據(jù)庫操作模塊和連接實(shí)例

    這篇文章主要介紹了python中常用的各種數(shù)據(jù)庫操作模塊和連接實(shí)例,包括sqlite3、oracle、mysql、excel,需要的朋友可以參考下
    2014-05-05
  • pybind11和numpy進(jìn)行交互的方法

    pybind11和numpy進(jìn)行交互的方法

    這篇文章主要介紹了pybind11和numpy進(jìn)行交互的方法,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值 ,需要的朋友可以參考下
    2019-07-07
  • PyCharm2021最新激活碼+激活碼補(bǔ)丁(親測最新版PyCharm2021.3激活成功)

    PyCharm2021最新激活碼+激活碼補(bǔ)丁(親測最新版PyCharm2021.3激活成功)

    這篇文章主要介紹了PyCharm2021最新激活碼+激活碼補(bǔ)丁,親測最新版PyCharm2021.3激活成功,PyCharm2020激活成功
    2020-09-09
  • python實(shí)現(xiàn)順時(shí)針打印矩陣

    python實(shí)現(xiàn)順時(shí)針打印矩陣

    這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)順時(shí)針打印矩陣,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-03-03
  • 舉例講解Django中數(shù)據(jù)模型訪問外鍵值的方法

    舉例講解Django中數(shù)據(jù)模型訪問外鍵值的方法

    這篇文章主要介紹了舉例講解Django中數(shù)據(jù)模型訪問外鍵值的方法,Django是最具人氣的Python web開發(fā)框架,需要的朋友可以參考下
    2015-07-07
  • Python hashlib模塊的使用示例

    Python hashlib模塊的使用示例

    這篇文章主要介紹了Python hashlib模塊的相關(guān)資料,幫助大家更好的理解和學(xué)習(xí)python,感興趣的朋友可以了解下
    2020-10-10
  • numpy matrix和array的乘和加實(shí)例

    numpy matrix和array的乘和加實(shí)例

    今天小編就為大家分享一篇numpy matrix和array的乘和加實(shí)例,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-06-06
  • python單星號(*)與雙星號(**)使用示例demo

    python單星號(*)與雙星號(**)使用示例demo

    這篇文章詳細(xì)介紹了Python中*與**操作符的使用場景及注意事項(xiàng),并通過示例代碼展示了它們在函數(shù)形參和實(shí)參、序列解包以及函數(shù)參數(shù)順序中的應(yīng)用,需要的朋友可以參考下
    2024-12-12
  • Python使用Selenium時(shí)遇到網(wǎng)頁<body>劃不動(dòng)的問題解決方法

    Python使用Selenium時(shí)遇到網(wǎng)頁<body>劃不動(dòng)的問題解決方法

    如果在使用 Selenium 時(shí)遇到網(wǎng)頁的 <body> 劃不動(dòng)的問題,這通常是因?yàn)轫撁娴臐L動(dòng)機(jī)制(例如,可能使用了一個(gè)具有固定高度的容器或自定義的滾動(dòng)條)導(dǎo)致無法通過簡單的 JavaScript 實(shí)現(xiàn)滾動(dòng),可以通過以下方法來解決該問題
    2024-10-10
  • python中的reduce內(nèi)建函數(shù)使用方法指南

    python中的reduce內(nèi)建函數(shù)使用方法指南

    python中的reduce內(nèi)建函數(shù)是一個(gè)二元操作函數(shù),他用來將一個(gè)數(shù)據(jù)集合(鏈表,元組等)中的所有數(shù)據(jù)進(jìn)行下列操作:用傳給reduce中的函數(shù) func()(必須是一個(gè)二元操作函數(shù))先對集合中的第1,2個(gè)數(shù)據(jù)進(jìn)行操作,得到的結(jié)果再與第三個(gè)數(shù)據(jù)用func()函數(shù)運(yùn)算,最后得到一個(gè)結(jié)果
    2014-08-08

最新評論