提升软件测试报告的质量:Allure2中添加用例失败截图、日志、HTML块和视频的方法

Allure2的用途

Allure2是一个用于生成测试报告的框架,广泛应用于自动化测试和手动测试中。它支持多种测试框架,如JUnit、TestNG、MSTest等,通过生动的图表和详细的日志,使得非技术人员也能轻松地理解测试结果。许多团队选用Allure2,因为它不仅提高了可读性,还提升了整个测试过程的透明度。

为什么要添加失败截图、用例日志、HTML块和视频?

这些附加数据能解决许多问题。以下是一些原因:

  • 快速定位问题:失败截图可以帮助开发者立即看到问题发生时的状态,从而快速定位错误。
  • 详尽的上下文信息:通过用例日志,可以了解测试步骤的详细信息,帮助分析问题的根本原因。
  • 灵活性和自定义:HTML块允许开发者在报告中嵌入重要信息或文档,使得报告更具交互性。
  • 视频记录:通过视频回放可以清晰了解整个测试过程,进一步追溯问题。

如何在Allure2中添加这些功能?

下面我们将详细介绍如何在Allure2报告中添加失败截图、用例日志、HTML块和视频。我们将使用Java驱动的JUnit测试和TestNG作为示例,但步骤对于其他语言和框架也是类似的。

示例1:添加失败截图

在Java的JUnit框架中,你可以使用以下步骤来添加失败截图:

1、创建截图方法
首先,创建一个方法以捕获并保存测试失败时的屏幕截图。

public static String takeScreenshot(ITestResult result) {
    TakesScreenshot ts = (TakesScreenshot) driver;
    File srcFile = ts.getScreenshotAs(OutputType.FILE);
    String destFilePath = "path_to_screenshots/" + result.getName() + ".png";
    File destFile = new File(destFilePath);
    try {
        FileUtils.copyFile(srcFile, destFile);
    } catch (IOException e) {
        e.printStackTrace();
    }
    return destFilePath;
}

2、在测试方法中调用截图方法
在相应的测试方法中调用这个方法,并将返回的路径保存到Allure报告中。

@Test
public void testExample() {
    try {
        // 测试逻辑
    } catch (Exception e) {
        Allure.addAttachment("Failure Screenshot", "image/png", new FileInputStream(takeScreenshot(ITestResult.FAILURE)), ".png");
        throw e;
    }
}

示例2:添加用例日志

用例日志可以帮助开发者了解测试执行的详细过程。下面是如何添加日志的步骤:

1、创建日志记录器
使用Log4j或其他日志框架创建日志记录器。

Logger logger = LogManager.getLogger(MyTestClass.class);

2、在测试执行过程中记录日志
在测试中添加日志记录,确保在失败的情况下记录相关信息。

@Test
public void testLogging() {
    logger.info("测试开始");
    try {
        // 测试逻辑
        logger.info("执行中...");
    } catch (Exception e) {
        logger.error("测试失败: " + e.getMessage());
        Allure.addAttachment("用例日志", "text/plain", new ByteArrayInputStream(logger.toString().getBytes()), ".log");
        throw e;
    }
}

示例3:添加HTML块

想让你的报告更丰富,HTML块是不错的选择。

1、构建HTML内容
准备好你想要展示的HTML内容。

String htmlContent = "<div><h2>测试说明</h2><p>这是一个用例的详细说明。</p></div>";

2、在测试中添加HTML
将这个HTML内容添加到Allure报告中。

Allure.addAttachment("测试说明", "text/html", new ByteArrayInputStream(htmlContent.getBytes()), ".html");

示例4:添加视频记录

全自动化测试时,记录下整个测试过程有助于后续的分析。

  1. 使用测试框架的录屏功能
    选用能记录视频的框架,或者使用对应的录屏软件。
  2. 在测试完成时添加视频
    完成测试后,将视频上传到Allure报告中。
Allure.addAttachment("测试视频", "video/mp4", new FileInputStream("path_to_video/video.mp4"), ".mp4");

Allure2的亮点与好处

Allure2各种功能的结合使得它不只是一款简单的报告生成工具。使用Allure2能够为团队带来巨大的好处,包括:

  • 提升工作效率:通过清晰的报告,团队可以更快地解决问题,减少测试反馈时间。
  • 增加透明度:让团队中的每一个成员都能理解当前的进展和挑战,促进更好的沟通。
  • 便于追溯和审计:详尽的日志和截图可以作为后续讨论和改进的依据,提高产品质量。
  • 增强产品可靠性:通过系统化地记录测试过程和结果,可以不断优化测试用例,提升产品的可靠性。

薪资待遇对比

在软件测试领域,掌握Allure2的技能往往能显著提升我们的薪资水平。根据最近的市场调查,掌握这一工具的测试开发工程师与不熟悉此工具的工程师的薪资差异巨大。

职位薪资(人民币)
渗透测试工程师15K-30K
测试开发工程师(熟悉Allure2)20K-40K
测试工程师(不熟悉Allure2)12K-25K
自动化测试工程师(熟悉Allure2)25K-50K

如上表所示,熟悉Allure2的职位薪资普遍高于其他职位。掌握此工具不仅仅是提升了个人技能,更是为今后的职业发展开辟了广阔的道路。

Allure2对软件测试职业的影响与前景

掌握Allure2为测试工程师提供了许多职业发展的优势。在当今技术快速发展的背景下,以下是使用Allure2对职业发展的潜在影响:

  • 技能稀缺性:具备Allure2技能的测试工程师相较其他技术人员更具竞争力,能够吸引更多企业的青睐。
  • 项目机会增加:各大企业在进行软件测试时,越来越注重测试报告的信息和可视化,熟练掌握Allure2将为工程师提供更多项目机会。
  • 跨领域发展:测试和开发之间的界限逐渐模糊,掌握Allure2为测试开发提供了更加灵活的工作空间,有助于测试团队与开发团队更好的协作。

常见问题解答

Q1:Allure2支持哪个测试框架?
A1:Allure2支持多种测试框架,包括JUnit、TestNG、MSTest、Cypress等。

Q2:失败截图支持哪些格式?
A2:失败截图一般支持PNG和JPG格式。

Q3:如何配置Allure2以生成报告?
A3:您需在项目中添加Allure2依赖,并在完成测试后使用Allure CLI生成报告。

Q4:Allure2是否支持实时图表和图形?
A4:是的,Allure2可以生成丰富的图表和图形,直观展示测试结果。

送您一份软件测试学习资料大礼包

推荐阅读

软件测试学习笔记丨Pytest配置文件
测试开发实战 | Docker+Jmeter+InfluxDB+Grafana 搭建性能监控平台
技术分享 | app自动化测试(Android)–元素定位方式与隐式等待
软件测试学习笔记丨Mitmproxy使用
软件测试学习笔记丨Chrome开发者模式
软件测试学习笔记丨Docker 安装、管理、搭建服务
软件测试学习笔记丨Postman基础使用
人工智能 | 阿里通义千问大模型
软件测试学习笔记丨接口测试与接口协议
软件测试学习笔记丨Pytest的使用

推荐学习

【霍格沃兹测试开发】7天软件测试快速入门带你从零基础/转行/小白/就业/测试用例设计实战

【霍格沃兹测试开发】最新版!Web 自动化测试从入门到精通/ 电子商务产品实战/Selenium (上集)

【霍格沃兹测试开发】最新版!Web 自动化测试从入门到精通/ 电子商务产品实战/Selenium (下集)

【霍格沃兹测试开发】明星讲师精心打造最新Python 教程软件测试开发从业者必学(上集)

【霍格沃兹测试开发】明星讲师精心打造最新Python 教程软件测试开发从业者必学(下集)

【霍格沃兹测试开发】精品课合集/ 自动化测试/ 性能测试/ 精准测试/ 测试左移/ 测试右移/ 人工智能测试

【霍格沃兹测试开发】腾讯/ 百度/ 阿里/ 字节测试专家技术沙龙分享合集/ 精准化测试/ 流量回放/Diff

【霍格沃兹测试开发】Pytest 用例结构/ 编写规范 / 免费分享

【霍格沃兹测试开发】JMeter 实时性能监控平台/ 数据分析展示系统Grafana/Docker 安装

【霍格沃兹测试开发】接口自动化测试的场景有哪些?为什么要做接口自动化测试?如何一键生成测试报告?

【霍格沃兹测试开发】面试技巧指导/ 测试开发能力评级/1V1 模拟面试实战/ 冲刺年薪百万!

【霍格沃兹测试开发】腾讯软件测试能力评级标准/ 要评级表格的联系我

【霍格沃兹测试开发】Pytest 与Allure2 一键生成测试报告/ 测试用例断言/ 数据驱动/ 参数化

【霍格沃兹测试开发】App 功能测试实战快速入门/adb 常用命令/adb 压力测试

【霍格沃兹测试开发】阿里/ 百度/ 腾讯/ 滴滴/ 字节/ 一线大厂面试真题讲解,卷完拿高薪Offer !

【霍格沃兹测试开发】App自动化测试零基础快速入门/Appium/自动化用例录制/参数配置

【霍格沃兹测试开发】如何用Postman 做接口测试,从入门到实战/ 接口抓包(最新最全教程)

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Redis五大基本类型——Zset有序集合命令详解(命令用法详解+思维导图详解)

目录 一、Zset有序集合类型介绍 二、常见命令 1、ZADD 2、ZCARD 3、ZCOUNT 4、ZRANGE 5、ZREVRANGE 6、ZRANGEBYSCORE 7、ZREVRANGEBYSCORE 8、ZPOPMAX 9、ZPOPMIN 10、ZRANK 11、ZREVRANK 12、ZSCORE 13、ZREM 14、ZREMRANGEBYRANK 15、ZREMRANGEBYSCORE 16…

ARM架构 AArch64 基础知识介绍

介绍 aarch64是 ARM 架构的 64 位版本&#xff0c;它是 ARMv8 架构的一部分&#xff0c;被设计用来提供更高的性能和更大的地址空间&#xff0c;同时保持与 32 位 ARM 架构的兼容性。AArch64 是 ARMv8 的 64 位指令集架构&#xff08;ISA&#xff09;&#xff0c;它提供了丰富的…

Rust中Tracing 应用指南

欢迎来到这篇全面的Rust跟踪入门指南。Rust 的tracing是一个用于应用程序级别的诊断和调试的库。它提供了一种结构化的、异步感知的方式来记录日志和跟踪事件。与传统的日志记录相比&#xff0c;tracing能够更好地处理复杂的异步系统和分布式系统中的事件跟踪&#xff0c;帮助开…

极狐GitLab 17.6 正式发布几十项与 DevSecOps 相关的功能【三】

GitLab 是一个全球知名的一体化 DevOps 平台&#xff0c;很多人都通过私有化部署 GitLab 来进行源代码托管。极狐GitLab 是 GitLab 在中国的发行版&#xff0c;专门为中国程序员服务。可以一键式部署极狐GitLab。 学习极狐GitLab 的相关资料&#xff1a; 极狐GitLab 官网极狐…

WinFrom调用webapi接口另一个方法及其应用实例

1.调用接口方法 代码如下&#xff1a; public class WebAPI{#region WebAPI调用 public async Task<string> Call_Webapi(string Url, string Json) //url传入的是接口名称&#xff0c;json传入的是接口参数{string responseBody string.Empty; //responseBod…

elasticsearch的索引模版使用方法

5 索引模版⭐️⭐️⭐️⭐️⭐️ 索引模板就是创建索引时要遵循的模板规则索引模板仅对新创建的索引有效&#xff0c;已经创建的索引并不受索引模板的影响 5.1 索引模版的基本使用 1.查看所有的索引模板 GET 10.0.0.91:9200/_index_template2.创建自定义索引模板 xixi &…

从零开始学GeoServer源码(二)添加支持arcgis切片功能

文章目录 参考文章环境背景1、配置打包好的程序1.1、下载GeoServer的war包1.2、下载GeoWebCache1.3、拷贝jar包1.4、修改配置文件1.4.1、拷贝geowebcache-arcgiscache-context.xml1.4.2、修改geowebcache-core-context.xml1.4.3、修改geowebcache-servlet.xml 1.5、配置切片信息…

Redis 可观测最佳实践

Redis 介绍 Redis 是一个开源的高性能键值对&#xff08;key-value&#xff09;数据库。它通常用作数据库、缓存和消息代理。Redis 支持多种类型的数据结构&#xff0c;Redis 通常用于需要快速访问的场景&#xff0c;如会话缓存、全页缓存、排行榜、实时分析等。由于其高性能和…

HarmonyOs鸿蒙开发实战(21)=>组件间通信@ohos/liveeventbus

1.简介 LiveEventBus是一款消息总线&#xff0c;具有生命周期感知能力&#xff0c;支持Sticky&#xff0c;支持跨进程&#xff0c;支持跨APP发送消息。 2.下载安装 ohpm install ohos/liveeventbus 3.订阅&#xff0c;注册监听 4.发送事件 5. 完成 > 记得关注博主&#xff…

深度学习使用LSTM实现时间序列预测

大家好&#xff0c;LSTM是一种特殊的循环神经网络&#xff08;RNN&#xff09;架构&#xff0c;它被设计用来解决传统RNN在处理长序列数据时的梯度消失和梯度爆炸问题&#xff0c;特别是在时间序列预测、自然语言处理和语音识别等领域中表现出色。LSTM的核心在于其独特的门控机…

用Tauri框架构建跨平台桌面应用:1、Tauri快速开始

Tauri 是一个构建适用于所有主流桌面和移动平台的轻快二进制文件的框架。开发者们可以集成任何用于创建用户界面的可以被编译成 HTML、JavaScript 和 CSS 的前端框架&#xff0c;同时可以在必要时使用 Rust、Swift 和 Kotlin 等语言编写后端逻辑。 Tauri 是什么&#xff1f; |…

Elasticsearch对于大数据量(上亿量级)的聚合如何实现?

大家好&#xff0c;我是锋哥。今天分享关于【Elasticsearch对于大数据量&#xff08;上亿量级&#xff09;的聚合如何实现&#xff1f;】面试题。希望对大家有帮助&#xff1b; Elasticsearch对于大数据量&#xff08;上亿量级&#xff09;的聚合如何实现&#xff1f; 1000道 …

C语言:C语言实现对MySQL数据库表增删改查功能

基础DOME可以用于学习借鉴&#xff1b; 具体代码 #include <stdio.h> #include <mysql.h> // mysql 文件&#xff0c;如果配置ok就可以直接包含这个文件//宏定义 连接MySQL必要参数 #define SERVER "localhost" //或 127.0.0.1 #define USER "roo…

Learn Git Branching 学习笔记

网址&#xff1a;Learn Git Branching 一、基础篇 1.1 git commit 1.1.1 示例&#xff08;git commit&#xff09; git commit 1.1.2 题目&#xff08;两次提交记录&#xff09; git commit git commit 前 后 1.2 git branch 1.2.1 示例&#xff08;git branch <>、git …

设计模式:责任链实现数据流风格的数据处理

数据流风格 数据流风格是软件架构中的一种风格&#xff0c;主要是面向数据&#xff0c;用于进行流式的数据处理&#xff1b;数据流风格的代表有管道-过滤器风格和批处理序列风格&#xff0c;这里主要是指管道-过滤器风格。 管道-过滤器风格就像其名字一样&#xff0c;是以一个…

BERT简单理解;双向编码器优势

目录 BERT简单理解 一、BERT模型简单理解 二、BERT模型使用举例 三、BERT模型的优势 双向编码器优势 BERT简单理解 (Bidirectional Encoder Representations from Transformers)模型是一种预训练的自然语言处理(NLP)模型,由Google于2018年推出。以下是对BERT模型的简…

摄像头原始数据读取——V4L2(mmap模式,V4L2_MEMORY_MMAP)

摄像头原始数据读取——V4L2(mmap模式,V4L2_MEMORY_MMAP) 内存映射模式&#xff0c;是将设备在内核态申请的用于存储视频数据的物理内存映射到用户空间&#xff0c;使得用户应用程序可以直接访问和操作设备数据物理内存&#xff0c;避免了数据的拷贝。因此采集速度较快&#x…

SpringCloud框架学习(第五部分:SpringCloud Alibaba入门和 nacos)

目录 十二、SpringCloud Alibaba入门简介 1. 基本介绍 2.作用 3.版本选型 十三、 SpringCloud Alibaba Nacos服务注册和配置中心 1.简介 2.各种注册中心比较 3.下载安装 4.Nacos Discovery服务注册中心 &#xff08;1&#xff09; 基于 Nacos 的服务提供者 &#xf…

Ubuntu下用Docker部署群晖系统---Virtual DSM --zerotier实现连接

Ubuntu下用Docker部署群晖系统—Virtual DSM --zerotier实现连接 1. Docker 安装 安装最新docker curl -fsSL get.docker.com -o get-docker.sh sudo sh get-docker.sh sudo docker run hello-world2.docker-compose 安装 sudo pip install docker-compose测试安装是否成功…

【排版教程】Word、WPS 分节符(奇数页等) 自动变成 分节符(下一页) 解决办法

毕业设计排版时&#xff0c;一般要求每章节的起始页为奇数页&#xff0c;空白页不显示页眉和页脚。具体做法如下&#xff1a; 1 Word 在一个章节的内容完成后&#xff0c;在【布局】中&#xff0c;点击【分隔符】&#xff0c;然后选择【奇数页】 这样在下一章节开始的时&…