Junit5-测试报告:
- junit5使用allure生成测试报告
Allure:
- 安装 allure并配置环境变量
下载地址:https://repo1.maven.org/maven2/io/qameta/allure/allure-commandline/
下载后解压,将bin目录添加至path环境变量
打开cmd,输入 allure --version能得到安装的版本,就是安装成功 - 搭配maven使用
allure用来生成测试报告,需要搭配maven,如下pom.xml
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>3.0.0-M5</version>
<configuration>
<includes>
<include>**/*Test.java</include>
</includes>
</configuration>
</plugin>
</plugins>
</build>
用例需要使用mvn命令来执行,测试结果将会保存在 target/surefire-reports下
然后需要使用allure命令来生成在线的测试报告:allure serve
- 使用allure来保存测试结果
需要在pom.xml配置
<dependency>
<groupId>io.qameta.allure</groupId>
<artifactId>allure-junit5</artifactId>
<version>2.13.6</version>
<scope>test</scope>
</dependency>
allure 常用命令:
allure --help 帮助
allure --version 查看版本信息
allure serve 生成在线版本的测试
allure generate <allure-result中间文件> -o 输出目录 (默认路径:allure-report)
使用java+maven+allure 生成测试报告,需要使用mvn命令执行测试用例:
执行所有符合条件的测试用例:mvn test
执行某个class文件:mvn test -Dtest=xxxx
配置完xml文件后,使用mvn命令运行程序,保存测试结果至./allure-results/ 文件下,但是使用该文件用来生成测试报告的话,需要注意一个问题,如果要执行新的用例,需要手动删除该文件,否则数据是旧的:
生成测试报告方式一:生成本地报告
使用命令 allure generate -c -o ./allure-report
-c 在生成报告前清空报告内容 默认不清空
-o 生成报告的目录为 allure-report,默认 allure-report ‘
生成测试报告方式二:在线报告
allure serve ./allure-report
以上都会生成一个./allure-report 文件,要使用 allure open /allure-report 来打开测试报告
- 合并测试报告
在日常测试种,大家是执行自己的用例,最终需要汇总大家的结果生成一个总的测试用例
合并测试用例:
方法一:使用 allure generate -c -o ./allure-report1 ./allure-report12 ...的命令
方法二:allure serve ./allure-report1 ./allure-report2
./allure-report1 ./allure-report2 是测试报告路径
发现使用命令生成报告报错
使用allure serve ./allure-report 无法生成在线报告,使用: allure serve target/surefire-reports
可以试试下面:
增加文件 allure.properties文件,内容为:
allure.results.directory=target/allure-results
在项目的pom.xml和src的同级目录 中,创建文件夹:.allure
将下载的allure 放入该文件夹中
或者在pom.xml中配置:(这个容易下载不下来)
<plugin>
<groupId>io.qameta.allure</groupId>
<artifactId>allure-maven</artifactId>
<version>2.10.0</version>
<configuration>
<reportVersion>2.17.2</reportVersion>
<allureDownloadUrl>${allure.cmd.download.url}/2.18.1/allure-commandline-2.18.1.zip</allureDownloadUrl>
</configuration>
</plugin>
总的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>com.zqh</groupId>
<artifactId>Junit5_test</artifactId>
<version>1.0-SNAPSHOT</version>
<properties>
<maven.compiler.source>11</maven.compiler.source>
<maven.compiler.target>11</maven.compiler.target>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.encoding>UTF-8</maven.compiler.encoding>
<!-- 对应junit Jupiter的版本号;放在这里就不需要在每个依赖里面写版本号,导致对应版本号会冲突-->
<junit.jupiter.version>5.8.2</junit.jupiter.version>
<!-- plugins -->
<maven.compiler.version>3.8.1</maven.compiler.version>
<maven-surefire-plugin.version>3.0.0-M5</maven-surefire-plugin.version>
<poi.version>5.2.2</poi.version>
<!-- 断言-->
<hamcrest.version>2.2</hamcrest.version>
<slf4j.version>2.0.0-alpha7</slf4j.version>
<logback.version>1.3.0-alpha16</logback.version>
<jackson.version>2.13.1</jackson.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>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter</artifactId>
<!-- 对应添加的依赖的作用范围-->
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.junit.platform</groupId>
<artifactId>junit-platform-suite</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.junit.vintage</groupId>
<artifactId>junit-vintage-engine</artifactId>
</dependency>
<dependency>
<groupId>org.hamcrest</groupId>
<artifactId>hamcrest</artifactId>
<version>${hamcrest.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.12.0</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>${slf4j.version}</version>
</dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>${logback.version}</version>
</dependency>
<dependency>
<groupId>io.qameta.allure</groupId>
<artifactId>allure-junit5</artifactId>
<version>2.13.6</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-surefire-plugin</artifactId>
<version>${maven-surefire-plugin.version}</version>
<configuration>
<includes>
<include>**/*Test.class</include>
</includes>
</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>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>${maven.compiler.version}</version>
<configuration>
<!-- 设置jre版本为 11 -->
<source>${maven.compiler.source}</source>
<target>${maven.compiler.target}</target>
<!-- 设置编码为 UTF-8 -->
<encoding>${maven.compiler.encoding}</encoding>
</configuration>
</plugin>
<plugin>
<groupId>io.qameta.allure</groupId>
<artifactId>allure-maven</artifactId>
<version>2.10.0</version>
<configuration>
<reportVersion>2.18.1</reportVersion>
<allureDownloadUrl>${allure.cmd.download.url}/2.18.1/allure-commandline-2.18.1.zip</allureDownloadUrl>
</configuration>
</plugin>
</plugins>
</build>
</project>
使用命令:生成在线报告
mvn allure:serve