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 ./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("測試用例執行之後的操作")
每篇一句:
我把青春放在那個角落裡,蒙了厚厚一層灰,你怎麼又幫我拿出來,吹了一下。