python-pytest學習(十六)-多個fixture和fixture直接相互調用


一、使用多個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"])

運行結果:

 

 當然也可以分開定義成多個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"])

運行結果:

 

 

二、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"

運行結果:

 

 

 

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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM