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

Allure + JUnit5

Allure 介绍

什么是 Allure ?

  • Allure 框架是一个灵活的、轻量级的、支持多语言的测试报告工具,它不仅以 Web 的方式展示了简介的测试结果,而且允许参与开发过程的每个人可以从日常执行的测试中,最大限度地提取有用信息。
  • Allure 是由 Java 语言开发的,支持 Pytest,JaveScript、PHP、Ruby 等。
  • 可以集成到 Jenkins。
  • 可以为 dev/qa 提供详尽的的测试报告、测试步骤、log,也可以为管理层提供 high level 统计报告。
    • 从 DEV/QA 的角度来看,Allure 提供了详尽的测试报告,比如简化了常见缺陷的统计;失败的测试可以分为 bug 和被中断的测试;还可以配置日志、步骤、fixture、附件、计时、执行历史;以及与 TMS、BUG 管理系统、Jenkins 集成等。所以,通过以上配置,所有负责的开发人员和测试人员可以尽可能地掌握测试信息。
    • 从管理者的角度来看,Allure 提供了一个清晰的“大图”,即 High Level 的统计报告,其中包括已覆盖的特性、缺陷聚集的位置、执行时间轴的外观以及许多其他方便的事情。Allure 的模块化和可扩展性保证了你总是能够对某些东西进行微调,使得 Allure 更适合你。

Allure 测试报告-官网

首页概览:

image

用例详情页:

image


 

Allure 环境安装

  1. 安装 Java(推荐 1.8 版本),配置 JAVA 环境变量
  2. Allure2 工具下载地址
    • mac/linux: 下载 tar
    • windows: 下载 zip
  3. 解压后将 bin 目录加入 PATH 环境变量
  4. 环境验证:allure --version

Allure 常用命令

命令格式allure [option] [command] [command options]

  • allure --help:帮助
  • allure --version:查看版本信息
  • allure serve <测试结果数据目录>:生成在线版本的测试报告(allure2 ⼯具创建本地 jetty 服务器实例)
  • allure generate <测试结果数据目录,默认为 ./allure-results> -o 报告输出目录 (默认为 ./allure-report)

示例:查看测试报告

  • 方式一:用于在本地渲染后对外展示结果
allure serve ./result/
  • 方式二:用于在本地渲染和查看结果
# 生成报告
allure generate ./result/ -o ./report/ --clean  # 注意:覆盖路径加 --clean# 打开报告
allure open -h 127.0.0.1 -p 8883 ./report/  # 指定固定端口号,不指定则每次随机开启端口号

注意:/report/ 目录中的 index.html 就是最终的结果页面,但直接通过浏览器打开这个文件是看不到实际报告内容的,这是因为实际报告内容需要 allure 进行渲染后才能看到。

Allure 常用注解

  • 官网

  • 源码 example

image

五种用例级别划分:

  • BLOCKER("blocker"):阻塞缺陷(功能未实现,无法下一步)
  • CRITICAL("critical"):严重缺陷(功能点缺失)
  • NORMAL("normal"):一般缺陷(边界情况,格式错误)
  • MINOR("minor"):次要缺陷(界面错误与 UI 需求不符)
  • TRIVIAL("trivial"):轻微缺陷(必须项无提示,或者提示不规范)

Allure + JUnit5 示例

pom.xml 配置

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>org.example</groupId><artifactId>AllureDemo</artifactId><version>1.0-SNAPSHOT</version><dependencies><dependency><groupId>org.junit.jupiter</groupId><artifactId>junit-jupiter</artifactId><version>RELEASE</version><scope>test</scope></dependency><!-- 运行后自动在当前项目目录生成测试结果目录:allure-results --><dependency><groupId>io.qameta.allure</groupId><artifactId>allure-junit5</artifactId><version>2.13.6</version><scope>test</scope></dependency><dependency><groupId>log4j</groupId><artifactId>log4j</artifactId><version>1.2.17</version></dependency><dependency><groupId>org.slf4j</groupId><artifactId>slf4j-simple</artifactId><version>1.7.25</version><scope>compile</scope></dependency></dependencies><properties><maven.compiler.source>8</maven.compiler.source><maven.compiler.target>8</maven.compiler.target><!-- 解决allure测试报告中文乱码问题 --><aspectj.version>1.8.10</aspectj.version><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding></properties><build><plugins><!-- 该插件能够在运行后自动在target目录生成allure测试结果目录 --><plugin><artifactId>maven-surefire-plugin</artifactId><version>3.0.0-M5</version><configuration><includes><!-- 默认测试文件的命名规则:"**/Test*.java""**/*Test.java""**/*Tests.java""**/*TestCase.java"如果现有测试文件不符合以上命名,可以在 pom.xml 添加自定义规则--><include>**/**.java</include></includes><!-- 在target目录下自动生成原生的测试结果目录:/allure-results --><systemProperties><property><name>allure.results.directory</name><value>${project.build.directory}/allure-results</value></property><property><name>allure.link.issue.pattern</name><value>https://example.org/issue/{}</value></property></systemProperties></configuration></plugin></plugins></build></project>

测试代码

import io.qameta.allure.*;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.DisplayName;
import org.junit.jupiter.api.Test;import java.io.FileInputStream;
import java.io.FileNotFoundException;@Feature("功能名称")
public class AllureTestDemo {@Test@Story("子功能1")@Severity(SeverityLevel.BLOCKER)@DisplayName("用例名称:子功能1")@Description("静态用例描述")@Step("静态用例步骤1")@Link(name="静态链接", url="https://www.baidu.com")public void demo1() {Allure.description("动态用例描述");Allure.link("动态链接", "https://www.baidu.com");Allure.step("动态用例步骤1:断言");Assertions.assertTrue(1+1==2);Allure.step("动态用例步骤2:添加附件");// 添加文本展示Allure.addAttachment("My attachment", "My attachment content");// 添加截图展示try {Allure.addAttachment("add picture", "image/png",new FileInputStream("C:\\Users\\juno\\Desktop\\timg.jpg"), ".jpg");} catch (FileNotFoundException e) {e.printStackTrace();}}@Test@Story("子功能2")@DisplayName("用例名称:子功能2")@Severity(SeverityLevel.CRITICAL)public void demo2() {}}

项目目录下运行测试:

// 运行所有用例
mvn clean test
// 运行指定一个文件,或者多个文件,以逗号隔开
mvn clean package -Dtest=<文件名1> test
mvn clean package -Dtest=<文件名1>,<文件名2>,... test

测试结果数据保存目录:target/allure-results/

  • mvn 的 clean 参数能够每次重新生成 target 目录结果。

测试报告展示

生成测试报告:allure serve target/allure-results

image

http://www.lryc.cn/news/591874.html

相关文章:

  • 宝塔申请证书错误,提示 module ‘OpenSSL.crypto‘ has no attribute ‘sign‘
  • 开源鸿蒙5.0北向开发测试:测试鸿蒙显示帧率
  • Jenkins Git Parameter 分支不显示前缀origin/或repo/
  • MySQL安装(yum版)
  • Lotus-基于大模型的查询引擎 -开源学习整理
  • 海思3516CV610 卷绕 研究
  • 用Amazon Q Developer命令行工具(CLI)快捷开发酒店入住应用程序
  • Python编程进阶知识之第二课学习网络爬虫(requests)
  • 菜单权限管理
  • Spring底层原理(一)核心原理
  • 第十八节:第三部分:java高级:反射-获取构造器对象并使用
  • MYOJ_8518:CSP初赛题单3:数制练习专项
  • 【Java】文件编辑器
  • CSP-S模拟赛三(仍然是难度远超CSP-S)
  • 【Linux】LVS(Linux virual server)
  • 网络爬虫的详细知识点
  • Spring 多模块配置国际化,MessageSource只能加载一个文件
  • 栈和队列的题目,咕咕咕
  • Python基础--嵌套循环
  • 尚庭公寓----------分页查询
  • 【人工智能99问】梯度消失、梯度爆炸的定义、后果及规避手段?(7/99)
  • 树莓派Qt 安装
  • 数据结构 栈(1)
  • 常用API
  • 【深度学习新浪潮】AI在finTech领域有哪些值得关注的进展?
  • Redis中什么是看门狗机制
  • Paimon 动态分桶
  • 大型语言模型的白日梦循环
  • 【软件测试】软件测试分类与方法解析:目标到工具
  • LINUX例行性工作(计划任务)实验操作 ---at和crontab以及系统级别的计划任务