Allure定製報告

来源:https://www.cnblogs.com/qishuaiRisen/archive/2022/08/31/16644656.html
-Advertisement-
Play Games

1、定製報告常用的裝飾器 結合表和示例圖查看 | 使用方法 | 參數值 | 參數說明 | | | | | | @allure.epic() | 項目名稱 | 項目名稱,樹結構第一層 | | @allure.feature() | 模塊名稱 | 模塊名稱,樹結構第二層 | | @allure.stor ...


目錄

1、定製報告常用的裝飾器

結合表和示例圖查看

使用方法 參數值 參數說明
@allure.epic() 項目名稱 項目名稱,樹結構第一層
@allure.feature() 模塊名稱 模塊名稱,樹結構第二層
@allure.story() 用戶故事 測試用例分組名,樹結構第三層
@allure.title() 用例標題 測試用例標題,樹結構第四層
@allure.severity() 用例等級/優先順序 blocker,critical,normal,minor,trival
@allure.description() 用例描述 用例描述
@allure.link() 自定義鏈接
@allure.issure() bug鏈接地址
@allure.testcase() 測試用例地址
@allure.step() 測試步驟
@allure.attachment() 附件

示例圖
image

2、allure.dynamic在測試方法中動態添加定製

在對測試方法進行參數化的時候,使用@allure.title裝飾器只能對所有測試用例定製一樣的標題,想要動態定製用例標題可以在測試方法中使用allure.dynamic.title()來進行定製。
定製代碼示例

login_data = [
   ("登錄成功用例", "zhangsan", "password", "success"),
   ("密碼錯誤用例", "zhangsan", "passwd", "failed_password"),
   ("用戶不存在", "lisi", "password", "user_not_exists")
             ]
@pytest.mark.parametrize("case_title,username,password,expect_result", login_data)
def test_login(case_title, username, password, expect_result):
   print("登錄測試")
   allure.dynamic.title(case_title)
   allure.dynamic.description(f"測試用例描述:此條用例期待結果:{expect_result}")

定製效果
image

實際上表中除了epic所有定製都可以在測試方法中動態定製,具體如下圖
image

3、用例等級的定製

  • blocker:阻塞缺陷,致命bug
  • critical:嚴重缺陷,功能未實現或錯誤
  • normal:一般缺陷(80%都是此類缺陷),預設等級
  • minor:次要缺陷,界面顯示問題
  • trivial:輕微缺陷,提示問題

使用方法:@allure.severity(allure.severity_level.BLOCKER)

註意:
該裝飾器既可以修飾方法也可以修飾類
不修飾的情況下,預設等級為normal

4、用例描述的定製

  1. 使用裝飾器
    @allure.description()
  2. 動態定製
    allure.dynamic.description()
@allure.title("註銷用例標題1")
@allure.description("測試註銷1")
def test_logout(self):
    print("註銷")
    allure.dynamic.title("註銷用例標題2")
    allure.dynamic.description("測試註銷2")

註意:
使用動態定製會覆蓋使用裝飾器定製

5、鏈接的定製

  • 測試用例鏈接:@allure.testcase(url=鏈接地址,name=名稱)
  • bug鏈接:@allure.issue(url=鏈接地址,name=名稱)
  • 自定義鏈接:@allure.link(url=鏈接地址,name=名稱)
@allure.link(url="https://passport.jd.com/new/login.aspx", name="登錄地址")
@allure.issue(url="https://www.google.com", name="bug列表地址1")
@allure.testcase(url="https://testlink.org/", name="測試用例地址1")
@pytest.mark.parametrize("case_title,username,password,expect_result", login_data)
def test_login(self, case_title, username, password, expect_result):
    print("登錄測試")
    allure.dynamic.link(url="https://www.baidu.com",name="登錄鏈接")
    allure.dynamic.issue(url="https://www.baidu.com", name="bug列表地址2")
    allure.dynamic.testcase(url="https://www.baidu.com", name="測試用例地址2")

註意:
鏈接同樣支持動態定製
動態定製不會覆蓋裝飾器定製,會把所有鏈接都顯示出來

6、步驟的定製

  1. 使用裝飾器
    @allure.step()
  2. 在測試方法內使用
    with allure.step():

示例:

@allure.epic("電商項目")
@allure.feature("購物車模塊")
class TestCart:
    @allure.step("第一步,測試加入購物車")
    @allure.story("測試添加購物車方法")
    @allure.title("加入購物車測試用例")
    def test_add_cart(self):
        # 第一步,登錄
        with allure.step("第一步,登錄"):
            print("登錄成功")
        # 第二步,搜索商品
        with allure.step("第二步,搜索商品"):
            print("搜索成功")
        # 第三步,將商品加入購物車
        with allure.step("第三步,加入購物車"):
            print("加入購物車成功")
        # 第四步,打開購物車
        with allure.step("第四步,打開購物車"):
            print("打開購物車成功")
        # 第五步,斷言驗證是否添加成功
        with allure.step("第五步,斷言驗證是否加入成功"):
            print("驗證加入購物車通過")

image

7、附件的定製

使用allure.attachment對附件進行定製
參數:

  • body:附件內容
  • name:附件名稱
  • attachment_type:附件類型,支持的類型如下
    • image
  1. UI自動化項目

    def test_register(self):
        print("註冊測試")
        with open("./allure_demo/screen_shot/fail_snap.jpg","rb") as f:
            allure.attach(body=f.read(), name="註冊測試失敗截圖", attachment_type=allure.attachment_type.JPG)
    

    image

  2. 介面自動化項目

    def test_search_api():
        allure.attach(body=url, name="請求地址", attachment_type=allure.attachment_type.TEXT)
        allure.attach(body=json.dumps(params), name="請求參數", attachment_type=allure.attachment_type.TEXT)
        resp = requests.get(url, params=params)
        allure.attach(body=resp.text,  name="響應數據", attachment_type=allure.attachment_type.TEXT)
    

    image


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • JavaScript中的數組 數組的概念 ==數組==是指一組數據的集合,其中每個數據被稱作元素,在數組中可以存放任意類型的元素。數組是一種將一組數據存儲在單個變數名下的優雅方式。 創建數組 1.利用new創建數組 var 數組名 = new Array() ; var arr = new Arra ...
  • 1 以下代碼執行後,控制臺中的輸出內容為? for (let i = 0; i < 3; i++) { setTimeout(() => { console.log(i); }); } for (var j = 0; j < 3; j++) { setTimeout(() => { console. ...
  • 實現了自動生成和插槽兩個方式,主要把 el-table 和 el-pagination 封裝在一起 效果圖: 使用組件,啟用自動生成 :auto="true" 自動生成-編輯 (包括請求已經實現了)新增和刪除也是一樣 ps:如有額外的按鈕可以用插槽實現 查詢的時候,只需要多返回下麵數據,就可以自動生 ...
  • 問題: this.$refs[formName].validate((valid) =>{} 無效的問題,當驗證通過的時候點確定按鈕沒有報錯,也沒有任何反應。 背景: ruoyi前後端分離新項目,前端vue。 解決: 參考: this.$refs[formName].validate((valid) ...
  • Vue + Elementui 實現登錄頁 手機驗證碼、倒計時等功能 點擊打開視頻講解 更加詳細 <template> <div id="app"> <div class="left">用代碼改變世界</div> <el-form class="content" ref="refForm" :rul ...
  • 若依前後端分離項目中,提交含有qutil富文本控制項數據的表單,後端接收到的富文本數據,缺少了部分html標簽。 ...
  • YSLaunchar-a1.0 模型 基本介紹 本文不考慮所有具體的實現方法,之後會有更完整第二版發出 該程式計劃使用 julia 語言編寫,目前版本(1.7)並不包含類(class),取而代之,我會使用 julia 提供的兩種結構體完成。 考慮了很久,我將會把所有版本,玩家列表使用字典的形式。 主 ...
  • 目錄 一.OpenGL 圖像曝光度調節 1.原始圖片 2.效果演示 二.OpenGL 圖像曝光度調節源碼下載 三.猜你喜歡 零基礎 OpenGL ES 學習路線推薦 : OpenGL ES 學習目錄 >> OpenGL ES 基礎 零基礎 OpenGL ES 學習路線推薦 : OpenGL ES 學 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...