
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
安裝Pytest
pip install -U pytest
Pytest用例設計原則
測驗類以Test開頭,并且不能帶有init方法
以test_開頭的函式
以Test開頭的類
所有的包pakege必須要有__init__.py檔案
斷言使用assert
運行Pytest的兩種方式
Pycharm里代碼運行
pytest.main(["test.py"])
Pycharm里代碼運行
pytest test.py
# 運行指定類下的指定方法
pytest 檔案名::類名::方法名
Pytest引數說明
-v 說明:可以輸出用例更加詳細的執行資訊,比如用例所在的檔案及用例名稱等
-s 說明:輸入我們用例中的調式資訊,比如print的列印資訊等
-x:遇到錯誤的用例,立即退出執行,并輸出結果
-v:表示查看詳細的報告內容
-collect-only:表示把待執行的用例全部展示出來
-lf:只執行上次失敗的用例
-vv :顯示詳細的測驗結果
-tb=no:不展示用例失敗的錯誤詳情
-tb=line:展示用例失敗的代碼具體行數
-tb=short:展示更加詳細的錯誤資訊
-k "關鍵字" 說明:執行用例包含“關鍵字”的用例
-q 說明:簡化控制臺的輸出,可以看出輸出資訊和上面的結果都不一樣, 下圖中有兩個..點代替了pass結果
-maxfail=num 當用例錯誤達到指定數量時,停止測驗
m 說明:執行特定的測驗用例,我們再次修改一下我們的用例,并添加一個新的用例
# 如果要運行多個標識的話,用運算式,如下
pytest -m "slow or faster" test_1.py 運行有slow標識或 faster標識用例
pytest -m "slow and faster" test_1.py 運行有slow和faster標識的用例
pytest -m "slow and not faster" test_1.py 運行有slow和沒有faster標識的用例
注意:-m后面不能帶''號(單引號),只能帶“”(雙引號),不然識別不到
ini組態檔
創建pytest.ini檔案(固定寫法)
[pytest];固定寫法
;變數名不能錯
addopts=-vv -s ;多個引數中間空格
testpaths=../HC/huace ;多個目錄中間空格
python_files=test*.py ;python檔案前綴,可自定義
python_classes=huace ;指定類名
python_functions=test* ;指定方法名,可自定義
跳過測驗函式
跳過測驗函式: 根據特定的條件,不執行標識的測驗函式
# -*- coding: utf-8 -*-
import pytest
class Test():
def test(self):
print("執行的是testcase的用例")
@pytest.mark.skipif(condition=1<2,reason="1不大于2,所以不執行")
class huace():
def haha(self):
print("執行的是haha方法里面的用例")
文章首發于微信公眾號:程式員一凡
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/250482.html
標籤:其他
上一篇:華為防火墻與深信服AD對接問題
