笔记6:函数数据参数化

方便测试函数对测试数据的获取

语法: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)...]

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。