Allure 簡介與安裝
- Allure 是由 Java 語⾔開發的⼀個輕量級,靈活的測試報告⼯具。
- Allure 多平臺的 Report 框架。
- Allure ⽀持多語⾔,包括 python、JaveScript、PHP、Ruby 等。
- 可以為開發/測試/管理等人員提供詳盡的的測試報告,包括測試類別、測試步驟、日誌、圖片、影片等。
- 可以為管理層提供高水準的統計報告。
- 可以整合到 Jenkins 生成線上的趨勢彙總報告。
安裝步驟:- 安裝 Java,環境變數配置教程。- 安裝 Allure 環境變數配置教程 - 安裝外掛:pip install allure-pytest。
環境驗證:allure -- version
Allure 用法
方法名 | 方法引數 | 引數說明 |
---|---|---|
@allure.epic() | epic 描述 | 敏捷裡面的概念,定義史詩,往下是 feature |
@allure.feature() | 模組名稱 | 功能點的描述,往下是 story |
@allure.story() | 使用者故事 | 使用者故事,往下是 title |
@allure.title(用例的標題) | 用例的標題 | 重新命名 html 報告名稱 |
@allure.step() | 操作步驟 | 測試用例的步驟 |
@allure.testcase() | 測試用例的連結地址 | 對應功能測試用例系統裡面的 case |
@allure.issue() | 缺陷 | 對應缺陷管理系統裡面的連結 |
@allure.description() | 用例描述 | 測試用例的描述 |
@allure.severity() | 用例等級 | blocker,critical,normal,minor,trivial |
@allure.link() | 連結 | 定義一個連結,在測試報告展現 |
@allure.attachment() | 附件 | 報告新增附件 |
#### Allure 報告生成 |
Allure 命令列語法格式如下:
allure[option] [command] [commandoptions]
生成報告的兩種方式
方式一:線上報告,會直接開啟預設瀏覽器展示當前報告。
# 方式一:測試完成後檢視實際報告,線上檢視報告,會直接開啟預設瀏覽器展示當前報告。allureserve./result/(注意這裡的serve書寫)# Javaallureservetarget/allure-results(注意這裡的serve書寫)
方式二:應用場景:如果希望隨時開啟報告,可以生成一個靜態資原始檔報告,將這個報告佈署到 web 伺服器上,啟動 web 服務,即可隨時隨地開啟報告。- 解決方案:使用allure generate
生成帶有 index.html 的結果報告。這種方式需要兩個步驟:- 第一步:生成報告。- 第二步:開啟報告。
# 生成報告 allure generate ./result (allure結果)
# 開啟報告 allure open ./report/ (報告位置)
Allure 新增用例標題、步驟
用例標題
- 透過使用裝飾器
@allure.title
可以為測試用例自定義一個可閱讀性的標題。 allure.title
的三種使用方式:- 直接使用
@allure.title
為測試用例自定義標題。 @allure.title
支援透過佔位符的方式傳遞引數,可以實現測試用例標題引數化,動態生成測試用例標題。allure.dynamic.title
動態更新測試用例標題。
- 直接使用
# 方式一:
@allure.title("自定義標題")
def test_title():
assert True#
方式二:透過佔位符的方式傳遞引數,可以實現測試用例標題引數化,動態生成測試用例標題。@allure.title("引數化用例標題:引數一:{param1} ,引數二:{param2}")
@pytest.mark.parametrize("param1, param2, expected",
[ (1, 1, 2), (0.1, 0.3, 0.4)])
def test_with_parametrize_title(param1, param2, expected):
assert param1 + param2 == expected
# 方式三:動態更新測試用例標題。
@allure.title("原始標題")
def test_with_dynamic_title():
assert True
allure.dynamic.title("更改後的新標題")
用例步驟
Allure 支援兩種方法:- 方法一:使用裝飾器定義一個測試步驟,在測試用例中使用。- 方法二:使用 with allure.step() 新增測試步驟。
Allure 新增圖片
- 應用場景:在做 UI 自動化測試時,可以將頁面截圖,或者出錯的頁面進行截圖,將截圖新增到測試報告中展示,輔助定位問題。
- 解決方案:使用以下兩種方式新增圖片。
allure.attach.file 方法 - 語法:allure.attach.file(source, name, attachment_type, extension)
,引數解釋:- source:檔案路徑,相當於傳一個檔案。- name:附件名字。- attachment_type:附件型別,是 allure.attachment_type
其中的一種(支援 PNG、JPG、BMP、GIF 等)。- extension:附件的副檔名。
class TestWithAttach:
def test_pic(self):
allure.attach.file("pic.png",
name="圖片",
attachment_type=allure.attachment_type.PNG, extension="png")
allure.attach 方法
- 語法:
allure.attach(body, name=None, attachment_type=None, extension=None):
,引數解釋: - body:要寫入附件的內容
- name:附件名字。
- attachment_type:附件型別,是
allure.attachment_type
其中的一種(支援 PNG、JPG、BMP、GIF 等)。 - extension:附件的副檔名。
class TestWithAttach:
def test_pic2(self):
with open("./img/logo.png",mode="rb") as f :
file = f.read()
allure.attach(file,"頁面截圖",allure.attachment_type.PNG)
Allure 新增日誌
- 日誌展示在 Test body 標籤下,標籤下可展示多個子標籤代表不同的日誌輸出渠道:
- log 子標籤:展示日誌資訊。
- stdout 子標籤:展示 print 資訊。
- stderr 子標籤:展示終端輸出的資訊。
- 禁用日誌,可以使用命令列引數控制
--allure-no-capture
總結
- 新增商品測試用例設計、用例編寫和斷言
- Allure 測試報告定製