Pytest 测试框架与Allure 测试报告——Allure2测试报告-L3

目录:

  1. allure2报告中添加附件-图片
    1. Allure2报告中添加附件
    2. Allure2报告中添加附件(图片)应用场景
    3. Allure2报告中添加附件(图片)-Python
    4. 代码示例:
  2. allure2报告中添加附件-日志
    1. Allure2报告中添加附件(日志)应用场景
    2. 代码示例:
  3. allure2报告中添加附件-html
    1. Allure2报告中添加附件(html)应用场景
    2. 语法:
    3. 代码示例:
  4. allure2报告中添加附件-视频
    1. Allure2报告中添加附件(视频)应用场景
    2. 语法:
    3. 代码示例:
    4. 终端运行:

1.allure2报告中添加附件-图片

Allure2 报告中添加附件
TEXT = ("text/plain", "txt")
CSV = ("text/csv", "csv")
TSV = ("text/tab-separated-values", "tsv")
URI_LIST = ("text/uri-list", "uri")HTML = ("text/html", "html")
XML = ("application/xml", "xml")
JSON = ("application/json", "json")
YAML = ("application/yaml", "yaml")
PCAP = ("application/vnd.tcpdump.pcap", "pcap")PNG = ("image/png", "png")
JPG = ("image/jpg", "jpg")
SVG = ("image/svg-xml", "svg")
GIF = ("image/gif", "gif")
BMP = ("image/bmp", "bmp")
TIFF = ("image/tiff", "tiff")MP4 = ("video/mp4", "mp4")
OGG = ("video/ogg", "ogg")
WEBM = ("video/webm", "webm")PDF = ("application/pdf", "pdf")
Allure2 报告中添加附件(图片)应用场景
  • 应用场景:在做 UI 自动化测试时,可以将页面截图,或者出错的页面进行截图,将截图添加到测试报告中展示,辅助定位问题。
  • 解决方案:
    • Python:使用 allure.attach 或者 allure.attach.file() 添加图片。
    • Java:直接通过注解或调用方法添加。
 Allure2 报告中添加附件(图片)- Python
  • 语法:allure.attach.file(source, name, attachment_type, extension),参数解释:
    • source:文件路径,相当于传一个文件。
    • name:附件名字。
    • attachment_type:附件类型,是 allure.attachment_type 其中的一种(支持 PNG、JPG、BMP、GIF 等)。
    • extension:附件的扩展名。
       
 代码示例:

test_order.py

import allureclass TestWithAttach:def test_pic(self):allure.attach.file('./img/111.jpg',name="这是一个图片",attachment_type=allure.attachment_type.JPG,extension="jpg")

终端运行:

 

 

 

  • 语法:allure.attach(body, name=None, attachment_type=None, extension=None):,参数解释:
    • body:要写入附件的内容
    • name:附件名字。
    • attachment_type:附件类型,是 allure.attachment_type 其中的一种(支持 PNG、JPG、BMP、GIF 等)。
    • extension:附件的扩展名。
       
import allureclass TestWithAttach:def test_pic2(self):with open("./img/111.jpg", mode="rb") as f:file = f.read()allure.attach(file, "页面截图", attachment_type=allure.attachment_type.JPG)

 终端运行:

 

2.allure2报告中添加附件-日志

Allure2 报告中添加附件(日志)应用场景
  • 应用场景:报告中添加详细的日志信息,有助于分析定位问题。
  • 解决方案:
    • Python:使用 python 自带的 logging 模块生成日志,日志会自动添加到测试报告中。
    • Java:直接通过注解或调用方法添加。
  • 日志配置,在测试报告中使用 logger 对象生成对应级别的日志。 
代码示例:

log_util.py

import logging
import osfrom logging.handlers import RotatingFileHandler# 绑定绑定句柄到logger对象
logger = logging.getLogger(__name__)
# 获取当前工具文件所在的路径
root_path = os.path.dirname(os.path.abspath(__file__))
# 拼接当前要输出日志的路径
log_dir_path = os.sep.join([root_path, f'/logs'])
if not os.path.isdir(log_dir_path):os.mkdir(log_dir_path)
# 创建日志记录器,指明日志保存路径,每个日志的大小,保存日志的上限
file_log_handler = RotatingFileHandler(os.sep.join([log_dir_path, 'log.log']), maxBytes=1024 * 1024, backupCount=10 , encoding="utf-8")
# 设置日志的格式
date_string = '%Y-%m-%d %H:%M:%S'
formatter = logging.Formatter('[%(asctime)s] [%(levelname)s] [%(filename)s]/[line: %(lineno)d]/[%(funcName)s] %(message)s ', date_string)
# 日志输出到控制台的句柄
stream_handler = logging.StreamHandler()
# 将日志记录器指定日志的格式
file_log_handler.setFormatter(formatter)
stream_handler.setFormatter(formatter)
# 为全局的日志工具对象添加日志记录器
# 绑定绑定句柄到logger对象
logger.addHandler(stream_handler)
logger.addHandler(file_log_handler)
# 设置日志输出级别
logger.setLevel(level=logging.INFO)

test_order.py 

import allure
from utils.log_util import logger@allure.epic("需求1")
@allure.feature("功能模块1")
class TestEpic:@allure.story("子功能1")@allure.title("用例1")def test_case1(self):logger.info('这是TestEpic 第一条用例')print("用例1")@allure.story("子功能2")@allure.title("用例2")def test_case2(self):logger.debug('这是TestEpic 第二条用例')print("用例2")@allure.story("子功能2")@allure.title("用例3")def test_case3(self):logger.warning('这是TestEpic 第三条用例')print("用例3")@allure.story("子功能1")@allure.title("用例4")def test_case4(self):logger.error('这是TestEpic 第四条用例')print("用例4")

终端运行:

 

 

 

日志展示在 Test body 标签下,标签下可展示多个子标签代表不同的日志输出渠道:

  • log 子标签:展示日志信息。
  • stdout 子标签:展示 print 信息。
  • stderr 子标签:展示终端输出的信息。

禁用日志,可以使用命令行参数控制 --allure-no-capture

 
pytest --alluredir ./results --clean-alluredir --allure-no-capture

 

3.allure2报告中添加附件-html

Allure2 报告中添加附件(html)应用场景
  • 应用场景:可以定制测试报告页面效果,可以将 HTML 类型的附件显示在报告页面上。
  • 解决方案:
    • Python:使用 allure.attach() 添加 html 代码。
    • Java:直接通过注解或调用方法添加。
语法:

allure.attach(body, name, attachment_type, extension),参数解释:

  • body:要写入附件的内容(HTML 代码块)。
  • name:附件名字。
  • attachment_type:附件类型,是 allure.attachment_type 其中的一种。
  • extension:附件的扩展名。
代码示例:
import allureclass TestWithAttach:def test_html(self):allure.attach('<head></head><body> a page </body>','附件是HTML类型',allure.attachment_type.HTML)def test_html_part(self):allure.attach('''html代码块''','附件是HTML类型',allure.attachment_type.HTML)

终端运行:

 

 

 

4.allure2报告中添加附件-视频

Allure2 报告中添加附件(视频)应用场景
  • 应用场景:在做 UI 自动化测试时,可以将页面截图,或者出错的页面进行截图,将截图添加到测试报告中展示,辅助定位问题。
  • 解决方案:
    • Python:使用 allure.attach.file() 添加视频。
    • Java:直接通过注解或调用方法添加。
语法:
  • allure.attach.file(source, name, attachment_type, extension),参数解释:
    • source:文件路径,相当于传一个文件。
    • name:附件名字。
    • attachment_type:附件类型,是 allure.attachment_type 其中的一种。
    • extension:附件的扩展名。
 代码示例:
import allureclass TestWithAttach:def test_video(self):allure.attach.file("./mp4/111.mp4",name="视频",attachment_type=allure.attachment_type.MP4,extension="mp4")
终端运行:

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/242615.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

GEE:随机森林回归器投票方法的优化与修改

作者:CSDN @ _养乐多_ 在随机森林中,随机生成的每棵决策树都对输入数据进行分类或回归,并产生一个输出。对于分类问题,这个输出通常是一个类别标签 ,而对于回归问题,输出通常是一个连续的数值。例如,如果有五棵树的分类输出为 [0.1, 0.2, 0.3, 0.1, 0.1],则平均数是0.…

SpringBoot SaToken Filter如用使用ControllerAdvice统一异常拦截

其实所有的Filter都是一样的原理 大致流程: 创建一个自定义Filter, 用于拦截所有异常此Filter正常进行后续Filter调用当调用后续Filter时, 如果发生异常, 则委托给HandlerExceptionResolver进行后续处理即可 以sa-token的SaServletFilter为例 首先注册SaToken的过滤器 pac…

【51单片机】矩阵按键

0、前言 参考&#xff1a;普中 51 单片机开发攻略 1、硬件 2、软件 main.c #include <reg52.h> #include <intrins.h> #include "delayms.h"typedef unsigned int u16; //对数据类型进行声明定义 typedef unsigned char u8; #define GPIO_KEY P1 #d…

ADSelfService Plus 推出离线多因素身份验证以提升远程工作安全性

采用先进验证方法&#xff0c;确保在任何时间、地点或连接问题下对业务数据的合法访问即使远程用户未连接到身份验证服务器或互联网&#xff0c;也可通过MFA安全认证。 MFA 得克萨斯州德尔瓦雷 — 2023年5月3日 — Zoho Corporation 旗下的企业IT管理部门ManageEngine今日宣布…

web渗透安全学习笔记:2、HTML基础知识

目录 前言 HTML的标题 段落链接与插入图片 HTML元素 HTML属性 HTML头部 HTML与CSS HTML与JavaScript 表格与列表 HTML区块 布局 HTML表单 HTML与数据库 音频与视频 HTML事件 前言 HTML的标题 <!DOCTYPE html> <html> <head> <meta chars…

《WebKit 技术内幕》之七(3): 渲染基础

3 渲染方式 3.1 绘图上下文&#xff08;GraphicsContext&#xff09; 上面介绍了WebKit的内部表示结构&#xff0c;RenderObject对象知道如何绘制自己&#xff0c;但是&#xff0c;问题是RenderObject对象用什么来绘制内容呢&#xff1f;在WebKit中&#xff0c;绘图操作被定…

算法第二十一天-丑数

丑数 题目要求 解题思路 首先判断数字是不是为0或者负数&#xff0c;两者均不可能成为丑数&#xff1b; 之后对n进行不断整除&#xff0c;直到无法除尽为止。 简单判断最后的数是不是1即可。 代码 class Solution:def isUgly(self, n: int) -> bool:if n<0:return Fa…

React的合成事件

合成事件&#xff1a;通过事件委托&#xff0c;利用事件传播机制&#xff0c;当事件传播到document时&#xff0c;再进行分发到对应的组件&#xff0c;从而触发对应所绑定的事件&#xff0c;然后事件开始在组件树DOM中走捕获冒泡流程。 原生事件 —— > React事件 —— >…

力扣每日一练(24-1-20)

大脑里的第一想法是排列组合&#xff0c;直接给出超级准确的最优解。 但不适用&#xff0c;hhh 只要连续的n个元素大于或者等于target就可以了 题目比自己想象的要好解决 解法是使用滑动窗口算法。这个算法的基本思想是维护一个窗口&#xff0c;使得窗口内的元素总和大于等于目…

MySQL---单表查询综合练习

创建emp表 CREATE TABLE emp( empno INT(4) NOT NULL COMMENT 员工编号, ename VARCHAR(10) COMMENT 员工名字, job VARCHAR(10) COMMENT 职位, mgr INT(4) COMMENT 上司, hiredate DATE COMMENT 入职时间, sal INT(7) COMMENT 基本工资, comm INT(7) COMMENT 补贴, deptno INT…

PostgreSQL命令大全

文章目录 连接与退出数据库操作表操作外键约束视图操作存储过程与函数权限管理事务管理查询优化与分析数据类型转换分区表操作复制与备份恢复 PostgreSQL是一个功能强大的开源关系型数据库管理系统&#xff0c;以下是一些基本且常用的命令按功能分类&#xff1a; 连接与退出 连…

Es bulk批量导入数据(1w+以上)

最近在学习es的理论知识以及实际操作&#xff0c;随时更新~ 概要&#xff1a;首先你得有1w条数据的json&#xff0c;然后用java读取json文件导入 一. 创建Json数据 首先我生成1.5w条数据&#xff0c;是为了实践分页查询&#xff0c;用from-size和scroll翻页去实践 生成四个字段…

Servlet系列:生命周期(init、 service、destroy)详解

Servlet的生命周期是由Web容器&#xff08;如Tomcat&#xff09;管理的&#xff0c;包括以下三个阶段&#xff1a; 加载和实例化&#xff1a;当Web应用程序启动时&#xff0c;Web容器会加载和实例化Servlet。加载和实例化过程可以在应用程序启动时自动完成&#xff0c;也可以通…

Nginx快速入门

1.Ngix介绍 1.1 介绍 Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器&#xff0c;同时也提供了IMAP/POP3/SMTP服务。Nginx是由伊戈尔赛索耶夫为俄罗斯访问量第二的Rambler.ru站点&#xff08;俄文&#xff1a;Рамблер&#xff09;开发的&#xff0c;第一个公…

2.RHCSA启动配置

rht-clearcourse 0 #重置练习环境 rht-setcourse rh134 #切换CSA练习环境 cat /etc/rht #查看当前环境 virt-manager #打开KVM控制台 rht-vmctl start classroom #必做&#xff0c;start all不会包含classroom&#xff0c;需…

数据结构之树和二叉树定义

数据结构之树和二叉树定义 1、树的定义2、树的基本概念3、二叉树的定义 数据结构是程序设计的重要基础&#xff0c;它所讨论的内容和技术对从事软件项目的开发有重要作用。学习数据结构要达到的目标是学会从问题出发&#xff0c;分析和研究计算机加工的数据的特性&#xff0c;以…

【计算机网络】【Python】【练习题】【新加坡南洋理工大学】【Computer Control Network】

一、题目描述 该题目描述一个网络中数据包交换&#xff08;Packet Switching&#xff09;的例子。题目如下&#xff1a; 二、问题解答&#xff08;使用Python&#xff09; Q1&#xff1a;如何求出0.0004这个值&#xff1f; &#xff08;1&#xff09;、公式推导过程&#xf…

LeetCode 热题 100 | 双指针(下)

目录 42. 接雨水 1 方法一&#xff1a;我的方法 2 方法二&#xff1a;动态规划 3 方法三&#xff1a;双指针 菜鸟做题第一周&#xff0c;语言是 C 42. 接雨水 1 方法一&#xff1a;我的方法 Warning&#xff1a;这是我的智障做法&#xff0c;请勿模仿 我只能说它教会…

深度解析Python关键字:掌握核心语法的基石(新版本35+4)

目录 关键字 keyword 关键字列表 kwlist softkwlist 关键字分类 数据类型 True、False None 运算类型 and、or、not in is 模块导入 import 辅助关键字 from、as 上下文管理 with 占位语句 pass 流程控制 if、elif、else for while break、continue…

20240117在本地机器识别OCR法语电影的字幕效果PK

20240117在本地机器识别OCR法语电影的字幕效果PK 2024/1/17 11:18 1959 - Jirai Cracher Sur Vos Tombes [Gast, Vian].avi https://www.pianbar.net//drama/52892.html 1959[我唾弃你的坟墓]Jirai cracher sur vos tombes[BT下载/迅雷下载] magnet:?xturn:btih:7c9c99d9d048…