pytest(二十一)--使用多个fixture和fixture直接互相调用

使用多个fixture

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

#test_fix1.py
import pytest
@pytest.fixture()
def user():
    a="admin"
    b="123456"
    return (a,b)
def test_t1(user):
    u=user[0]
    p=user[1]
    print("user类型{}".format(type(user))) #查看返回类型
    print("用户名:{},密码:{}".format(u,p))
    assert u=="admin"
if __name__=="__main__":
    pytest.main(["test_fix1.py"])

 运行结果:

 

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

#test_fix1.py
import pytest
@pytest.fixture()
def user():
    a="admin"
    return a

@pytest.fixture()
def pwd():
    p="888888"
    #return p
def test_t1(user,pwd):
    u=user
    p=pwd
    print("user类型{}".format(type(user))) #查看返回类型
    print("用户名:{},密码:{}".format(u,p))
    assert p==None
if __name__=="__main__":
    pytest.main(["test_fix1.py"])  

运行结果

 

 fixture与fixture互相调用

#test_fix1.py
import pytest
@pytest.fixture()
def user():
    a="admin"
    return a

@pytest.fixture()
def pwd(user):
    p="888888"
    return user,p
def test_t1(user,pwd):
    u=user
    p=pwd[1]
    print("pwd类型{}".format(type(pwd))) #查看返回类型
    print("用户名:{},密码:{}".format(u,p))
    assert p!=None
if __name__=="__main__":
    pytest.main(["test_fix1.py"]) 

运行结果:

 

  

posted on 2020-07-31 10:31  星空6  阅读(308)  评论(0编辑  收藏  举报

导航