結合 pytest
和 Allure
可以生成詳細而美觀的測試報告,幫助測試人員和開發者更好地理解測試結果。這包括測試的執行情況、步驟、附件(如截圖)、分類以及優先級標記。下面是如何在 pytest
中使用 Allure
生成測試報告的步驟:
安裝 Allure 和相關插件
-
安裝
pytest
和pytest-allure-adaptor
:pip install pytest pip install allure-pytest
-
安裝 Allure 命令行工具:
- 根據操作系統,從 Allure releases 下載最新的 Allure 命令行工具,并進行安裝。
- 確保將 Allure 的
bin
目錄添加到環境變量PATH
中。
編寫測試代碼
在測試函數中,你可以使用 Allure 的 API 來定義測試步驟、附件等。
import pytest
import allure@allure.feature("Feature1")
@allure.story("Story1")
@allure.step("Test the addition functionality")
def test_addition():assert 1 + 1 == 2@allure.step("Test the subtraction functionality")
def test_subtraction():with allure.step("Perform subtraction"):result = 5 - 2allure.attach(str(result), name="result", attachment_type=allure.attachment_type.TEXT)assert result == 3
運行測試并生成報告
-
運行測試生成結果文件:
- 使用
pytest
運行測試,并將結果輸出到指定目錄:
pytest --alluredir=./allure-results
上述命令會在項目目錄下生成一個
allure-results
文件夾,包含測試結果。 - 使用
-
生成并查看 Allure 報告:
- 使用 Allure 命令行工具生成 HTML 格式報告,并啟動本地服務器查看:
allure serve ./allure-results
該命令會在本地啟動一個服務器并自動打開瀏覽器查看報告。
報告內容
- 功能 (Feature) 和故事 (Story): 可以對測試進行功能和故事層面的分類。
- 步驟 (Step): 詳細記錄測試的各個步驟,協助問題定位。
- 附件 (Attachment): 自動將相關的上下文、輸出信息等附加到報告中。
額外配置
-
標記和等級: 可以使用
allure.label
將測試標記為重要級別或其他。常用標簽包括severity
(阻止插件、關鍵、正常等等)。 -
測試分類和分組: 使用
pytest.mark
提供的功能在測試全局范圍內定義更復雜的標簽和分組。
通過 pytest
和 Allure 的結合,你能夠生成全面而細致的測試報告,使得不僅能看到測試結果,還能幫助團隊診斷問題,了解測試覆蓋情況,便于測試改進與分析。