pytest_参数化3

Posted qastudy

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了pytest_参数化3相关的知识,希望对你有一定的参考价值。

import pytest
test_user_data=[
‘user‘:‘linda‘,‘password‘:‘8888‘,
‘user‘:‘servenruby‘,‘password‘:‘123456‘,
‘user‘:‘test01‘,‘password‘:‘‘
]

@pytest.fixture(scope=‘module‘)
def login_r(request):
#可以通过dict形式,虽然传递一个参数,但通过key的方式可以达到累死传入多个参数的效果
user=request.param[‘user‘]
pwd=request.param[‘password‘]
print(‘\n打开首页准备登陆,登陆用户%s,密码%s‘%(user,pwd))
if pwd:
return True
else:
return False

#这是pytest参数化驱动,indeirect=True是把login_r当作函数去执行
@pytest.mark.parametrize(‘login_r‘,test_user_data,indirect=True)
def test_cart(login_r):
#登陆用例
a=login_r
print(‘测试用例中login_r的返回值%s‘%a)
assert a,‘失败原因,密码为空‘

开首页准备登陆,登陆用户linda,密码8888
PASSED [ 33%]测试用例中login_r的返回值True

打开首页准备登陆,登陆用户servenruby,密码123456
PASSED [ 66%]测试用例中login_r的返回值True

打开首页准备登陆,登陆用户test01,密码
FAILED [100%]测试用例中login_r的返回值False


打开首页准备登陆,登陆用户linda,密码8888
PASSED [ 33%]测试用例中login_r的返回值True

打开首页准备登陆,登陆用户servenruby,密码123456
PASSED [ 66%]测试用例中login_r的返回值True

打开首页准备登陆,登陆用户test01,密码
FAILED [100%]测试用例中login_r的返回值False

test_mark_param_request2.py:19 (test_cart[login_r2])
login_r = False

@pytest.mark.parametrize(‘login_r‘,test_user_data,indirect=True)
def test_cart(login_r):
#登陆用例
a=login_r
print(‘测试用例中login_r的返回值%s‘%a)
> assert a,‘失败原因,密码为空‘
E AssertionError: 失败原因,密码为空
E assert False

以上是关于pytest_参数化3的主要内容,如果未能解决你的问题,请参考以下文章

pytest-fixture参数化

[接口测试_B] 05 Pytest参数化处理

pytest10-使用request参数化fixture

[接口测试_B] 14 pytest+requests实战-参数化

(六)pytest-参数化

pytest.mark.parametrize()参数化的应用一