笔记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)...]

你可能感兴趣的:(笔记6:函数数据参数化)