最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

軟件測試 | Pytest測試框架之fixture進(jìn)階

2023-06-07 10:15 作者:愛測軟件測試  | 我要投稿

pytest 測試框架之 fixture 進(jìn)階

簡介

fixture 即測試用例執(zhí)行的環(huán)境準(zhǔn)備和消理,fixture 主要的目的是為了提供一種可靠和可重復(fù)性的手段去 運(yùn)行那些最基本的測試內(nèi)容。比如測試網(wǎng)站的功能時(shí),每個(gè)測試用例都要登錄和登出,利用 fixture 就可 以只做一次,否則每個(gè)測試用例都要做這兩步。

fixture 類似于 setup/teardown 機(jī)制,但 fixture 更靈活的完成測試的初始化以及資源清理工作??梢允?用它將你需要執(zhí)行 setup 的測試用例傳入 fixture 函數(shù)名,不需要的測試用例可以不用傳遞,不傳遞 fixture 名的測試用例將不會執(zhí)行 fixture 函數(shù)。它允許我們將復(fù)雜的測試需求歸納成更簡單、更有組織的 測試函數(shù)。 @pytest.fixture 與 @pytest.mark.parametrize 結(jié)合實(shí)現(xiàn)參數(shù)化

如果測試數(shù)據(jù)需要在 fixture 方法中使用,同時(shí)也需要在測試用例中使用,可以在使用 parametrize 的時(shí) 候添加一個(gè)參數(shù) indirect=True ,pytest 可以實(shí)現(xiàn)將參數(shù)傳入到 fixture 方法中,也可以在當(dāng)前的測試 用例中使用。

當(dāng) indirect 參數(shù)設(shè)置這個(gè)參數(shù)為 True 時(shí),pytest 會把 argnames 當(dāng)作函數(shù)去執(zhí)行,將 argvalues 作 為參數(shù)傳入到 argnames 這個(gè)函數(shù)里。創(chuàng)建“test_param.py”文件,代碼如下:

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

上面的結(jié)果可以看出,當(dāng) indirect=True 時(shí),會將 login_r 作為參數(shù),test_user_data 被當(dāng)作參數(shù) 傳入到 login_r 方法中,生成多條測試用例。通過 return 將結(jié)果返回,當(dāng)調(diào)用 login_r 可以獲取 到 login_r 這個(gè)方法的返回?cái)?shù)據(jù)。

fixture 間相互調(diào)用

fixture 可以作為參數(shù)傳遞給其它的 fixture 函數(shù)。

工作中可能不同的功能,依賴的數(shù)據(jù),環(huán)境不一樣,需要定義多個(gè)功能函數(shù)。

比如:登錄 fixture 函數(shù)中需要信賴連接數(shù)據(jù)庫的 fixture 函數(shù)??梢詫⑦@些功能函數(shù)都定義為 fixture, 然后通過傳遞 fixture 函數(shù),實(shí)現(xiàn)功能之間的數(shù)據(jù)交換。

測試用例/fixture 可以請求多個(gè) fixture

下面是一個(gè)示例:

Fixture 終結(jié)器(Teardown/Cleanup)

添加終結(jié)器

但如果 yield 之前的內(nèi)容發(fā)生異常,將不會執(zhí)行 yield 后面的內(nèi)容。

對于這種情況,還可以直接向測試的 request 對象添加 “finalizer” 終結(jié)器函數(shù)實(shí)現(xiàn)這個(gè)功能(與 yield fixtures 類似的結(jié)果,但能力更強(qiáng))。

舉個(gè)應(yīng)用場景:

比如我們在讀取文件的時(shí)候,需要打開文件,獲取文件流對象,定義一個(gè)關(guān)閉文件的方法 close() , 在終結(jié)器中實(shí)現(xiàn)關(guān)閉操作。最后即使后面的代碼有異常,也會執(zhí)行終結(jié)器里面的操作。


軟件測試 | Pytest測試框架之fixture進(jìn)階的評論 (共 條)

分享到微博請遵守國家法律
衡山县| 平昌县| 天水市| 德州市| 积石山| 钟山县| 朝阳区| 凉城县| 鹿泉市| 乐清市| 鄂托克前旗| 恩平市| 开鲁县| 修水县| 平谷区| 和田县| 衡水市| 万载县| 宜章县| 武平县| 彩票| 平陆县| 蕲春县| 兴隆县| 宾阳县| 梓潼县| 沛县| 望江县| 博客| 枣阳市| 织金县| 徐水县| 株洲县| 九江县| 铜川市| 天津市| 中山市| 呼伦贝尔市| 绥江县| 宣化县| 肇源县|