pytest框架 - 第二集 allure報告

一、斷言assert

二、Pytest 結合 allure-pytest 插件生成美觀的 Allure 報告

(1) 安裝 allure 環境
  1. 安裝 allure-pytest 插件:pip install allure-pytest
  2. 在 github 下載 allure 報告文件
    • 地址:Releases · allure-framework/allure2 · GitHub
    • 下載:allure-2.21.0.zip
    • 配置 path 環境變量(不能有中文):D:\allure-2.21.0\bin
  3. 重啟 Pycharm 并驗證是否安裝成功
    在 dos 和 pycharm 中輸入:allure --version?能看到版本號說明 OK
(2) 生成 allure 報告
  • 生成臨時的 json 報告
    addopts = -vs --alluredir=temps --clean-alluredir (ini)

  • 解釋:
  • --alluredir=temps?生成臨時的 json 報告
  • --clean-alluredir?每一次運行清空臨時的 json 報告

  • 根據 json 報告生成 html 的 allure 報告
if __name__ == '__main__':pytest.main()time.sleep(3)os.system("allure generate./temps -o./reports --clean")

./temps?臨時 json 報告文件夾
-o?output 輸出
./reports?allure 報告的路徑
--clean?每一次運行清空 allure 報告

上面這個運行起來有問題 故優化代碼為:

就是把ini的設定放到run里面

(3) 企業級 allure 報告定制

1. 企業 LOGO 定制

更改 D:\allure-2.21.0\config 目錄下的 allure.yml 配置文件,加入自定義 logo

yaml

plugins:- junit-xml-plugin- xunit-xml-plugin- trx-plugin- behaviors-plugin- packages-plugin- screen-diff-plugin- xctest-plugin- jira-plugin- xray-plugin- custom-logo-plugin

2. 更改圖標

在 D:\allure-2.21.0 - 測試 \plugins\custom-logo-plugin\static 目錄下加入 logo 圖片

3. 更改樣式

在 D:\allure-2.21.0 - 測試 \plugins\custom-logo-plugin\static 目錄下修改 style.css 的樣式

css

/*
.side-nav__brand {background: url('logo.png') no-repeat left center!important;margin-left: 10px;
}
*/.side-nav__brand{background: url('logo.png') no-repeat left center!important;margin-left: 22px;height: 90px;background-size: contain!important;
}.side-nav__brand-text{display: none;
}

最后根據margin-left: 22px;height: 90px;樣式調整 logo 大小和位置。

2. 項目結構的報告定制

報告左邊的定制
@allure.epic("項目名稱:碼尚教育金融項目接口自動化報告")
@allure.feature("模塊名稱:用戶管理模塊")
class TestApi:@allure.story("接口名稱:登陸接口")#@allure.title("驗證登陸接口成功返回數據")def test_login(self):print("登陸測試用例")allure.dynamic.title("接口登陸成功")assert "a" in "abc"

報告右邊的定制

優先級:BLOCKER(致命),CRITICAL(嚴重),NORMAL(一般),MINOR(提示),TRIVIAL(輕微)

@allure.epic("項目名稱: 金融項目接口自動化報告")
@allure.feature("模塊名稱: 用戶管理模塊")
class TestApi:@allure.story("接口名稱: 登陸接口")#@allure.title("驗證登陸接口成功返回數據")@allure.severity(allure.severity_level.BLOCKER)def test_login(self):print("登陸測試用例")allure.dynamic.title("接口登陸成功")assert "a" in "abc"@allure.story("接口名稱: 登陸接口")@allure.title("驗證登陸失敗")def test_login2(self):print("登陸測試用例")assert "a" in "abc"def test_register(self):print("注冊測試用例")

裝飾器部分

@allure.epic("項目名稱:金融項目接口自動化報告")

allure.epic?裝飾器用于定義測試用例所屬的史詩級(項目級)別的標題,這里指定了項目名稱為 “金融項目接口自動化報告” ,在 Allure 報告中會以項目維度進行展示,方便從宏觀層面歸類測試用例。

@allure.feature("模塊名稱:用戶管理模塊")

allure.feature?裝飾器用來標識測試用例所屬的功能模塊,這里表明這些測試用例屬于 “用戶管理模塊” ,可以將同一功能模塊下的測試用例聚合展示在 Allure 報告中。

@allure.story("接口名稱:登陸接口")

allure.story?裝飾器用于進一步細化測試用例所屬的用戶故事,這里表示測試用例圍繞 “登陸接口” 展開,可幫助在報告中按不同接口維度組織測試用例。

@allure.title("驗證登陸失敗")

allure.title?裝飾器用于指定測試用例在 Allure 報告中顯示的標題。在test_login2方法上使用,意味著該測試用例在報告中展示的標題為 “驗證登陸失敗” ,可使報告中的用例標題更清晰易讀。

@allure.severity(allure.severity_level.BLOCKER)

allure.severity?裝飾器用于設置測試用例的嚴重級別,這里設置為allure.severity_level.BLOCKER(致命級別),表示這個測試用例對應的問題如果失敗,會嚴重影響系統功能,導致系統無法正常使用。在 Allure 報告中會根據嚴重級別對測試用例進行分類展示和統計。

  • @allure.link(url="http://www.baidu.com",name="接口訪問鏈接")?:在 Allure 報告中添加一個指向指定網址的鏈接,名稱為 “接口訪問鏈接”,方便查看與接口相關的外部資源。
  • @allure.issue(url="http://www.baidu.com",name="bug鏈接")?:在報告中添加指向 bug 跟蹤系統等的鏈接,名稱為 “bug 鏈接”,用于關聯該測試用例可能存在的問題記錄。
  • @allure.testcase(url="http://www.baidu.com",name="測試用例鏈接")?:在報告中添加指向測試用例詳細文檔等的鏈接,名稱為 “測試用例鏈接”,方便追溯測試用例的設計和詳細說明。

?

allure.attach()?是 Allure 框架提供的一個核心方法,用于在測試報告中添加額外的附件(如截圖、日志、請求響應數據等),豐富測試結果的可視化信息。這些附件會顯示在測試報告的詳情頁中,幫助測試人員更直觀地定位問題。

核心功能

  1. 添加附件到測試報告
    可以將各種類型的文件或數據(如圖片、文本、JSON、XML 等)作為附件嵌入到 Allure 報告中。

  2. 支持多種附件類型
    通過?attachment_type?參數指定附件類型,常見類型包括:

    • allure.attachment_type.PNG/JPEG:圖片
    • allure.attachment_type.TEXT:文本
    • allure.attachment_type.JSON:JSON 數據
    • allure.attachment_type.HTML:HTML 片段
    • allure.attachment_type.XML:XML 數據

方法參數

allure.attach(body: Union[str, bytes],         # 附件內容(字符串或字節流)name: str = None,                # 附件名稱(顯示在報告中)attachment_type: allure.attachment_type = None,  # 附件類型extension: str = None            # 附件擴展名(可選)
)

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/83391.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/83391.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/83391.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

人工智能時代:解鎖職業新身份,從“認證師”到“工程師”的進階之路

在人工智能技術浪潮席卷全球的今天,技術的飛速迭代正在重塑職業版圖。從算法優化到倫理決策,從系統測試到應用開發,AI技術不再只是程序員的專屬領域,而是成為各行各業從業者必須掌握的“生存技能”。當企業爭相布局AI賽道,個人如何在這場變革中搶占先機?答案或許藏在兩個…

【帶文檔】網上點餐系統 springboot + vue 全棧項目實戰(源碼+數據庫+萬字說明文檔)

📌 一、項目概括 本系統共包含三個角色: 管理員:系統運營管理者 用戶:點餐消費用戶 美食店:上傳菜品與處理訂單的店鋪賬號 通過對這三類角色的權限與業務分工設計,系統實現了點餐流程的全鏈路數字化&a…

window nvidia-smi命令 Failed to initialize NVML: Unknown Error

如果驅動目錄下的可以執行,那可能版本原因 "C:\Program Files\NVIDIA Corporation\NVSMI\nvidia-smi"復制"C:\Program Files\NVIDIA Corporation\NVSMI\nvidia-smi.exe"替換 C:\Windows\System32\nvidia-smi.exe 或者 把C:\Windows\System3…

接觸感知 鉗位電路分析

以下是NG板接觸感知電路的原理圖。兩極分別為P3和P4S&#xff0c;電壓值P4S < P3。 電路結構分兩部分&#xff0c;第一部分對輸入電壓進行分壓鉗位。后級電路使用LM113比較器芯片進行電壓比較&#xff0c;輸出ST接觸感知信號。 鉗位電路輸出特性分析 輸出電壓變化趨勢&a…

70、微服務保姆教程(十三)Docker容器詳細講義

一、關于Docker 1.1為什么要用docker? 隨著開發的項目越來越復雜,軟件越來越多,服務器越來越多,我們在開發和部署的時候會遇到很多問題,比如: 1.不同的應用程序可能會有不同的應用環境,比如Java開發的網站和php開發的網站依賴的軟件就不一樣,如果把他們依賴的軟件都…

Python 中的 typing.ClassVar 詳解

一、ClassVar 的定義和基本用途 ClassVar 是 typing 模塊中提供的一種特殊類型&#xff0c;用于在類型注解中標記類變量&#xff08;靜態變量&#xff09;。根據官方文檔&#xff0c;使用 ClassVar[…] 注釋的屬性表示該屬性只在類層面使用&#xff0c;不應在實例上賦值 例如&…

架構與UML4+1視圖

簡單對比分析 架構41視圖 架構41視圖是由Philippe Kruchten提出的&#xff0c;用于描述軟件系統的架構。它包括以下五個視圖&#xff1a; 邏輯視圖&#xff1a;描述系統的功能需求&#xff0c;展示系統的靜態結構&#xff0c;通常使用類圖、對象圖等。開發視圖&#xff1a;…

Redis 八股

目錄 數據類型 字符串&#xff1a; List&#xff1a; HASH&#xff1a; Set&#xff1a; Zset&#xff1a; BitMap&#xff1a;&#xff08;這個及以下是后來新增的數據結構&#xff09; HyperLogLog&#xff1a; GEO&#xff1a; Stream&#xff1a; 主要數據結構 …

基于協同過濾的文學推薦系統設計【源碼+文檔+部署】

基于協同過濾的文學推薦系統設計 摘要 隨著信息技術的飛速發展和文學閱讀需求的日益多樣化&#xff0c;構建一個高效、精準的文學推薦系統變得尤為重要。本文采用Spring Boot框架&#xff0c;結合協同過濾算法&#xff0c;設計并實現了一個基于用戶借閱行為和社交論壇互動的文學…

鴻蒙電腦:五年鑄劍開新篇,國產操作系統新引擎

出品 | 何璽 排版 | 葉媛 前不久&#xff0c;璽哥發布的《鴻蒙電腦&#xff0c;刺向壟斷的利刃&#xff0c;將重塑全球PC市場格局》發布后&#xff0c;獲得了讀者朋友的積極反饋&#xff0c;不少都期望鴻蒙電腦早日發布。 如今&#xff0c;它真來了&#xff01; 5月8日&…

EWOMAIL

1、錯誤 Problem: problem with installed package selinux-policy-targeted-3.14.3-41.el8.noarch package fail2ban-server-1.0.2-3.el8.noarch requires (fail2ban-selinux if selinux-policy-targeted), but none of the providers can be installed - package fail2ban-…

qt5.14.2 opencv調用攝像頭顯示在label

ui界面添加一個Qlabel名字是默認的label 還有一個button名字是pushButton mainwindow.h #ifndef MAINWINDOW_H #define MAINWINDOW_H#include <QMainWindow> #include <opencv2/opencv.hpp> // 添加OpenCV頭文件 #include <QTimer> // 添加定…

Spring三級緩存的作用與原理詳解

在Spring框架中&#xff0c;Bean的創建過程涉及到了三級緩存機制。這個機制主要是為了提高單例模式下bean實例化和依賴注入的效率。本文將深入探討Spring中的三級緩存&#xff0c;以及其在bean生命周期中的重要作用。 首先&#xff0c;讓我們理解什么是三級緩存。Spring中的三…

IoTDB集群的一鍵啟停功能詳解

IoTDB&#xff08;Internet of Things Database&#xff09;作為一種專為物聯網設計的高性能時序數據庫&#xff0c;支持單機與分布式等多種部署模式。隨著節點數量的增加&#xff0c;手動管理集群的啟動與停止過程變得繁瑣。為了提升部署效率&#xff0c;IoTDB 提供了一鍵啟停…

Oracle學習日記--Oracle中使用單個inert語句實現插入多行記錄

目錄 前言&#xff1a; 問題現象&#xff1a; 問題分析&#xff1a; 解決方法&#xff1a; 1、insert into ... union all句式 2、insert all into ...select 1 from dual句式 總結&#xff1a; 前言&#xff1a; 最近項目中使用到了Oracle數據庫&#xff0c;由于Oracle數…

LabVIEW 程序運行時內存不足報錯原因

在 LabVIEW 程序開發與運行過程中&#xff0c;內存不足報錯并退出是常見且棘手的問題。這不僅影響程序穩定性&#xff0c;還可能導致數據丟失與系統崩潰。以下從程序設計、硬件資源、系統環境等多維度深入剖析其成因&#xff0c;幫助開發者準確定位并解決問題。 ? 一、程序設…

【GAN網絡入門系列】一,手寫字MINST圖片生成

&#x1f368; 本文為&#x1f517;365天深度學習訓練營 中的學習記錄博客&#x1f356; 原作者&#xff1a;K同學啊 博主簡介&#xff1a;努力學習的22級本科生一枚 &#x1f31f;?&#xff1b;探索AI算法&#xff0c;C&#xff0c;go語言的世界&#xff1b;在迷茫中尋找光芒…

Baklib加速企業AI數據智理轉型

Baklib智理AI數據資產 在AI技術深度滲透業務場景的背景下&#xff0c;Baklib通過構建企業級知識中臺架構&#xff0c;重塑了數據資產的治理范式。該平臺采用智能分類引擎與語義分析模型&#xff0c;將分散在郵件、文檔、數據庫中的非結構化數據轉化為標準化的知識單元&#xf…

如何在Windows右鍵新建菜單中添加自定義項,將notepad添加到新建菜單

一、簡介 Windows 右鍵新建菜單的核心管理機制隱藏在注冊表的 HKEY_CLASSES_ROOT 根鍵中。這里存在兩種關鍵注冊表項&#xff1a;文件擴展名項和文件類型項&#xff0c;它們共同構成了新建菜單的完整控制體系。 以常見的.txt文件為例&#xff0c;系統通過以下機制實現新建菜單…

中大型水閘安全監測系統建設實施方案

一、方案背景 隨著科技的不斷進步&#xff0c;水利工程的數字化轉型已經成為提升城市水資源管理效率和增強防洪能力的關鍵。今天&#xff0c;我們將引導您深入了解我國大中型水閘安全監測管理系統的構建方案&#xff0c;探討如何運用先進技術確保國家水安全&#xff0c;提升水利…