pytest-11-函数传参和fixture传参数request
2020-12-08 本文已影响0人
恶毒女配的日常
1、登录函数传参
为了提高代码的复用性,一般会用不同用例去调用函数。
测试用例传参需要用装饰器@pytest.mark.parametrize 里面分别两个参数
(1)第一个参数是字符串,多个参数中间用逗号隔开
(2)第二个参数是list,多组数据用元组类型
![](https://img.haomeiwen.com/i5726219/80ca76a04ec9f868.png)
![](https://img.haomeiwen.com/i5726219/fe03a9075b1f317a.png)
由运行结果可知,两个测试用例互不影响
2、request参数
@pytest.fixture装饰器,可把登录操作放在前置操作,传参默认request参数
![](https://img.haomeiwen.com/i5726219/e16921b2c13f5ece.png)
indirect=True参数是为了把login当一个函数执行,而不是参数
![](https://img.haomeiwen.com/i5726219/ff20861042fcf742.png)
如果有多个参数,可以把多个参数用字典存储,转变成一个参数,使用key获取值如: user = request.param["user"]
test_user_data = [{'user': 'admin1', 'psw': '111111'},
{'user': 'admin1', 'psw': ''}]
用例上面可以同时放多个fixture,即多个前置操作,支持装饰器叠加,使用parametrize装饰器叠加时,用例组合是2个参数个数相乘,如:
![](https://img.haomeiwen.com/i5726219/089321dc4bb1036d.png)
![](https://img.haomeiwen.com/i5726219/252482fa58cf0120.png)