文章目录
- [1. Allure 介绍](#1. Allure 介绍)
-
- [1.1 Allure特点:](#1.1 Allure特点:)
- [2. Allure 安装](#2. Allure 安装)
-
- [2.1 安装Java环境](#2.1 安装Java环境)
- [2.2 下载Allure](#2.2 下载Allure)
- [3. Allure插件安装](#3. Allure插件安装)
-
- [3.1 验证Allure安装](#3.1 验证Allure安装)
- [3.2 测试报告生成的流程](#3.2 测试报告生成的流程)
- 总结
✨✨✨学习的道路很枯燥,希望我们能并肩走下来!
编程真是一件很奇妙的东西。你只是浅尝辄止,那么只会觉得枯燥乏味,像对待任务似的应付它。但你如果深入探索,就会发现其中的奇妙,了解许多所不知道的原理。知识的力量让你沉醉,甘愿深陷其中并发现宝藏。

本文开始
1. Allure 介绍
Allure 是一款灵活的测试报告工具,用 Java 语言开发。它可以生成详尽的测试报告,包括测试类别、步骤、日志、图片等,并生成高水准的统计报告。
Allure2官网:https://github.com/allure-framework/allure2
1.1 Allure特点:
Allure 是由 Java 语⾔开发的⼀个轻量级,灵活的测试报告⼯具。
Allure 多平台的 Report 框架。
Allure ⽀持多语⾔,包括 python、JaveScript、PHP、Ruby 等。
可以为开发/测试/管理等人员提供详尽的的测试报告,包括测试类别、测试步骤、日志、图片、视频等。
可以为管理层提供高水准的统计报告。
可以集成到 Jenkins 生成在线的趋势汇总报告。
2. Allure 安装
2.1 安装Java环境
根据自己电脑系统安装Java/python环境
2.2 下载Allure
github下载:https://github.com/allure-framework/allure2/releases
国内下载路径:https://repo1.maven.org/maven2/io/qameta/allure/allure-commandline/
mac/linux: 下载 tar
windows: 下载 zip
配置环境变量:解压后将 bin 目录加入 PATH 环境变量
bash
# 安装验证
allure --version
3. Allure插件安装
python:
bash
# 项目环境安装
pip install allure-pytest
java: pom依赖导入(maven)
xml
<properties>
<maven.compiler.encoding>UTF-8</maven.compiler.encoding>
<maven.compiler.version>3.10.1</maven.compiler.version>
<maven-surefire-plugin.version>3.0.0-M5</maven-surefire-plugin.version>
<maven.compiler.source>11</maven.compiler.source>
<maven.compiler.target>11</maven.compiler.target>
<!-- 对应junit Jupiter的版本号;放在这里就不需要在每个依赖里面写版本号,导致对应版本号会冲突 -->
<junit.jupiter.version>5.9.2</junit.jupiter.version>
<!-- log日志 -->
<slf4j.version>2.0.6</slf4j.version>
<logback.version>1.4.5</logback.version>
<!-- yaml对应解析 -->
<jackson.version>2.14.2</jackson.version>
<!-- hamcrest断言 -->
<hamcrest.version>2.2</hamcrest.version>
<!-- allure报告 -->
<allure.version>2.21.0</allure.version>
<allure.maven.version>2.12.0</allure.maven.version>
<aspectj.version>1.9.19</aspectj.version>
<allure.cmd.download.url>
https://repo.maven.apache.org/maven2/io/qameta/allure/allure-commandline
</allure.cmd.download.url>
</properties>
<!-- 物料清单 (BOM)-->
<dependencyManagement>
<dependencies>
<!--当使用 Gradle 或 Maven 引用多个 JUnit 工件时,此物料清单 POM 可用于简化依赖项管理。不再需要在添加依赖时设置版本-->
<dependency>
<groupId>org.junit</groupId>
<artifactId>junit-bom</artifactId>
<version>${junit.jupiter.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies>
<!-- junit5 -->
<!-- 创建 Junit5 测试用例的 API-->
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter</artifactId>
<!--对应添加的依赖的作用范围-->
<scope>test</scope>
</dependency>
<!-- 兼容 JUnit4 版本的测试用例-->
<dependency>
<groupId>org.junit.vintage</groupId>
<artifactId>junit-vintage-engine</artifactId>
<scope>test</scope>
</dependency>
<!--suite套件依赖 -->
<dependency>
<groupId>org.junit.platform</groupId>
<artifactId>junit-platform-suite</artifactId>
<scope>test</scope>
</dependency>
<!-- log日志 -->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>${slf4j.version}</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>${logback.version}</version>
<scope>compile</scope>
</dependency>
<!-- allure报告-->
<dependency>
<groupId>io.qameta.allure</groupId>
<artifactId>allure-junit5</artifactId>
<version>${allure.version}</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.aspectj/aspectjweaver -->
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjweaver</artifactId>
<version>${aspectj.version}</version>
</dependency>
<!-- yaml文件解析-->
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>${jackson.version}</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.dataformat</groupId>
<artifactId>jackson-dataformat-yaml</artifactId>
<version>${jackson.version}</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>${maven.compiler.version}</version>
<configuration>
<source>11</source>
<target>11</target>
<!-- 设置编码为 UTF-8 -->
<encoding>${maven.compiler.encoding}</encoding>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>${maven-surefire-plugin.version}</version>
<configuration>
<argLine>
-javaagent:"${settings.localRepository}/org/aspectj/aspectjweaver/${aspectj.version}/aspectjweaver-${aspectj.version}.jar"
</argLine>
<includes>
<!-- <include>**/*Test</include>-->
<!-- <include>**/Test*</include>-->
</includes>
<systemProperties>
<property>
<!-- 配置Allure结果存储路径-->
<name>allure.results.directory</name>
<value>${project.build.directory}/allure-results</value>
</property>
</systemProperties>
</configuration>
<dependencies>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-engine</artifactId>
<version>${junit.jupiter.version}</version>
</dependency>
<dependency>
<groupId>org.junit.vintage</groupId>
<artifactId>junit-vintage-engine</artifactId>
<version>${junit.jupiter.version}</version>
</dependency>
</dependencies>
</plugin>
<plugin>
<!-- Allure报表依赖-->
<groupId>io.qameta.allure</groupId>
<artifactId>allure-maven</artifactId>
<version>${allure.maven.version}</version>
<configuration>
<reportVersion>${allure.version}</reportVersion>
<allureDownloadUrl>${allure.cmd.download.url}/${allure.version}/allure-commandline-${allure.version}.zip</allureDownloadUrl>
</configuration>
</plugin>
</plugins>
</build>
</project>
3.1 验证Allure安装
在当前项目下载allure相关的jar包,在项目下生成一个.allure的文件夹
bash
mvn clean allure:report
执行测试用例
bash
# 运行所有测试用例,生成原始数据到 target/allure-results
mvn clean test
在项目target/allure-results路径下,生成测试结果报告
bash
mvn allure:report
【注】如果用IDEA执行测试用例,则结果是在项目的allure-results目录路径下生成中间结果json文件
查看allure渲染报告,自动打开浏览器查看
bash
mvn allure:serve
【注】运行mvn命令没有在target下面生成allure-results目录,需要在src/test/resources路径下配置allure配置文件allure.properties,指名allure报告生成路径。
bash
# 静态资源文件中,配置allure报告生成路径
allure.results.directory=target/allure-results
3.2 测试报告生成的流程
- 通过测试框架Junit,Pytest运行测试用例,生成包含测试数据的"中间"测试结果(JSON,Text格式)。
- 通过命令解析中间结果,生成在线版本或静态资源报告。
执行allure serve命令:生成在线报告
执行allure generate命令:生成静态报告
allure命令生成在线报告
- 执行测试用例
bash
mvn clean test
- 查看在线报告,会直接打开默认浏览器展示当前报告(读取的是 IDEA 直接运行测试 生成的结果)
bash
allure serve ./allure-results
- 打开的是执行mvn clean test命令的测试结果报告
bash
# 读取的是Maven命令行 (mvn clean test) 运行测试 生成的结果。
allure serve target/allure-results
【注】./allure-results 是 IDEA 默认输出路径,target/allure-results 是 Maven 默认输出路径。
对应了两种不同的测试执行方式
在 pom.xml 中统一配置 Allure 结果输出路径到 target/allure-results
xml
<plugin>
<groupId>io.qameta.allure</groupId>
<artifactId>allure-maven</artifactId>
<version>2.12.0</version>
<configuration>
<!-- 显式指定结果目录为 target/allure-results -->
<resultsDirectory>${project.build.directory}/allure-results</resultsDirectory>
</configuration>
</plugin>
生成静态文件报告
- 生成带有index.html 的结果报告
bash
allure generate ./target/allure-results
# 项目下会自动生成一个allure-report目录
【注】allure generate 可以指定输出路径,也可以清理上次的报告记录。
bash
# 生成报告,指定输出路径,清理报告
allure generate ./result -o ./report --clean
# -o / --output 输出报告的路径。
# -c / --clean 如果报告路径重复。
- 打开报告
bash
# 打开报告
allure open ./allure-report
# 打开报告,指定IP地址和端口
allure open -h 127.0.0.1 -p 8088 ./report/
# -h / --host 主机 IP 地址,此主机将用于启动报表的 web 服务器。
# -p / --port 主机端口,端口将用于启动报表的 web 服务器,默认值:0。
总结
✨✨✨各位读友,本篇分享到内容是否更好的帮助你理解,如果对你有帮助给个👍赞鼓励一下吧!!
🎉🎉🎉世上没有绝望的处境,只有对处境绝望的人。
🎉🎉🎉一遇挫折就灰心丧气的人,永远是个失败者。而一向努力奋斗,坚韧不拔的人会走向成功。
感谢每一位一起走到这的伙伴,我们可以一起交流进步!!!一起加油吧!!!
