方便测试函数对测试数据的获取
语法:parmetrize(argnames,argvalues,indirect=False,ids=None,scope=None)
常用参数:
argname:参数名
argvalues:参数对应值,类型必须为list
当参数为一个时,格式:参数名,[参数值1,参数值2,.....]
当参数个数大于一个时,格式为:
(参数名1,参数名2,...),[(参数值1_1,参数值2_1),(参数值1_2,参数值2_2,...),(...)]
使用方法:
-->在测试函数前使用
-->@pytest.mark.parametrize(argenames,argvalues)
例子:#/** 编写一个只有一个参数的测试函数
@pytest.mark.parametrize('mobile',['12306','13800138000','120','119'])
def test_register(mobile):
''' 用户注册通过手机号'''
print(f'注册成功:手机号为{mobile}')
if __name__ =='__main__':
pytest.main()
多个参数
@pytest.mark.parametrize('mobile,code',[('12306','1234'),('13800138000','2354'),('120','1213'),('119','1221')])
def test_register(mobile,code):
''' 用户注册通过手机号'''
print(f'注册成功:手机号为{mobile},验证码为{code}')
if __name__ =='__main__':
pytest.main()
总结
当测试函数只有一个参数的时候写法:参数名,[参数值1,参数值2...]
当测试函数有多个参数的时候写法:”参数名1,参数名2...”,[(参数值1-1,参数值1-2),(参数值1-2,参数名2-2)...]
网友评论