一、使用多个fixture

  如果用例需要用到多个fixture的返回数据,fixture也可以return一个元组,list或字典,然后从里面取出对应的数据。

import pytest

@pytest.fixture()
def user():
    print("获取用户名")
    a = "admin"
    b = "123456"
    return (a,b)

def test_1(user):
    u = user[0]
    p = user[1]
    print("测试账号:%s,密码:%s"%(u,p))
    assert u == "admin"

if __name__=="__main__":
    pytest.main(["-s","test_fixture4.py"])

运行结果:

python-pytest学习(十六)-多个fixture和fixture直接相互调用

 

 当然也可以分开定义成多个fixture,然后test_用例传多个fixture参数。

import pytest

@pytest.fixture()
def user():
    print("获取用户名")
    a = "admin"
    return a

@pytest.fixture()
def psw():
    print("获取密码")
    b = "123456"
    return b

def test_1(user,psw):
    """传多个fixture"""
    print("测试账号:%s,密码:%s"%(user,psw))
    assert user == "admin"

if __name__=="__main__":
    pytest.main(["-s","test_fixture5.py"])

运行结果:

python-pytest学习(十六)-多个fixture和fixture直接相互调用

 

 

二、fixture与fixture相互调用

fixture与fixture直接也能相互调用

import pytest

@pytest.fixture()
def first():
    print("获取用户名")
    a = "admin"
    return a

@pytest.fixture()
def second(first):
    """psw调用user fixture"""
    a = first
    b = "123456"
    return (a,b)

def test_1(second):
    """用例fixture"""
    print("测试账号:%s,密码:%s"%(second[0],second[1]))
    
    assert second[0]=="admin"

运行结果:

python-pytest学习(十六)-多个fixture和fixture直接相互调用

 

 

 

参考文章:https://www.jianshu.com/p/d2fcbc59d1e2

相关文章:

  • 2022-12-23
  • 2021-11-30
  • 2022-12-23
  • 2021-07-20
  • 2021-12-27
  • 2022-12-23
  • 2020-10-24
  • 2021-06-23
猜你喜欢
  • 2021-06-01
  • 2021-05-21
  • 2022-01-03
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案