前言
在之前的一篇文章中講解了fixture結合conftest.py檔案如何簡單實作自動化。實際fixture結合conftest.py檔案的使用就是一種fixture的會話層級session的實戰用法。
下面開始fixture其他層級的詳細講解:
1、首先在使用fixture之前我們得先了解他是幹什麼的,有什麼作用?
fixture的主要用途就是——通過裝飾器的方式把所有測試方法進行有效組織的過程。
@pytest.fixture(scope="function",params=none,autouse=false,ids=none,name=none)
2、scope:作用域
(1)function:在函數之前和之後執行——每個函數或方法都會調用
①手動調用的方式是在測試用例的參數加入fixture的名稱
②若fixture有通過return 或yield傳回值,可以把這個值傳遞到測試員用例當中
(2)class:隻在每個類所有用例開始前調用一次,一個類可以用多種方法
①手動調用的方式在類的上面添加@pytest.mark.usefixtures()裝飾器
(3)package/session:在整個項目會話之前和之後執行,多個檔案調用一次,可以跨Python檔案調用,每個.py就是moudule
①一般結合conftest.py檔案來實作
(4)module:每個.py檔案調用一次,該檔案内又有多個function和class
3、autouse:自動執行,預設是false
4、param參數:
(1)如何把值傳到固件fixture,在fixture函數的參數加入request來接收參數,後通過request.param來取值
(2)ids:不能單獨使用,必須與params參數一起使用,目的為參數起别名
5、name參數:給fixture起别名,一旦使用,就不能再用fixture名稱
各方法優先級:fixture會話>fixture的class級别>setup_class>fixture的function>setup