1、pytest-html外掛
Pytest可以通過命令列方式,生成xml/html
格式的測試報告,並儲存於使用者指定路徑。
需要用到pytest-html
外掛。
安裝方式:執行命令pip install pytest-html
。
(1)外掛使用方式:
命令格式:--html=使用者路徑/report.html
執行方式:
main()
函式方式:
pytest.main(['--html=./report/report_01.html'])
(不好使,可能配置了pytest.ini
檔案)- 命令列方式:
在report
目錄中生成report.html
測試報告。
pytest ./pytest_demo/test_pytest_01.py --html=./report/report.html
- 使用
pytest.ini
檔案方式:
在addopts
屬性後追加--html
引數配置,在report
目錄中生成report.html
測試報告。
addopts = -s --html=../report/report.html
(2)執行結果:
在指定目錄中會生成assets
資料夾(css
檔案)和report.html
檔案。
如下圖所示:
提示:若要生成
xml
檔案,可將--html=./report.html
改成--junitxml= report/report.xml
2、Allure測試報告
(1)Allure框架說明
Allure
生成的測試報告與上面pytest-html
外掛生成的測試報告對比,簡直完美!
Allure
是一個Report
框架,是一種靈活的輕量級,支援多語言的測試報告工具,它不僅能夠以簡潔的WEB報告形式顯示已測試的內容,並帶有失敗用例截圖、測試步驟和測試說明資訊,也可以整合到Jenkins
上展示高大上的報告介面。
而且允許參與開發過程的每個人從測試的日常執行中提取最大限度的有用資訊。
Allure
框架支援的語言包括:
Java
Python
JavaScript
Ruby
Groovy
PHP
.Net
Scala
Allure幫助文件:
(2)Allure框架的使用
步驟1:下載Allure
框架,並配置到環境變數中。
Allure
框架下載地址:https://github.com/allure-framework/allure2/releases
點選下圖位置,進行下載。
然後解壓Allure
框架檔案,放到自己指定的目錄中。
把Allure
框架的bin
目錄配置到Path
環境變數中。
步驟2:驗證Allure
框架是否安裝成功。
使用命令:allure --version
需要在CMD
命令列和PyCharm的Terminal
中,都需要驗證一下。
因為CMD
可以驗證通過,但是PyCharm中驗證失敗,如下:
J:\PyCharmWorkSpace\Pytest_d>allure --version
'allure' 不是內部或外部命令,也不是可執行的程式
或批處理檔案。
解決方式:需要重啟PyCharm。
步驟3:下載allure-pytest
庫(外掛)。
執行安裝命令:pip install allure-pytest
步驟4:設定生成的Json
格式臨時報告的存放位置。
配置pytest.ini
檔案,在pytest.ini
全域性配置檔案中的addopts
屬性中新增:
--alluredir ../report/temp_jsonreport
例如:addopts = -vs --alluredir ../report/temp_jsonreport
然後我們執行測試用例就可以了,當然--alluredir
引數也可以不配置在pytest.ini
檔案,比如在執行測試的命令列或者mian()
函式中填寫都可以。(主要是生成Json
格式的測試報告,是多個Json
檔案)
提示:
- 命令列引數:
pytest --alluredir report
,是在執行命令目錄生成report
資料夾,資料夾下包含xml
檔案。- 將
pytest.ini
檔案中的生成報告的命令替換成--alluredir report
,在命令列中執行pytest
即可生成報告格式為Json
格式,儲存在專案檔案的report
資料夾中。
步驟5:生成Allure
測試報告。
原理是:使用第一步下載的Allure
框架把Json
格式的測試報告,轉換成精美的HTML測試報告。
將上面/report/temp_jsonreport
資料夾中的Json
格式的測試報告轉化為HTML格式的測試報告。
執行命令:allure generate ./report/temp_jsonreport -o ./report/html --clean
注意:以執行命令的目錄為相對路徑。
說明:
allure generate
: 固定命令。./report/temp_jsonreport
:生成的Json
格式的臨時報告的路徑。-o
:輸出output
。./report/html
:生成的Allure
報告的路徑。--clean
:清空./report/html
路徑中原來的Allure
測試報告。
提示:main()
函式中執行如上命令。
if __name__ == '__main__':
pytest.main()
os.system("allure generate ./report/temp_jsonreport -o ./report/html --clean")
# 或者直接用main函式呼叫,哪種方式都可以。
# (直接執行測試檔案, 而不用pytest的方式執行,就可以執行)
pytest.main(["testCase_demo1.py","-sv","--alluredir","../report/temp_jsonreport"])
os.system("allure generate ./report/temp_jsonreport -o ./report/html --clean")
說明:找不到路徑的話,可以在Python Console
視窗除錯。
最後,生成的Allure
測試報告如下圖:
提示:
Allure
測試報告支援自定義修改。