天天看點

測試開發全棧之Python自動化 Pytest 學習筆記

pytest 是一個非常成熟的全功能的 python 測試架構,主要有以下幾個特點:

簡單靈活,容易上手

支援參數化

能夠支援簡單的單元測試和複雜的功能測試,還可以用來做 selenium/appnium 等自動化測試、接口自動化測試(pytest+requests)

pytest 具有很多第三方插件,并且可以自定義擴充,比較好用的如 pytest-selenium(內建 selenium)、pytest-html(完美 html 測試報告生成)、pytest-rerunfailures(失敗 case 重複執行)、pytest-xdist(多 cpu 分發)等

測試用例的 skip 和 xfail 處理

可以很好的和 jenkins 內建

report 架構----allure 也支援了 pytest

pip install -u pytest

測試類以 test 開頭,并且不能帶有 init 方法

以 test_開頭的函數

以 test 開頭的類

所有的包 pakege 必須要有__init__.py 檔案

斷言使用 assert

pycharm 裡代碼運作

指令行運作方式

-v 說明:可以輸出用例更加詳細的執行資訊,比如用例所在的檔案及用例名稱等

-s 說明:輸入我們用例中的調式資訊,比如 print 的列印資訊等

-x:遇到錯誤的用例,立即退出執行,并輸出結果

-v:表示檢視詳細的報告内容

-collect-only:表示把待執行的用例全部展示出來

-lf:隻執行上次失敗的用例

-vv :顯示詳細的測試結果

-tb=no:不展示用例失敗的錯誤詳情

-tb=line:展示用例失敗的代碼具體行數

-tb=short:展示更加詳細的錯誤資訊

-k "關鍵字" 說明:執行用例包含 “關鍵字” 的用例

-q 說明:簡化控制台的輸出,可以看出輸出資訊和上面的結果都不一樣, 下圖中有兩個..點代替了 pass 結果

-maxfail=num 當用例錯誤達到指定數量時,停止測試

m 說明:執行特定的測試用例。我們再次修改一下我們的用例,并添加一個新的用例

注意:-m 後面不能帶''号(單引号),隻能帶 “”(雙引号),不然識别不到

建立 pytest.ini 檔案 (固定寫法)

跳過測試函數: 根據特定的條件,不執行辨別的測試函數

未來的你肯定會感謝現在拼命的自己!