今天就給大家說一說pytest框架。
今天這篇文章呢,會從以下幾個方面來介紹:
01、pytest框架介紹
pytest?是?python?的第三方單元測試框架,比自帶?unittest?更簡潔和高效,支持非常豐富的插件,同時兼容?unittest?框架。這就使得我們在?unittest?框架遷移到?pytest?框架的時候不需要重寫代碼。
pytest框架優點
1、簡單靈活,容易上手
2、支持參數化
3、能夠支持簡單的單元測試和復雜的功能測試,還可以用來做selenium/appium等自動化測試,接口自動化測試(pytest+request)
4、pytest具有很多第三方插件,并且可以自定義擴展,
02、pytest框架的安裝
pytest框架的安裝
pip install pytest
pytest框架使用注意事項
.py?測試文件必須以test_開頭(或者以_test結尾)
測試類必須以Test開頭,并且不能有?init?方法
測試方法必須以test_開頭
斷言必須使用?assert
03、pytest運行方式
1、、如果不提供任何參數,那么pytest會在當前目錄及子目錄下尋找以test_開頭或者以_test結尾的測試文件,且該文件中以test_開頭的測試函數
2、當運行時指定測試文件的時候
1.此時目錄一定要切換到測試文件所在的目錄,否則pytest搜索不到測試,不會執行.
2.執行測試文件里的函數的時候,會搜索以test_開頭的測試函數執行,不符合此規則的函數不會被執行
3.如果含有測試類,那么允許該測試文件時,會搜索類名以Test開頭的類,且該測試類中的函數命名也必須符合要求才會被執行
4、運行的方式可以在命令行也可以在主方法上面運行
例如:如:指定運行pythonDemo目錄下的test_01模塊
? ? ......
if __name__ == "__main__":
pytest.main(["pythonDemo/test_01.py"])
或者命令行模式:
pytest ?pythonDemo/test_01.py
其實呢,pytest的運行方式花樣非常多,有很多參數可以使用,可以達到不同的效果。
04、pytest框架常用插件及安裝
pytest框架提供非常多的插件,可以實現不同的功能,今天給大家例舉一下最常用的幾種插件。
pytest-xdist
當用例量很多時,運行時間也會變的很長,如果想縮短腳本運行的時長,就可以用多進程來運行。多cpu分布。
pytest-rerunfailures
在做測試時, 短時的網絡波動會導致用例運行失敗, , 此時就可通過重試運行用例的方式來解決問題。(用例失敗后重跑
pytest-html
是一個pytest用于生成XML/HTML測試報告的插件。(HTML測試報告)
pytest-assume
Pytest中可用assert斷言, 但一個失敗后面的斷言將不再執行;pytest-assume可以實現對多個斷言多重校驗的。
pytest-repeat
測試過程中會出現一些偶現的bug, 對于這種問題我們會針對此用例反復執行多次, 最終復現出問題來; pytest-repeat插件就能起到這個作用: 重復執行測試用例
pytest-ordering
pytest默認按字母順序去執行的(小寫英文--->大寫英文--->0-9數字)
用例之間的順序是文件之間按照ASCLL碼排序,文件內的用例按照從上往下執行
setup_module->setup_claas->setup_function->testcase->teardown_function->teardown_claas->teardown_module
但可以通過第三方插件pytest-ordering實現自定義用例執行順序
好了,今天先給大家介紹到這里
最后感謝每一個認真閱讀我文章的人,禮尚往來總是要有的,雖然不是什么很值錢的東西,如果你用得到的話可以直接拿走:
這些資料,對于【軟件測試】的朋友來說應該是最全面最完整的備戰倉庫,這個倉庫也陪伴上萬個測試工程師們走過最艱難的路程,希望也能幫助到你!?