pytest框架: fixture之conftest.py

原文地址:https://blog.csdn.net/BearStarX/article/details/101000516session

1、fixture優點
一、fixture相對於setup和teardown來講應該有如下幾點優點:函數

  • 命名方式靈活,不侷限於setup和teardown這幾個命名
  • conftest.py配置 裏能夠實現數據共享,不須要import就能自動找到一些配置
  • scope="module"能夠實現多個.py跨文件共享前置
  • scope="session"以實現多個.py跨文件使用一個session來完成多個用例

二、使用裝飾器標記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

  • function 每一個函數或方法都會調用
  • class 每個類調用一次,一個類能夠有多個方法
  • module 每個.py文件調用一次,該文件內又有多個function和class
  • session 多個文件調用一次,能夠跨.py文件調用,每一個.py文件就是module

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

相關文章
相關標籤/搜索