1. 程式人生 > 其它 >Pytest--詳解01

Pytest--詳解01

何為pytest?

基於python的單元測試框架.用來發現測試用例、執行測試用例、判斷測試結果、生成測試報告

1.相關外掛:

  pytest 自己

  pytest-html 生成測試報告

  pytest-xdist 多執行緒執行

  ytest-rerunfailures 執行重跑

  pytest-ordering 修改執行順序

  pytest-base-url 管理基礎路徑

  allure-pytest 生成測試報告

  安裝外掛:

  (1)新建requirements.txt檔案,將上述外掛放入文件(不需要複製中文)

  (2)執行:pip install -r requirements.txt

2.pytest的執行規則:

  模組名必須使用test_或者_test結尾(.py檔案)

  測試類必須用Test開頭

  測試用例必須使用test開頭

3.pytest用例的執行方式以及引數

  (1)

  -vs

    -v輸出更加詳細測試資訊

    -s輸出用例中的除錯資訊

    pytest -vs

  -n 多執行緒執行 pytest -vs -n 3

  --reruns 失敗用例重跑 pytest -vs --reruns 2

  -x 一旦出現失敗終止測試 pytest -x

  --maxfail 出現指定錯誤終止 pytest -vs --maxfail 2

  --html

生成簡易測試報告 pytest -vs --html=./reports/reports.html

  指定模組執行:pytest -vs ./testcases/test_weixin.py

  指定資料夾執行:pytest -vs ./testcases

  通過node id執行:pytest -vs ./testcases/weixin/test_weixin.py::TestApi::test_02_add_flag

  (2)主函式的方式執行

  首先在,當前目錄建立一個run,py檔案,新增一個main函式,多個引數使用列表的方式新增

if __name__ == '__main__':
    pytest.main([
'-vs','-n 2'])

  (3)使用基於python.ini檔案執行

    一、配置檔案的名稱是固定的,一般放在專案的根目錄下

    二、作用:可以改變pytest預設的用例執行規則

    三、不管是命令列的方式,還是主函式的方式都會自動讀取該配置檔案去執行。

[pytest]
addopts = -vs --html=./reports/reports.html -m ''smoke or manage''
testpaths = ./testcases #指定測試用例路徑
python_files = test_*.py  #指定模組
python_classes = Test* #指定測試類
python_functions = test_* #指定測試用例預設規則
markers =
    smoke:冒煙
    user_manage:管理

  注意: 1.一旦有編碼錯誤,那麼需要改成gb2312的編碼格式或者是不寫中文註釋。 2.必須在測試用例上面加上標記。

4.執行順序

  預設測試順序是從上到下依次執行,改變測試用例的執行順序使用: @pytest.mark,run(order=1) 1、2、3表示執行順序

5.跳過用例

  無條件: @pytest.mark.skip(reason=''用例無條件跳過)

  有條件:@pytest.mark.skip(age < 5,reason=''年齡小於五年的不用)

6.測試用例的前後置

def setup_class(self):
print("在類的前面執行的操作")

def teardown_class(self):
print("在類的後面執行的操作")

def setup(self):
print("測試用例執行之前的操作")

def teardown(self):
print("測試用例執行之後的操作")

  

  每篇一句:

  我把青春放在那個角落裡,蒙了厚厚一層灰,你怎麼又幫我拿出來,吹了一下。