Allure框架是一種靈活的輕量級多語言測試報告工具,它不僅能夠以簡潔的web報告形式顯示已測試的內容,而且允許參與開發過程的每個人從測試的日常執行中提取最大限度的有用信息。具有開源,輕量級,多語言支持,而且支持主流框架集成testng、junit、支持jenkins集成,具有強大的註解功能,同時支持測試報告定製等優點。關於Allure的更多介紹可以查看官網:http://allure.qatools.ru/
Allure是基於Java的一個程序,需要jdk1.8及以上的環境,所以需要安裝jdk1.8及以上,jdk的安裝網上有較多教程在此不再贅述,具體參考網上教程。
pytest框架安裝參見文章https://blog.csdn.net/dou_being/article/details/102460803。
下面進入正題,開始介紹allure框架的安裝過程:
- 安裝allure-pytest:pip3 install allure-pytest
注意:pytest-allure-adaptor不建議安裝,因爲pytest-allure-adaptor庫基本被python3放棄了,運行不是很友好,運行時還會報錯,如果已安裝且運行有報錯,可以通過:pip3 uninstall pytest-allure-adaptor進行卸載規避。
- 安裝allure2
(1)在https://github.com/allure-framework/allure2/releases,下載後解壓到運行的pytest的目錄,比如我的pytest運行目錄:/Users/用戶名/env_pytest/,如圖
(2)打開bin目錄,執行allure可執行文件(Windows則點擊allure.bat文件),如圖
(3)將allure/allure.bat文件設置爲系統環境變量path下,這樣在終端任意目錄都可以執行:
- 在終端輸入:open ~/.bash_profile,然後輸入allure的bin目錄路徑,如圖
- 然後輸入source ~/.bash_profile,使配置立即生效
- 在終端輸入allure,打印出一串信息即配置成功,如圖
- 查看allure的版本號:allure --version,如圖
- 生成xml測試報告:
pytest -s -q --alluredir report
或者指定路徑生成xml測試報告:
pytest -s -q --alluredir /Users/用戶/Downloads/report
比如:pytest -s -q --alluredir /Users/用戶/Desktop/pytestDemo/report /Users/用戶/Desktop/pytestDemo/test_parametrize.py
說明:此步驟如果直接輸入pytest -s -q --alluredir report會報錯,因爲沒有指定相應的測試用例路徑,上面的test_parametrize.py是我本地的一個測試用例,測試用例可以參考如下:
import pytest
import allure
"""
1.使用pytest.mark.parametrize 裝飾器實現測試用例參數化。
2.實現檢查一定的輸入和期望輸出的測試功能
"""
@allure.feature('pytest結合allure測試Demo') # feature定義被測試的功能
@pytest.mark.parametrize("test_input, expected", [("3+5", 8), ("2+4", 6), ("6*9", 42), ])
def test_eval(test_input, expected):
assert eval(test_input) == expected
if __name__ == "__main__":
pytest.main(['-s', '-q', '--alluredir', './report/html'])
-
運行結果
-
運行allure2:使用pytest -s -q --alluredir report已經在report目錄下生成了不美觀的測試報告,如圖
-
當然xml格式的報告不夠直觀,我們需要通過allure將它轉成HTML格式的報告,執行命令:
allure generate directory-with-results/ -o directory-with-report
比如:allure generate --clean /Users/用戶/Desktop/pytestDemo/report -o /Users/用戶/Desktop/pytestDemo/report/html,如圖
-
回到pycharm,找到report目錄,裏面有個html文件夾,然後點擊index.html,選擇打開方式:Open in Browser在瀏覽器中打開,如圖
-
定製測試報告,可根據具體實際情況選擇
- feature:標註主要功能模塊
- story:標註features功能模塊下的分支功能
- severity:標註測試用例的重要級別
- step:標註測試用例的重要步驟
- issue和testCase:標註issue、case,可以加入URL
說明:
- directory-with-results 是 alluredir 生成的 xml 目錄
- directory-with-report 是最終生成 html 的目錄
- allure/allure.bat 已經加到環境變量了,所以可以用相對路徑去生成 html報告:allure generate report/ -o report/html
- --clean參數用來清空已有的報告,避免覆蓋時出錯
注意:直接用chrome瀏覽器打開報告,報告會是空白頁面,解決辦法,在pycharm中右擊index.html選擇打開方式Open in Browser就可以了 。