Pytest 参数化用例
参数化函数使用
使用装饰器
@pytest.mark.parametrize(参数,值)
单参数
只传一个参数
search_list = ['appinum','pytest']
@pytest.mark.parametrize('name',search_list)
def test_demo(name):
print(name)
assert name in search_list
多参数
传多个参数
@pytest.mark.parametrize("test_input,expected",[("3+8",11),("2+5",7)])
def test_mark_more(test_input,expected):
assert eval(test_input) == expected
用例重命名
给执行不同参数的用例重新起名
ids
#命名第一次运行的参数用例叫number_1,同理命名number_2
@pytest.mark.parametrize("test_input,expected",[("3+8",11),("2+5",7)],
ids=["number_1","number_2"])
def test_mark_more(test_input,expected):
assert eval(test_input) == expected
笛卡尔积
把不同参数两两组合成集合传入用例
通常用在排查问题
#笛卡尔积
#输出9次结果,结果两两组合
@pytest.mark.parametrize("wd",["appium","java","python"])
@pytest.mark.parametrize("code",["utf-8","gbk","gb123"])
def test_dkej(wd,code):
print(f"wd:{wd},code:{code}")
注意
参数化的名字要和方法中的参数名一一对应,顺序不变
如果传递多个参数,则放在列表中,列表中嵌套列表或者元组
ids个数要等于传递的数据次数


浙公网安备 33010602011771号