單元測試:pytest+allure 使用的簡單教程


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調用語句

pytest.main([‘--html=./report.html’,‘模塊.py::類::test_a_001'])
運行指定模塊指定類指定用例,冒號分割,並生成測試報告
pytest.main(['-x','--html=./report.html','t12est000.py'])
#-x出現一條測試用例失敗就退出測試
-v: 豐富信息模式, 輸出更詳細的用例執行信息
-s:顯示print內容
-q: 簡化結果信息,不會顯示每個用例的文件名
 
 
 
 
 
Pytest的運行方式
. 點號,表示用例通過             
F 表示失敗 Failure
E 表示用例中存在異常 Error

 

 

 

 

allure

Allure是一款輕量級並且非常靈活的開源測試報告框架。 它支持絕大多數測試框架, 例如TestNG、Pytest、JUint等。它簡單易用,易於集成。
首先要安裝allure
pip install allure-pytest
allure-pytest是Pytest的一個插件,通過它我們可以生成Allure所需要的用於生成測試報告的數據
 
 
 
Allure
Allure常用的幾個特性
@allure.feature # 用於描述被測試產品需求
@allure.story # 用於描述feature的用戶場景,即測試需求
with allure.step(): # 用於描述測試步驟,將會輸出到報告中
allure.attach # 用於向測試報告中輸入一些附加的信息,通常是一些測試數據,截圖等
 
 
 
 
 
 
Pytest和allure結合生成html格式的測試報告
# 生成測試報告json
pytest.main([ '--alluredir', 'report/result', 'test001.py']) ## 將測試報告轉為html格式   --html=../report.html split = 'allure ' + 'generate ' + './report/result ' + '-o ' + './report/html ' + '--clean' os.system(split)#system函數可以將字符串轉化成命令在服務器上運行
 
 
 
 
 
 
 
Pytest和allure效果展示

 

 

------------------------------------------------------------------------------------------------------------
 
 
 
下面展示完整的代碼效果圖:
 
首先創建一個帶__init__.py的文件夾

 

 下一步:創建一個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數據:

 

 網頁展示:

 

 

 

 

 

這就是最終的結果圖 簡單吧小伙伴們,動動你們的小手點個贊吧。

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM