原文地址:https://blog.csdn.net/BearStarX/article/details/101000516session
1、fixture優點
一、fixture相對於setup和teardown來講應該有如下幾點優點:函數
二、使用裝飾器標記fixture的功能
fixture(scope="function",params=None,autouse=False,ids=None,name=None)測試
可使用此裝飾器(帶或不帶參數)來定義fixture功能。fixture功能的名稱能夠在之後使用,引用它會在運行測試以前調用它:.net
test模塊或類可使用pytest.mark.usefixtures(fixturename)標記
測試功能能夠直接使用fixture名稱做爲輸入參數,在這種狀況下,夾具實例從fixture返回功能將被注入
2、fixture參數介紹
fixture(scope="function",params=None,autouse=False,ids=None,name=None)blog
一、scope字符串
fixture做用範圍:get
fixture裏面有個scope參數能夠控制fixture的做用範圍:session > module > class > function(默認)io
二、paramsfunction
一個可選的參數列表,它將致使多個參數調用fixture功能和全部測試使用它class
三、autouse
若是爲True,則爲全部測試激活fixture func 能夠看到它
若是爲False(默認值),則顯式須要參考來激活fixture
四、ids
每一個字符串id的列表,每一個字符串對應於params,這樣他們就是測試ID的一部分,若是沒有提供ID它們將從params自動生成
五、name
fixture的名稱,這默認爲裝飾函數的名稱。若是fixture在定義它的同一模塊中使用,夾具的功能名稱將被請求夾具的功能arg遮蔽;解決這個問題的一種方法是將裝飾函數命名"fixture_<fixturename>",而後使用"@pytest.fixture(name='<fixturename>')"
備註:fixtures能夠選擇使用yield語句爲測試函數提供它們的值,而不是return。在這種狀況下,yield語句以後的代碼塊做爲拆卸代碼執行,而無論測試結果如何。fixture功能必須只產生一次
3、fixture參數傳入(scope="function")
一、實現場景:用例1須要先登陸,用例2不須要登陸,用例3須要先登陸
————————————————版權聲明:本文爲CSDN博主「BearStarX」的原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處連接及本聲明。原文連接:https://blog.csdn.net/BearStarX/article/details/101000516