pytest
命名規則
Pytest單元測試中的類名和方法名必須是以test開頭,執行中只能找到test開頭的類和方法,比unittest更加嚴謹
Pytest的setup, setup_class和teardown, teardown_class函數(和unittest執行效果一樣)
運行於測試方法的始末,即:運行一次測試函數會運行一次setup和teardown
運行於測試方法的始末,但是不管有多少測試函數都只執行一次setup_class和 teardown_class
Pytest生成自帶的html測試報告
直接執行pytest.main()
【自動查找當前目錄下,以test_開頭的文件或者以_test結尾的py文件】(課堂練習_test)
pytest.main("模塊.py")
【運行指定模塊下,運行所有test開頭的類和測試用例】
pip install pytest-html() :python自帶的插件
pytest.main(["--html=./report.html","test3.py"])
pytest.main(["--html=./report.html","test3.py"])
Pytest調用語句
運行指定模塊指定類指定用例,冒號分割,並生成測試報告
#-x出現一條測試用例失敗就退出測試
-s:顯示print內容
-q: 簡化結果信息,不會顯示每個用例的文件名
F 表示失敗 Failure
E 表示用例中存在異常 Error

allure
pip install allure-pytest
allure-pytest是Pytest的一個插件,通過它我們可以生成Allure所需要的用於生成測試報告的數據
@allure.story # 用於描述feature的用戶場景,即測試需求
with allure.step(): # 用於描述測試步驟,將會輸出到報告中
allure.attach # 用於向測試報告中輸入一些附加的信息,通常是一些測試數據,截圖等
# 生成測試報告json
pytest.main([ '--alluredir', 'report/result', 'test001.py']) ## 將測試報告轉為html格式 --html=../report.htmlsplit = 'allure ' + 'generate ' + './report/result ' + '-o ' + './report/html ' + '--clean'os.system(split)#system函數可以將字符串轉化成命令在服務器上運行


下一步:創建一個Calc.py 用來寫開發人員的代碼!
下一步: 寫單元測試pytest
直接執行pytest.main()
【自動查找當前目錄下,以test_開頭的文件或者以_test結尾的py文件
【運行指定模塊下,運行所有test開頭的類和測試用例】


Pytest生成自帶的html測試報告

點擊上圖的report.py,再點瀏覽器出現如下圖測試報告:
pytest.main([‘--html=./report.html’,‘模塊.py::類::test_a_001'])
運行指定模塊指定類指定用例,冒號分割,並生成測試報告
#-x出現一條測試用例失敗就退出測試
-v: 豐富信息模式, 輸出更詳細的用例執行信息:
-s:顯示print內容:
-q: 簡化結果信息,不會顯示每個用例的文件名
Pytest和allure結合
由於json形式 觀賞性不高 ,要把他改成為html格式
Pytest和allure效果展示
讀取csv數據:
網頁展示:
這就是最終的結果圖 簡單吧小伙伴們,動動你們的小手點個贊吧。