当前位置: 首页 > article >正文

提升软件测试报告的质量: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 做接口测试,从入门到实战/ 接口抓包(最新最全教程)


http://www.kler.cn/a/410821.html

相关文章:

  • 从零开始打造个人博客:我的网页设计之旅
  • MySQL原理简介—10.SQL语句和执行计划
  • 非root用户安装CUDA
  • 用 Python 从零开始创建神经网络(十):优化器(Optimizers)(持续更新中...)
  • Spring Boot 实战:基于 Validation 注解实现分层数据校验与校验异常拦截器统一返回处理
  • 在vue中,根据后端接口返回的文件流实现word文件弹窗预览
  • 鸿蒙进阶篇-正则
  • 【linux】服务器加装硬盘后如何将其设置为独立硬盘使用
  • Mamba/PyTorch WSL环境配置
  • SQL进阶:如何跳过多个NULL值取第一个非NULL值?
  • Postgresql 获取字段里的字段内容的长度
  • linux实战-黑链——玄机靶场
  • Linux—进程概念学习-03
  • web 中 canvas 污染 以及解决方案
  • 解锁数据安全的金钥匙:商用密码在现代商业中的应用与挑战
  • 【MySQL实战45讲笔记】基础篇——行锁
  • 人工智能深度学习-Torch框架-数学运算
  • 【Android+多线程】IntentService 知识总结:应用场景 / 使用步骤 / 源码分析
  • 数据结构--创建链表--Python
  • SpringBoot中忽略实体类中的某个属性不返回给前端的方法
  • Maven 依赖管理
  • 使用llama.cpp进行量化和部署
  • 自由学习记录(23)
  • windows 中docker desktop 安装
  • uni-app自定义底部tab并且根据字段显示和隐藏
  • 设计模式——空对象模式