python web自動化(Allure報告)

Allure詳細安裝請看之前的博客

1.Allure配置與??

????????運??例,?成allure報告
????????pip install allure-pytest -i

? ? ? https://mirrors.aliyun.com/pypi/simple/

????????運??例,?成allure報告
????????

# main.py
import os
import pytest
if __name__ == '__main__':
# 如果加了`-s`或者`-vs`命令,那么打印的內容就不會顯示在報
告中。
pytest.main(['--alluredir', './result', '--clean-alluredir'])
os.system('allure generate ./result/ -o ./report/ --clean')

????????看到這個命令表示allure報告?成成功了:

????????????????

打開report的如下這個

allure報告清空上?次運?的記錄

如果不加清楚的命令,會導致歷史數據有緩存,導致不會?成最新的數據(例如:更改?例的名稱后,?成的報告依舊是歷史的

????????

--alluredir:指定報告的?錄路徑
--clean-alluredir:如果已經存在報告,就先清空它
示例:
pytest.main(['--alluredir', './result', '--clean-alluredir'])
--clean:清除系統中的allure緩存
示例:
os.system('allure generate ./result/ -o ./report/ --clean')


????????

2.Allure報告添加失敗截

固定的鉤?函數名稱(不能隨意修改) :pytest_runtest_makereport
鉤?函數需要配置在conftest.py中:

import allure
import pytest
from selenium import webdriver@pytest.fixture()
def browser():global driver# 01 用例的前置步驟,初始化瀏覽器對象driver = webdriver.Chrome()# 02 用例執行,返回driveryield driver# 03 用例的后置步驟,關閉瀏覽器driver.quit()@pytest.hookimpl(hookwrapper=True)
def pytest_runtest_makereport():# 獲取測試用例的執行結果,yield,返回給out對象,然后再去轉化為result對象out = yield"""從result對象out獲取調用結果的測試報告,返回一個report對象report對象的屬性:包括when(setup,call,teardown等三個值)、nodeid(測試用例的名稱)、outcome(用例的執行結果, passed, failed)"""report = out.get_result()  # 返回一個report對象# 僅僅獲取用例call階段的執行結果,不包含setup、teardownif report.when == "call":# 獲取用例call執行結果為失敗的情況xfail = hasattr(report, "wasxfail")  # hasattr方法會:返回對象是否具有給定名稱的屬性# 如果測試用例被跳過且標記為預期失敗,或者測試用例執行失敗且不是預期失敗if (report.skipped and xfail) or (report.failed and not xfail):# 添加allure報告截圖with allure.step("添加失敗的截圖 ---> "):allure.attach(driver.get_screenshot_as_png(), "失敗的截圖",allure.attachment_type.PNG)elif report.passed:# 如果測試用例執行通過,添加allure報告截圖with allure.step("添加成功的截圖 ---> "):allure.attach(driver.get_screenshot_as_png(), "成功的截圖",allure.attachment_type.PNG)

3.Allure?例描述詳解

????????作?:提?測試報告的可讀性,減少團隊溝通成本,提升?作效率
????????

????????????????

# 登錄模塊
import allure@allure.epic("讀書屋項目")
@allure.feature("讀書屋 - 登錄模塊")
class TestReadBookHomesLogin:@allure.step("步驟1:打開項目地址")def step01(self, browser):# 步驟1:打開項目地址browser.get("http://novel.hctestedu.com/user/userinfo.html")@allure.step("步驟2:輸入賬號")def step02(self, browser):browser.find_element("id", "txtUName").send_keys("17798989898")@allure.step("步驟3:輸入密碼")def step03(self, browser):browser.find_element("id", "txtPassword").send_keys("123456")@allure.step("步驟4:點擊登錄")def step04(self, browser):browser.find_element("id", "btnLogin").click()@allure.title("login01測試用例")@allure.story("登錄流程用例:流程/場景01")@allure.testcase("http://novel.hctestedu.com/user/login.html")@allure.issue("https://www.baidu.com/?tn=49055317_54_hao_pg")@allure.description("2024年5月25日20:26:00")def test_read_login01(self, browser):self.step01(browser)self.step02(browser)self.step03(browser)self.step04(browser)print("讀書屋項目 - 登錄 - login01測試用例")@allure.title("login02測試用例")@allure.story("登錄流程用例:流程/場景02")@allure.testcase("https://fanyi.youdao.com/index.html#/")def test_read_login02(self, browser):print("讀書屋項目 - 登錄 - login02測試用例")@allure.epic("讀書屋項目")
@allure.feature("讀書屋 - 作家專區")
# 作家專區
class TestReadBookHomesWRITER:@allure.title("writer01測試用例")@allure.story("作家專區流程用例:流程/場景01")def test_read_writer01(self, browser):print("讀書屋項目 - 作家專區 - writer01測試用例")

4.?例等級設置

通過 @allure.severity() 對測試?例設置不同的等級

blocker  阻塞缺陷(功能未實現,?法下?步)
critical  嚴重缺陷(功能點缺失)
normal   ?般缺陷(邊界情況,格式錯誤)
minor  次要缺陷(界?錯誤與ui需求不符)
trivial   輕微缺陷(必須項?提示,或者提示不規范)


?


?


?

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

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

相關文章

SpringBoot如何實現熱部署

熱部署 使用SpringBoot提供的DevTools實現熱部署 原理:實時監控classpath下文件的變化(即編譯后的target目錄),如果發生變化則自動重啟 配置:添加DevTools的依賴即可(需要開啟IDEA的自動編譯&#xff09…

ROS學習記錄:用C++實現IMU航向鎖定

前言 獲取IMU數據的C節點 在了解了如何獲取到IMU的姿態信息(鏈接在上面)后,接下來嘗試實現讓一個節點在訂閱IMU數據的時候,還能發布運動控制指令,使機器人能對姿態變化做出反應,達到一個航向鎖定的效果。 …

神奇動物在哪里,但導演是微軟

大數據產業創新服務媒體 ——聚焦數據 改變商業 一說到計算機視覺,大多數人第一時間聯想到的便是“人臉識別”、“自動駕駛“、道路檢測”等跟我們日常生活息息相關的關鍵詞。而在2024年的5月末,微軟在GitHub上面上傳了這樣一個計算機視覺的項目&#x…

2024年華為OD機試真題-停車場車輛統計-C++-OD統一考試(C卷D卷)

題目描述: 特定大小的停車場,數組cars[]表示,其中1表示有車,0表示沒車。車輛大小不一,小車占一個車位(長度1),貨車占兩個車位(長度2),卡車占三個車位(長度3),統計停車場最少可以停多少輛車,返回具體的數目。 輸入描述: 整型字符串數組cars[],其中1表示有車,0…

通過Python爬取公告內容

在網絡時代,信息獲取變得更加便捷。通過網絡爬蟲技術,我們可以從互聯網上快速獲取各種信息。本文將介紹如何使用 Python 爬蟲工具從指定網站上獲取公告內容,并提取其中的關鍵信息。 1. 簡介 在本文中,我們將使用 Python 的 requ…

幾個速度比較快的 Linux 開源鏡像站及支持的資源列表

搜狐開源鏡像站 https://mirrors.sohu.com/ File Name CPAN/ FreeBSD/ QpenBSD/ RockyL apache/ archlinux/ centos/ ceph/ cygwin/ debian/ debian–cd/ debian-security/ deepin/ deepin-cd/ docker-ce/ fedora/ fedora-epel/ gentoo/ lib/ mysql/ nginx/ opensuse/ php/ ubu…

C++筆試強訓day32

目錄 1.素數回文 2.活動安排 3.合唱團 1.素數回文 鏈接https://www.nowcoder.com/practice/d638855898fb4d22bc0ae9314fed956f?tpId290&tqId39945&ru/exam/oj 現將其轉化為回文數(這里用字符串存儲比較方便轉化),然后判斷是否為…

Ubuntu安裝IPOPT和Casadi

1.IPOPT安裝 1.1安裝所需功能包 sudo apt-get install cppad sudo apt-get install gcc g gfortran subversion patch wget1.2下載最新源代碼3.14 https://www.coin-or.org/download/source/Ipopt/1.3解壓進入IPOPT安裝包,下載ASL git clone https://github.com/…

python項目中的__pycache__有什么作用?

在 Python 項目中,目錄 __pycache__ 通常用于存儲已編譯的字節碼文件。這些文件是 Python 解釋器在導入模塊時生成的,以加快后續的模塊加載速度。 具體內容 __pycache__ 目錄中的文件是以 .pyc 擴展名結尾的字節碼文件。文件名通常會包含原始 Python 源…

【FPGA】VGA顯示文字、彩條、圖片——基于DE2-115

文章目錄 前言一、VGA概述1.1 簡述1.2 管腳定義1.3 VGA顯示原理1.4 VGA時序標準1.5 VGA 顯示模式及相關參數 二、VGA顯示自定義的漢字字符2.1 點陣漢字生成2.2 生成BMP文件2.3 生成txt文件2.4 實現效果 三、VGA顯示條紋3.1 實現流程3.2 實現效果 四、VGA輸出一幅彩色圖像4.1 bm…

ArcGIS不同圖斑設置不同的透明度

對于設置一個圖層的整體的透明度,我們在 ArcGIS制作帶蒙版的遙感影像地圖http://mp.weixin.qq.com/s?__bizMzIzNjM2NTYxMg&mid2247509080&idx1&sn38dccf0a52bb3bb3758f57114ee38b72&chksme8da161bdfad9f0d363da90959a8524dcf2b60d0e8d999f8ebeef0…

Unity面試八股文之基礎篇

文章目錄 前言1. Unity的生命周期加載第一個場景Editor在第一次幀更新之前幀之間更新順序協程銷毀對象時退出時 2. Unity 協程和線程,進程的區別3. 本地坐標系 世界坐標系4. 碰撞器和觸發器的區別后話 前言 開設這個欄目的博文會寫一些有關unity的面試題目,在面試的…

如何做好軟件項目的溝通管理

如何做好軟件項目的溝通管理 軟件項目的溝通管理是確保項目信息在團隊成員、利益相關者和相關群體之間有效流通的過程。良好的溝通是項目成功的關鍵,在項目開始時,需要制定詳細的溝通計劃,包括溝通的目的、對象、內容、頻率和渠道等信息。 …

【spring】@ResponseBody注解學習

ResponseBody介紹 ResponseBody 是一個Spring框架中的注解,主要用于Web開發,特別是在Spring MVC框架中。它的核心作用是改變Spring MVC處理HTTP請求響應的行為,使得從控制器方法返回的數據直接寫入HTTP響應體(Response Body&…

Python面試寶典:Python中與網絡協議基礎和socket編程相關的知識和面試筆試題(1000加面試筆試題助你輕松捕獲大廠Offer)

Python面試寶典:1000加python面試題助你輕松捕獲大廠Offer【第二部分:Python高級特性:第十四章:網絡編程:第一節:網絡協議基礎和socket編程】 第十四章:并發編程第一節:網絡協議基礎和socket編程網絡協議基礎Socket編程創建SocketTCP服務器TCP客戶端數據傳輸關閉Socket…

Python高級進階--slice切片

slice切片?? 在 Python 中,切片操作是一種常見且方便的方式,用于從字符串、列表或元組中獲取部分元素。這種操作通過指定起始索引、結束索引和步長來實現。下面我們來看一些關于切片的簡單介紹以及一些常見用法。 1. 切片簡介 取一個str、list、tup…

【Unity2D:Animator】為角色添加動畫效果

一、添加Animator組件并創建Animator Controller文件 1. 添加Animator組件: 2. 在Assets-Art文件夾中新建一個名為Animations的文件夾,用來存儲所有動畫資源 3. 在Animations文件夾中新建一個名為Player的文件夾,再創建一個名為Animators的文…

LeetCode //C - 119. Pascal‘s Triangle II

119. Pascal’s Triangle II Given an integer rowIndex, return the rowIndexth (0-indexed) row of the Pascal’s triangle. In Pascal’s triangle, each number is the sum of the two numbers directly above it as shown: Example 1: Input: rowIndex 3 Output: …

vue項目移動端商場

一、項目前端頁面展示 二、項目整體目錄結構 三、項目流程 1. vue快速創建基礎項目 創建項目 vue create hk-shop 1 選擇需要的配置 創建基礎文件夾目錄 src文件夾下文件夾目錄: ① views 文件夾存放界面 ② components 文件夾存放界面中局部組件 ③ config 文件夾存…

【排序算法】——歸并排序(遞歸與非遞歸)含動圖

制作不易,三連支持一下吧!!! 文章目錄 前言一.歸并排序遞歸方法實現二.歸并排序非遞歸方法實現 前言 這篇博客我們將介紹歸并排序的原理和實現過程。 一、歸并排序遞歸方法實現 基本思想: 歸并排序(MERGE-…