pytest框架入門
阿新 • • 發佈:2020-10-28
因為最近專案需要介面自動化,由於之前公司使用的是robot framework 現在公司想用pytest框架所以抽空餘時間學習了一下pytest基礎內容,現將學習筆記整理一下後續可以作為團隊內部學習資料。
安裝
pip install pytest
檢視版本
pytest version
用例的識別和執行
- 測試檔案已test_***開頭或者以_test結尾也可以
- 測試類以Test開頭,並且不能有__init__方法
- 測試函式以test_開頭
第一個例子
開啟pycharm的terminal 執行“pytest test_one.py“命令,輸出結果如下:
可能出現的測試結果有如下幾種:
- PASSED(.):測試通過
- FAILED(.):測試失敗
- SKIPPED(s):跳過,即沒有被執行
- XFAIL(x):預期測試失敗了,並且確實失敗了
- XPASS(X):預期測試失敗了,但是實際通過了,不符合預期
- ERROR(E):測試用例之外的程式碼錯誤
命令列執行引數
pytest帶有很多引數,可以使用pytest --help來檢視幫助文件,下面介紹集中長用的引數:
- 無引數
讀取路徑下所有符合規則的檔案,類,方法,函式全部執行
- -v
列印詳細的執行日誌資訊,一般在除錯的時候加上這個引數,終端會打印出每條用例的詳細日誌資訊,方便定位問題
- -s
帶控制檯輸出結果,當你的程式碼中有print輸出語句,如果想在執行結果中列印print輸出程式碼,在執行的時候可以新增-s引數
- -k
該引數用來使用表示式制定特定的測試用例執行。例如
- pytest -k 類名 pytest -k Testday
- pytest -k 方法名 pytest -k test_0001
- pytest -k "類名 and not 方法名“pytest -k "Testday and not test_0001“
- -x
遇到用例失敗立即停止
- -maxfail=num
用例失敗個數達到閥值停止執行
- -m
將執行有@pytest.mark.[標題]這個標記的測試用例
- ::(執行模式)
舉例 pytest test_one.py::Testday pytest test_one.py::Testday::test_0001