如何利用Allure報告提升你的測試效率?

發表於2024-03-04

在這裡插入圖片描述

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 的三種使用方式:
    1. 直接使用 @allure.title 為測試用例自定義標題。
    2. @allure.title 支援透過佔位符的方式傳遞引數,可以實現測試用例標題引數化,動態生成測試用例標題。
    3. 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 測試報告定製

相關文章