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

Allure2的用途

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

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

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

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

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

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

示例1:添加失败截图

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

1、创建截图方法

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

java 复制代码
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报告中。

java 复制代码
@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或其他日志框架创建日志记录器。

java 复制代码
Logger logger = LogManager.getLogger(MyTestClass.class);

2、在测试执行过程中记录日志

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

java 复制代码
@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内容。

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

2、在测试中添加HTML

将这个HTML内容添加到Allure报告中。

java 复制代码
Allure.addAttachment("测试说明", "text/html", new ByteArrayInputStream(htmlContent.getBytes()), ".html");

示例4:添加视频记录

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

  1. 使用测试框架的录屏功能
    选用能记录视频的框架,或者使用对应的录屏软件。
  2. 在测试完成时添加视频
    完成测试后,将视频上传到Allure报告中。
java 复制代码
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 做接口测试,从入门到实战/ 接口抓包(最新最全教程)

相关推荐
测试19983 小时前
外包干了2年,技术退步明显....
自动化测试·软件测试·python·功能测试·测试工具·面试·职场和发展
互联网杂货铺13 小时前
Postman接口测试:全局变量/接口关联/加密/解密
自动化测试·软件测试·python·测试工具·职场和发展·测试用例·postman
测试杂货铺1 天前
如何用postman做接口自动化测试及完美的可视化报告?
自动化测试·软件测试·测试工具·职场和发展·jenkins·压力测试·postman
爱学测试的李木子1 天前
Python自动化测试的2种思路
开发语言·软件测试·python
测试老哥1 天前
Jmeter测试脚本编写技巧
自动化测试·软件测试·功能测试·测试工具·jmeter·职场和发展·性能测试
爱学测试的李木子1 天前
从0到1搭建 Android 自动化 python+appium 环境
android·软件测试·python·测试工具·自动化
霍格沃兹测试开发学社测试人社区1 天前
软件测试丨性能测试工具-JMeter
软件测试·测试开发·测试工具·jmeter·性能测试
美团测试工程师2 天前
九大高效的前端测试工具与框架
软件测试·测试工具·jmeter
测试者家园2 天前
ChatGPT生成接口文档的方法与实践
软件测试·chatgpt·测试用例·接口测试·接口文档·ai赋能·用chatgpt做软件测试
Heaven6452 天前
6.8 Newman自动化运行Postman测试集
软件测试·自动化·接口测试·postman·newman