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

歡迎光臨散文網(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)建的評論 (共 條)

分享到微博請遵守國家法律
正宁县| 璧山县| 西林县| 大城县| 石渠县| 凤城市| 泉州市| 溧水县| 手游| 方山县| 昌邑市| 闽清县| 灵石县| 哈尔滨市| 视频| 莫力| 嘉义市| 大厂| 轮台县| 夹江县| 黎川县| 霍城县| 子洲县| 水富县| 潼南县| 广元市| 宣汉县| 社旗县| 库车县| 琼结县| 平顶山市| 高台县| 定边县| 剑河县| 玉山县| 红河县| 芜湖市| 郴州市| 澄江县| 建阳市| 长葛市|