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

news/2024/11/23 13:41:48/

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 做接口测试,从入门到实战/ 接口抓包(最新最全教程)


http://www.ppmy.cn/news/1549295.html

相关文章

对 TypeScript 中函数如何更好的理解及使用?与 JavaScript 函数有哪些区别?

TypeScript 中函数的理解 在 TypeScript 中&#xff0c;函数本质上与 JavaScript 中的函数类似&#xff0c;但是它增强了类型系统的支持&#xff0c;使得我们可以对函数的参数和返回值进行更严格的类型检查。这样可以有效减少类型错误&#xff0c;提高代码的可维护性和可读性。…

第十章 JavaScript的应用

10.1 JavaScript概述 10.1.1 JavaScript简介 JavaScript是一种基于对象&#xff08;Object&#xff09;和事件驱动&#xff08;Event Driven&#xff09;并具有安全性能的脚本语言&#xff0c;能够与HTML&#xff08;超文本标记语言&#xff09;、Java语言一起在 Web 页面中与W…

MySQL初学之旅(4)表的设计

目录 1.前言 2.正文 2.1第一范式 2.2第二范式 2.3第三范式 2.4表的设计方法 3.小结 1.前言 哈喽大家好吖&#xff0c;今天继续给大家分享MySQL的学习——表的设计&#xff0c;这一部分没有太多语法的讲解&#xff0c;有许多设计思路以及规则的讲解与剖析&#xff0c;那…

《线性代数的本质》

之前收藏的一门课&#xff0c;刚好期末复习&#xff0c;顺便看一看哈哈 课程链接&#xff1a;【线性代数的本质】合集-转载于3Blue1Brown官方双语】 向量究竟是什么 线性代数中最基础、最根源的组成部分就是向量&#xff0c;需要先明白什么是向量 不同专业对向量的看法 物理专…

百度遭初创企业指控抄袭,维权还是碰瓷?

“ 抄袭指控引发网友热议&#xff0c;有人支持其立场&#xff0c;也有人认为工具类产品在界面设计上相似度高是行业常态。 ” 转载|科技新知 原创 作者丨晓伊 编辑丨蕨影 一年一度的百度世界大会刚刚落幕&#xff0c;一家初创企业却站出来公开指责百度抄袭自家产品&#xff…

【虚幻引擎】UE5数字人开发实战教程

本套课程将会交大家如何去开发属于自己的数字人&#xff0c;包含大模型接入&#xff0c;流式输出&#xff0c;语音识别&#xff0c;语音合成&#xff0c;口型驱动&#xff0c;动画蓝图&#xff0c;语音唤醒等功能。 课程介绍视频如下&#xff1a; 【虚幻引擎】UE5 历时一个多月…

【海思Hi3519DV500】双目网络相机套板硬件规划方案

Hi3519DV500双目网络相机套板是针对该芯片设计的一款 IP 编码板 PCBA&#xff0c;硬件接口支持双目sensor 接入&#xff0c;SDIO3.0 接口、USB2.0、USB3.0、UART 接口以及丰富的 IO 扩展应用&#xff0c;可根据各种使用场景设计相应扩展板&#xff0c;丰富外围接口&#xff0c;…

windows C#-异步编程场景(二)

等待多个任务完成 你可能发现自己处于需要并行检索多个数据部分的情况。 Task API 包含两种方法(即 Task.WhenAll 和 Task.WhenAny)&#xff0c;这些方法允许你编写在多个后台作业中执行非阻止等待的异步代码。 此示例演示如何为一组 User 捕捉 userId 数据。 private stati…