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

Java中第三方报告库-Allure

Allure简介

Allure是一个轻量级、灵活的测试报告框架,最初由Yandex团队开发,现在已成为开源项目。它不仅支持Java,还支持其他主流编程语言如Python、Ruby、JavaScript等。Allure报告以其美观的界面和强大的分析功能著称,能够清晰地展示测试执行情况、失败原因和测试覆盖率。

核心特性

  1. 丰富的可视化报告:提供多维度图表展示测试结果,包括:

    • 测试执行趋势图
    • 测试用例通过率饼图
    • 测试执行时间分布图
    • 测试类别分布图
  2. 强大的历史对比:可以保存历史测试数据,进行多版本结果对比分析

  3. 灵活的附件支持:可以附加截图、日志、视频等任何有助于分析测试结果的附件

  4. 多环境支持:能够区分不同环境(DEV、TEST、PROD)下的测试结果

  5. BDD支持:天然支持行为驱动开发(BDD)风格的测试报告

集成方式

1.Allure依赖配置

<dependencies><dependency><groupId>io.qameta.allure</groupId><artifactId>allure-junit5</artifactId><version>2.13.8</version><scope>test</scope></dependency>
</dependencies>

详情见:Maven通过修改pom.xml配置文件下载指定依赖包,以及解决MVNRepository网站加载和验证问题的方法

2.编码设置,避免乱码

在Maven项目的pom.xml中配置编码设置,避免报告中文显示乱码:

<properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
</properties>

引入Maven Surefire插件

配置Maven Surefire插件以生成Allure报表:

<build><plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-surefire-plugin</artifactId><version>2.22.2</version><configuration><argLine>-javaagent:"${settings.localRepository}/org/aspectj/aspectjweaver/${aspectj.version}/aspectjweaver-${aspectj.version}.jar"</argLine><systemProperties><property><name>allure.results.directory</name><value>${project.build.directory}/allure-results</value></property></systemProperties></configuration><dependencies><dependency><groupId>org.aspectj</groupId><artifactId>aspectjweaver</artifactId><version>${aspectj.version}</version></dependency></dependencies></plugin></plugins>
</build>

基本使用

注解说明

  1. @Epic:定义大型业务功能模块
  2. @Feature:定义功能点
  3. @Story:定义用户故事
  4. @Description:添加测试描述
  5. @Step:标记测试步骤
  6. @Attachment:添加附件
  7. @Severity:定义测试严重级别
  8. @Link:添加相关链接
  9. @Issue和**@TmsLink**:关联问题管理系统

示例代码

import io.qameta.allure.*;@Epic("用户管理")
@Feature("用户注册")
public class UserRegistrationTest {@Test@Story("用户成功注册")@Description("验证新用户能够成功完成注册流程")@Severity(SeverityLevel.BLOCKER)public void testUserRegistration() {registerNewUser();verifyUserRegistered();}@Step("注册新用户")private void registerNewUser() {// 实现注册逻辑}@Step("验证用户已注册")private void verifyUserRegistered() {// 实现验证逻辑}@Attachment(value = "注册失败截图", type = "image/png")public byte[] saveScreenshot(byte[] screenShot) {return screenShot;}
}

报告生成

  1. 执行测试并生成原始数据:

    mvn clean test//清除执行历史并执行
    
  2. 使用Maven命令生成Allure报告:

    mvn io.qameta.allure:allure-maven:serve
    

最佳实践

  1. 合理使用注解层次

    • Epic → Feature → Story → Test
    • 保持层次结构清晰,便于报告分析
  2. 步骤分解

    • 将复杂测试分解为多个@Step方法
    • 每个步骤保持单一职责
  3. 失败分析

    • 为失败用例添加必要的附件(截图、日志等)
    • 使用@Attachment注解附加额外信息
  4. 环境信息

    • 通过allure-environment.properties文件添加环境信息
    browser=Chrome 89
    os=Windows 10
    environment=QA
    
  5. 历史记录

    • 配置allure-results目录不被清理
    • 保留历史数据用于趋势分析

常见问题解决

  1. 报告中文乱码

    • 确保IDE和Maven都使用UTF-8编码
    • 检查系统默认编码设置
  2. Allure报告未生成

    • 确认aspectjweaver依赖正确配置
    • 检查surefire插件版本兼容性
  3. 步骤未显示在报告中

    • 确保@Step注解的方法被测试方法直接或间接调用
    • 检查方法访问修饰符(private方法需要@Step)
  4. Jenkins集成问题

    • 安装Allure Jenkins插件
    • 配置Jenkins全局工具中的Allure命令行工具路径
    • 在Post-build Actions中添加Allure Report
  5. 测试并行执行

    • 为每个线程配置独立的结果目录
    • 使用Allure特性聚合多线程结果
http://www.dtcms.com/a/469743.html

相关文章:

  • 高端公司网站建设连云港做网站制作
  • Google 智能体设计模式:优先级排序
  • 网站做不做百度云加速手游代理平台哪个好
  • 【国内电子数据取证厂商龙信科技】邮件如何取证?
  • 手机网站模板 psd做网站建设分哪些类型
  • 做网站需要哪些框架网站没备案可以访问吗
  • Git下载和安装教程(附安装包)
  • go的学习2---》并发编程
  • 高端网站建设企业公司网页版qq空间登录入口官网
  • 麒麟系统安装达梦数据库遇到的问题
  • VScode怎么使用Jupyter并且设置内核
  • LwIP UDP RAW
  • VI-SLAM定位方案对比
  • TCP/IP 协议族—理论与实践(一)
  • 手持小风扇MCU方案,智能风扇方案设计开发
  • 网站设计深圳网站建设公司网页设计与制作100例怎么写
  • Linux -- 网络层
  • 建设班级网站 沟通无限网络黄页进入有限公司
  • Labview项目01:标准可配置序列测试框架
  • 拌合楼软件开发(23)监测客户端在线情况并联动企业微信提醒客户端离线和恢复
  • 雄安网建 网站建设莞城微信网站建设
  • 基于Python的交通数据分析应用-hadoop+django
  • [特殊字符] 教程|打造一个 Telegram 币圈波场交易记录检测机器人
  • 高弹性不锈钢材质在技工钳应用中的优势分析
  • 东土科技连投三家核心企业 发力具身机器人领域
  • 建设行政主管部门官方网站张槎建网站服务
  • 【AI4S】利用大语言模型 LLM 进行分子设计
  • 零用贷网站如何做p2p网站建设公司排名
  • 从 Home Assistant 到 JetLinks:构建双层智能家居与社区管理平台实训全景
  • 什么是BUG,你对BUG的了解有多少?