【pytest】向fixture传参

拿登录场景举例。

执行自动化测试时,一般是随机从配置文件内拿账号进行登录。遇到需要指定用户登录的,就需要添加参数化装饰器。实现如下:

# conftest.py
@pytest.fixture(scope="session")
def user(request):
    try:
        username = request.param
    except AttributeError:
        username = "random user"
    return username

"""使用默认用户登录"""
def test_login(user):
    print(f"获取用户信息:{user}")

--> 获取用户信息:random user

"""使用指定用户登录"""
@pytest.mark.parametrize("user", ["lan"], indirect=True)
def test_login(user):
    print(f"获取用户信息:{user}")

--> 获取用户信息:lan

更复杂一点,登录一般有好几个步骤,那么把登录封装函数封装为 fixture,传递一个用户名和密码进去,在用例里面直接进行登录。

@pytest.fixture
def auto_login(user):
    print(f"Fixture 内进行登录操作: {user}")
    return user

"""未指定用户,选取随机用户"""
def test_fixture(auto_login, user):
    print(f"用例内登录的用户是: {auto_login}")

--> Fixture 内进行登录操作: random user
--> 用例内登录的用户是: random user

"""已指定用户"""
@pytest.mark.parametrize("user", ["lan"], indirect=True)
def test_fixture(auto_login, user):
    print(f"用例内登录的用户是: {auto_login}")

--> Fixture 内进行登录操作: lan
--> 用例内登录的用户是: lan
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值