fixture用request传递参数

比如一个登陆的fixture,有时候不同用例需要用不同的用户名和密码登陆,就需要将不同的用户名和密码传递给fixture,就用到fixture的参数传递了
固定用法用request作为参数,用request.param获取参数值
这里特别说明一下request:诸如这种的request作为参数的,这时候的request是pytest的一个内置fixture函数,当他作为参数时,具有request.param属性,用来获取请求的参数
第一种方法是,利用pytest的parametrize传递参数时
传单个参数
案例一:
切记:这里的data都是列表,列表里可以是字典在这里插入图片描述在这里插入图片描述

案例二:传递多个参数
在这里插入图片描述
案例三:传多个参数

@pytest.fixture(scope=“module”)
def input_user(request):
user = request.param
print(“登录账户:%s” % user)
return user

@pytest.fixture(scope=“module”)
def input_psw(request):
psw = request.param
print(“登录密码:%s” % psw)
return psw

data = [
(“name1”, “pwd1”),
(“name2”, “pwd2”)
]

@pytest.mark.parametrize(“input_user,input_psw”, data, indirect=True)
def test_more_fixture(input_user, input_psw):
print(“fixture返回的内容:”, input_user, input_psw)

执行结果:
10fixture_request.py::test_more_fixture[name1-pwd1] 登录账户:name1
登录密码:pwd1
PASSED [ 50%]fixture返回的内容: name1 pwd1

10fixture_request.py::test_more_fixture[name2-pwd2] 登录账户:name2
登录密码:pwd2
PASSED [100%]fixture返回的内容: name2 pwd2

案例四:多个fixture(叠加装饰器)

@pytest.fixture(scope=“function”)
def input_user(request):
user = request.param
print(“登录账户:%s” % user)
return user

@pytest.fixture(scope=“function”)
def input_psw(request):
psw = request.param
print(“登录密码:%s” % psw)
return psw

name = [“name1”, “name2”]
pwd = [“pwd1”, “pwd2”]

@pytest.mark.parametrize(“input_user”, name, indirect=True)
@pytest.mark.parametrize(“input_psw”, pwd, indirect=True)
def test_more_fixture(input_user, input_psw):
print(“fixture返回的内容:”, input_user, input_psw)
执行结果
10fixture_request.py::test_more_fixture[pwd1-name1] 登录账户:name1
登录密码:pwd1
PASSED [ 25%]fixture返回的内容: name1 pwd1

10fixture_request.py::test_more_fixture[pwd1-name2] 登录账户:name2
登录密码:pwd1
PASSED [ 50%]fixture返回的内容: name2 pwd1

10fixture_request.py::test_more_fixture[pwd2-name1] 登录账户:name1
登录密码:pwd2
PASSED [ 75%]fixture返回的内容: name1 pwd2

10fixture_request.py::test_more_fixture[pwd2-name2] 登录账户:name2
登录密码:pwd2
PASSED [100%]fixture返回的内容: name2 pwd2

第二种方法:直接把参数传递个fixture函数
在这里插入图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值