在编写测试用例时,经常需要给测试用例传递参数,Pytest可以通过多种形式给测试用例传递参数:
1、使用pytest.mark.parametrize
2、使用Pytest.fixture
pytest.mark.parametrize
pytest.mark.parametrize(“参数名”,参数值)
-
同时传递多个参数时,每一个参数用逗号分隔,也可以采取多次声明叠加参数的形式。
-
同时传递多组值时每一组值用括号包裹,用逗号分隔每一组值:
@pytest.mark.parametrize("a,b",[(data1,data2),("aaa","bbb")])
-
参数值可以通过变量传参,如下示例,但是需要注意的是,如果同时传递多个参数时,会把参数值当做一个整体进行传值。
test_DemoD5()中的a传递的是“("case1", "case2", "case3")”
-
当传递多个参数时,某一个参数的值不够时,会进行循环取值,直到所有的参数取值完毕。如以下示例的参数a和b。其中a和b只有2个值,C有3个。
-
可以通过pytest.param()方法指定参数的取值标签
示例如下:标签L3引用该值
@pytest.mark.parametrize("a,b",[("a1","b2"),pytest.param("a2","b2",