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.mzph.cn/news/637054.shtml

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

相关文章

Flink处理函数(3)—— 窗口处理函数

窗口处理函数包括&#xff1a;ProcessWindowFunction 和 ProcessAllWindowFunction 基础用法 stream.keyBy( t -> t.f0 ).window( TumblingEventTimeWindows.of(Time.seconds(10)) ).process(new MyProcessWindowFunction()) 这里的MyProcessWindowFunction就是ProcessWi…

《WebKit 技术内幕》之五(4): HTML解释器和DOM 模型

4 影子&#xff08;Shadow&#xff09;DOM 影子 DOM 是一个新东西&#xff0c;主要解决了一个文档中可能需要大量交互的多个 DOM 树建立和维护各自的功能边界的问题。 4.1 什么是影子 DOM 当开发这样一个用户界面的控件——这个控件可能由一些 HTML 的标签元素…

【前端学习笔记2】javaScript基础

是什么&#xff1a; 是一种运行在客户端&#xff08;服务器的编程语言&#xff09; javacript分为行内JavaScript&#xff0c;内部JavaScript&#xff0c;外部JavaScript 内部JavaScript 直接写在html中body里面 alert&#xff08;“hello&#xff0c;world”&#xff09;…

Flutter 入门

什么是Flutter Flutter 只是一个用来解决跨平台的UI框架&#xff0c;最终还是要使用原生平台进行绘制&#xff0c;对于大部分和系统API无关的页面都可以使用Flutter处理,但是有一些获取系统信息的页面比如某个页面获取Android是否打开了通知栏权限&#xff1f;获取手机电池电量…

React16源码: React中的IndeterminateComponent的源码实现

IndeterminateComponent 1 &#xff09;概述 这是一个比较特殊的component的类型&#xff0c; 就是还没有被指定类型的component在一个fibrer被创建的时候&#xff0c;它的tag可能会是 IndeterminateComponent在 packages/react-reconciler/src/ReactFiber.js 中&#xff0c;有…

Impala:基于内存的MPP查询引擎

Impala查询引擎 1、Impala概述 1、Impala概述 Impala是Cloudera公司主导研发的高性能、低延迟的交互式SQL查询引擎&#xff0c;它提供SQL语义&#xff0c;能查询存储在Hadoop的HDFS和HBase中的PB级大数据。Impala是CDH平台首选的PB级大数据实时交互式查询分析引擎 2015年11月&…

使用Sobel算子把视频转换为只剩边缘部分

效果展示 原始视频 修改后的视频 整体代码 import cv2vc cv2.VideoCapture(test.mp4)if vc.isOpened():open, frame vc.read() else:open Falsei 0 while open:ret, frame vc.read()if frame is None:breakif ret True:i 1# 转换为灰度图gray cv2.cvtColor(frame, cv…

实现分布式锁

背景 分布式锁是一种用于协调分布式系统中多个节点之间并发访问共享资源的机制。在分布式系统中&#xff0c;由于存在多个节点同时访问共享资源的可能性&#xff0c;需要使用分布式锁来保证数据的一致性和正确性。 今天要实现的是分布式场景中的互斥类型的锁。 下面时分布…

Tensorflow 入门基础——向LLM靠近一小步

进入tensflow的系统学习&#xff0c;向LLM靠拢。 目录 1. tensflow的数据类型1.1 数值类型1.2 字符串类型1.3 布尔类型的数据 2. 数值精度3. 类型转换3.1 待优化的张量 4 创建张量4.1 从数组、列表对象创建4.2 创建全0或者1张量4.3 创建自定义数值张量 5. 创建已知分布的张量&…

luceda ipkiss教程 56:画多端口螺旋线

案例分享&#xff1a;画多端口螺旋线 注&#xff1a;spiral的长度不是真实长度&#xff0c;具体可以参考教程28 代码如下&#xff1a; from si_fab import all as pdk import ipkiss3.all as i3 import numpy as np from scipy.constants import piclass SpiralCircular(i3.P…

linux perf工具使用

参考文章Linux性能调优之perf使用方法_perf交叉编译-CSDN博客 perf是一款Linux性能分析工具。比如打流性能优化的时候&#xff0c;就能够看到是哪些函数消耗的cpu高 那么linux如何编译perf工具呢&#xff1f; perf工具编译 进入perf目录下linux-3.16/tools/perf make ARCH…

HarmonyOS 应用开发入门

HarmonyOS 应用开发入门 前言 DevEco Studio Release版本为&#xff1a;DevEco Studio 3.1.1。 Compile SDK Release版本为&#xff1a;3.1.0&#xff08;API 9&#xff09;。 构建方式为 HVigor&#xff0c;而非 Gradle。 最新版本已不再支持 &#xff08;”Java、JavaScrip…

React16源码: React中的updateHostRoot的源码实现

HostRoot 的更新 1 &#xff09;概述 HostRoot 是一个比较特殊的节点, 因为在一个react应用当中它只会有一个 HostRoot, 它对应的 Fiber 对象是我们的 RootFiber 对象重点在于它的更新过程 2 &#xff09;源码 定位到 packages/react-reconciler/src/ReactFiberBeginWork.js…

【Qt】信号和槽

需要云服务器等云产品来学习Linux的同学可以移步/-->腾讯云<--/-->阿里云<--/-->华为云<--/官网&#xff0c;轻量型云服务器低至112元/年&#xff0c;新用户首次下单享超低折扣。 目录 一、Qt中的信号和槽 1、信号 2、槽 3、Q_OBJECT 二、Qt中的connect函…

Windows下 VS2022 编译OpenSSL 库

SSL是Secure Sockets Layer(安全套接层协议)的缩写,可以在Internet上提供秘密性传输。Netscape公司在推出第一个Web浏览器的同时,提出了SSL协议标准。其目标是保证两个应用间通信的保密性和可靠性,可在服务器端和用户端同时实现支持。已经成为Internet上保密通讯的工业标准…

k3s x GitLab Runner Operator,GitLab CI 云原生构建新体验

GitLab CI 是非常常用的一款 CI/CD 工具&#xff0c;只需要在 .gitlab-ci.yml 文件中用 YAML 语法编写 CI/CD 流水线即可。而 GitLab CI 能够运行的关键组件是 GitLab Runner。GitLab Runner 是一个轻量级、高扩展的代理&#xff0c;主要用来执行 GitLab CI/CD 流水线中的 Job&…

stm32 FOC系列 直流有刷控制原理

1、直流有刷驱动板 使用三极管搭建的简易 H 桥电路&#xff0c;如图 5.3.1 所示&#xff1a; 图 5.3.1 是使用三极管搭建的简易 H 桥电路&#xff0c;其中 MOTOR 表示直流有刷电机&#xff0c; Q1、 Q2、 Q3 和 Q4 为 4 个三极管&#xff0c;其中 Q1 和 Q3 接在了电源正极&…

[AutoSar]BSW_OS 08 Autosar OS_内存保护

一、 目录 一、关键词平台说明一、内存保护的概念 关键词 嵌入式、C语言、autosar、OS、BSW 平台说明 项目ValueOSautosar OSautosar厂商vector &#xff0c;芯片厂商TI 英飞凌编程语言C&#xff0c;C编译器HighTec (GCC) >>>>>回到总目录<<<<&l…

matlab appdesigner系列-常用13-标签

标签&#xff0c;用来显示各类文本 此示例&#xff0c;就是在标签之外的画布上单击鼠标左键&#xff0c;显示王勃的《滕王阁诗》 操作如下&#xff1a; 1&#xff09;将2个标签拖拽到画布上&#xff0c;并修改相应文字。将第二个标签的右侧文本信息中的Wordwrap打开&#xf…

【C++】文件操作

文件操作 一、文本文件&#xff08;一&#xff09;写文件读文件 二、二进制文件&#xff08;一&#xff09;写文件&#xff08;二&#xff09;读文件 程序运行时产生的数据都属于临时数据&#xff0c;程序一旦运行结束都会被释放&#xff0c;通过文件可以将数据持久化&#xff…