python生成器在讀取接口用例中應用解析
Python生成器Generator
Python生成器(Generator)是一種特殊類型的函數(shù),它可以通過yield語句逐步生成值。
生成器提供了一種延遲計算的方式,可以逐步產生結果,而不是一次性生成所有的值。
1、生成器原理:
生成器函數(shù)在被調用時并不立即執(zhí)行,而是返回一個生成器對象。生成器對象可以被迭代,每次迭代都會執(zhí)行生成器函數(shù)中的代碼,直到遇到y(tǒng)ield語句。
當遇到y(tǒng)ield語句時,生成器會暫停執(zhí)行,并將yield語句后面的值作為當前迭代的結果返回給調用方。下一次迭代時,生成器會從暫停的位置繼續(xù)執(zhí)行,直到再次遇到y(tǒng)ield語句。
2、常用場景:
- 迭代大數(shù)據集:處理大型文件、數(shù)據庫查詢結果或網絡數(shù)據流等;
- 無限序列:例如自然數(shù)序列、斐波那契數(shù)列等;
- 數(shù)據流處理:處理連續(xù)的數(shù)據流,例如實時日志數(shù)據或傳感器數(shù)據;
- 惰性計算:算法計算應用;
- 異步編程:生成器可以與協(xié)程結合使用,處理IO密集型任務或事件驅動的程序;
提供高效的惰性計算和按需生成數(shù)據的能力。
3、生成器在接口自動化中讀取大量用例
# 生成器函數(shù),打開指定測試文件并逐行讀取,每讀取一行,都使用yield將用例返回給調用方
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實現(xiàn)參數(shù)化
#定義:生成器是由函數(shù)和yield關鍵字創(chuàng)造出來的寫法
'''
case:模擬從excel或yaml文件讀取出的用例數(shù)據
標題 內容 預取結果 是否執(zhí)行
'''
import pytest
case=[('標題', '內容', '預期結果','是'),('標題1', '內容1', '預期結果1','是'),('標題2', '內容2', '預期結果2','是2')]
def ye():
'''這里寫讀取文件的方法,是最終讀取case格式這樣的用例數(shù)據,返回一個生成器對'''
for i in case:
# 判斷用例是否需要執(zhí)行,如是,返回
#print(f'i={i}')
if i[3] == '是':
# 返回一組用例數(shù)據,這組數(shù)據使用完后,再返回下一組數(shù)據
yield i
# 使用生成器需要循環(huán)讀取它返回的每一個值,生成器就是ye()這個函數(shù)
# for i in ye():
# print(i)
# ('標題', '內容', '預期結果', '是')
# ('標題1', '內容1', '預期結果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'])
運行結果

以上就是python生成器在讀取接口用例中應用解析的詳細內容,更多關于python生成器讀取接口的資料請關注腳本之家其它相關文章!
相關文章
python 實現(xiàn)圍棋游戲(純tkinter gui)
這篇文章主要介紹了python 如何實現(xiàn)圍棋游戲,幫助大家利用tkinter制作圖形界面程序,感興趣的朋友可以了解下2020-11-11
Python實現(xiàn)雙軸組合圖表柱狀圖和折線圖的具體流程
這篇文章主要介紹了Python雙軸組合圖表柱狀圖+折線圖,Python繪制雙軸組合的關鍵在plt庫的twinx()函數(shù),具體實例代碼跟隨小編一起看看吧2021-08-08
Python獲取電腦硬件信息及狀態(tài)的實現(xiàn)方法
這篇文章主要介紹了Python獲取電腦硬件信息及狀態(tài)的實現(xiàn)方法,是一個很實用的技巧,需要的朋友可以參考下2014-08-08
Python上下文管理器的用法(Context Manager)
上下文管理器是Python中管理資源分配與釋放的重要機制,通過with語句實現(xiàn)資源的自動管理,它適用于文件操作、數(shù)據庫連接、線程鎖管理等場景,可保證資源正確釋放,本文總結了上下文管理器的實現(xiàn)方式、應用場景、最佳實踐和高級用法,旨在幫助開發(fā)者更好地掌握這一強大工具2026-04-04

