軟件測試 | parametrize實(shí)現(xiàn)參數(shù)化
參數(shù)化用例
參數(shù)化用例可以幫我們更好的管理測試用例,將測試數(shù)據(jù)與測試用例分離,好的測試框架是允許對測試 用例實(shí)現(xiàn)參數(shù)化功能。尤其是接口自動化測試,接口里有大量參數(shù),不同參數(shù)又有多種組合方式,參數(shù) 化在接口測試中起到非常重要的作用。
使用 parametrize 實(shí)現(xiàn)參數(shù)化
使用 @pytest.mark.paramtrize(data,param) 裝飾測試方法,其中 data 是自定義的參數(shù)名, param 是引入的參數(shù)列表。
運(yùn)行結(jié)果:
整個執(zhí)行過程中,pytest 將參數(shù)列表 [("3+5",8),("2+5",7),("7*5",35)] 中的三組數(shù)據(jù)取出來,每 組數(shù)據(jù)生成一條測試用例。
多次使用 parametrize
同一個測試用例還可以同時添加多個 @pytest.mark.parametrize 裝飾器, 多個 parametrize 的所有 元素互相組合(類似笛卡兒乘積),生成大量測試用例。
場景:
比如登錄場景,用戶名輸入情況有 n 種,密碼的輸入情況有 m 種,驗(yàn)證所有情況的用戶名和密碼,就 會涉及到 n*m 種組合的測試用例,如果把這些數(shù)據(jù)一一的列出來,工作量也是非常大的。pytest 提供了 一種參數(shù)化的方式,將多組測試數(shù)據(jù)自動組合,生成大量的測試用例。示例代碼如下:
運(yùn)行結(jié)果:
分析如上運(yùn)行結(jié)果,測試方法 test_foo( ) 添加了兩個 @pytest.mark.parametrize() 裝飾器,兩個裝 飾器分別提供兩個參數(shù)值的列表, 2 * 3 = 6 種組合,pytest 便會生成 6 條測試用例。在測試中通常 使用這種方法使參數(shù)自由組合,可以實(shí)現(xiàn)全面的測試。