五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

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

Python 自動化測試(三): pytest 參數(shù)化測試用例構(gòu)建

2022-10-28 09:53 作者:愛測軟件測試  | 我要投稿


在之前的文章中主要分享了 pytest 的實用特性,接下來講 Pytest 參數(shù)化用例的構(gòu)建。

如果待測試的輸入與輸出是一組數(shù)據(jù),可以把測試數(shù)據(jù)組織起來用不同的測試數(shù)據(jù)調(diào)用相同的測試方法。參數(shù)化顧名思義就是把不同的參數(shù),寫到一個集合里,然后程序會自動取值運行用例,直到集合為空便結(jié)束。pytest 中可以使用@pytest.mark.parametrize來參數(shù)化。

parametrize( ) 方法源碼:


  • 主要參數(shù)說明

  • argsnames :參數(shù)名,是個字符串,如中間用逗號分隔則表示為多個參數(shù)名

  • argsvalues :參數(shù)值,參數(shù)組成的列表,列表中有幾個元素,就會生成幾條用例

  • 使用方法

  • 使用?@pytest.mark.paramtrize() 裝飾測試方法

  • parametrize(‘data’, param) 中的 “data” 是自定義的參數(shù)名,param 是引入的參數(shù)列表

  • 將自定義的參數(shù)名 data 作為參數(shù)傳給測試用例 test_func

  • 然后就可以在測試用例內(nèi)部使用 data 的參數(shù)了
    創(chuàng)建測試用例,傳入三組參數(shù),每組兩個元素,判斷每組參數(shù)里面表達式和值是否相等,代碼如下:
    運行結(jié)果:
    整個執(zhí)行過程中,pytest 將參數(shù)列表 [(“3+5”,8),(“2+5”,7),("75",30)] 中的三組數(shù)據(jù)取出來,每組數(shù)據(jù)生成一條測試用例,并且將每組數(shù)據(jù)中的兩個元素分別賦值到方法中,作為測試方法的參數(shù)由測試用例使用。
    同一個測試用例還可以同時添加多個@pytest.mark.parametrize裝飾器, 多個 parametrize 的所有元素互相組合(類似笛卡兒乘積),生成大量測試用例。
    場景:比如登錄場景,用戶名輸入情況有 n 種,密碼的輸入情況有 m 種,希望驗證用戶名和密碼,就會涉及到 nm 種組合的測試用例,如果把這些數(shù)據(jù)一一的列出來,工作量也是非常大的。pytest 提供了一種參數(shù)化的方式,將多組測試數(shù)據(jù)自動組合,生成大量的測試用例。示例代碼如下:
    運行結(jié)果:
    分析如上運行結(jié)果,測試方法 test_foo( ) 添加了兩個?@pytest.mark.parametrize() 裝飾器,兩個裝飾器分別提供兩個參數(shù)值的列表,2 * 3 = 6 種結(jié)合,pytest 便會生成 6 條測試用例。在測試中通常使用這種方法是所有變量、所有取值的完全組合,可以實現(xiàn)全面的測試。
    下面講結(jié)合?@pytest.fixture?與?@pytest.mark.parametrize?實現(xiàn)參數(shù)化。
    如果測試數(shù)據(jù)需要在 fixture 方法中使用,同時也需要在測試用例中使用,可以在使用 parametrize 的時候添加一個參數(shù) indirect=True,pytest 可以實現(xiàn)將參數(shù)傳入到 fixture 方法中,也可以在當(dāng)前的測試用例中使用。
    parametrize 源碼:
    indirect 參數(shù)設(shè)置為 True,pytest 會把 argnames 當(dāng)作函數(shù)去執(zhí)行,將 argvalues 作為參數(shù)傳入到 argnames 這個函數(shù)里。創(chuàng)建“test_param.py”文件,代碼如下:
    運行結(jié)果:
    上面的結(jié)果可以看出,當(dāng) indirect=True 時,會將 login_r 作為參數(shù),test_user_data 被當(dāng)作參數(shù)傳入到 login_r 方法中,生成多條測試用例。通過 return 將結(jié)果返回,當(dāng)調(diào)用 login_r 可以獲取到 login_r 這個方法的返回數(shù)據(jù)。


Python 自動化測試(三): pytest 參數(shù)化測試用例構(gòu)建的評論 (共 條)

分享到微博請遵守國家法律
中江县| 平阳县| 财经| 兴和县| 西林县| 郁南县| 洪雅县| 当阳市| 乾安县| 且末县| 盐池县| 禹州市| 临朐县| 洪洞县| 五家渠市| 双流县| 建瓯市| 阳曲县| 夹江县| 长丰县| 石河子市| 清苑县| 黔江区| 鄂托克前旗| 神农架林区| 班玛县| 威海市| 玛多县| 岚皋县| 昆山市| 石棉县| 多伦县| 茶陵县| 东乌珠穆沁旗| 湟源县| 沈阳市| 高唐县| 噶尔县| 康保县| 仪征市| 五指山市|