Allure介绍

官方网站

Allure框架是一种灵活的轻量级多语言测试报告工具,它不仅能够以简洁的web报告形式显示已测试的内容,而且允许参与开发过程的每个人从测试的日常执行中提取最大限度的有用信息。

安装

allure的使用是需要安装,系统不同则安装方式不同,更多详细的使用查看官方文件Allure的安装

安装完成后,验证

1
2
jingdeMacBook-Pro:~ apple$ allure --version
2.13.5

报告生成

1
allure serve target/surefire-reports/

Junit5集成

本文主要解释是与Junit5进行单元测试,则在测试报告展示是Allure与Junit5集成,更多详细的使用查看官方文件Allure与Junit5

在Maven工程中引入依赖:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
<properties>
<aspectj.version>1.8.10</aspectj.version>
</properties>

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

<build>
<plugins>
<plugin>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.21</version>
<configuration>
<testFailureIgnore>false</testFailureIgnore>
<argLine>
-javaagent:"${settings.localRepository}/org/aspectj/aspectjweaver/${aspectj.version}/aspectjweaver-${aspectj.version}.jar"
</argLine>
<systemProperties>
<property>
<name>junit.jupiter.extensions.autodetection.enabled</name>
<value>true</value>
</property>
</systemProperties>
</configuration>
<dependencies>
<dependency>
<groupId>org.junit.platform</groupId>
<artifactId>junit-platform-surefire-provider</artifactId>
<version>1.2.0</version>
</dependency>
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjweaver</artifactId>
<version>${aspectj.version}</version>
</dependency>
</dependencies>
</plugin>
<plugin>
<groupId>io.qameta.allure</groupId>
<artifactId>allure-maven</artifactId>
<version>LATEST_VERSION</version>
<configuration>
<reportVersion>2.4.1</reportVersion>
</configuration>
</plugin>
</plugins>
</build>

如果没有指定allure执行结果的指定目录,则会自动生成在工程目录下,这样会产生的问题,在执行mvn clean test的时候,不会删除目录下的allure执行结果,执行allure生成报告的命令时,得到结果会结合之前执行的结果,但本次没有执行的结果,这是不符合我们预期。

mvn clean test执行清除,只清除target目录下所有的文件,我们将allure执行的文件放入target目录下,那么每次执行clean都会清除allure执行的结果,就不会因为之前执行的结果影响到我们本次的结果了。需要在pom.xml对allure进行如下的配置:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.22.2</version>
<configuration>
<testFailureIgnore>false</testFailureIgnore>
<argLine>
-javaagent:"${settings.localRepository}/org/aspectj/aspectjweaver/${aspectj.version}/aspectjweaver-${aspectj.version}.jar"
</argLine>
<systemProperties>
<property>
<name>junit.jupiter.extensions.autodetection.enabled</name>
<value>true</value>
</property>
<!--设置生成allure生成报告的存放路径-->
<property>
<name>allure.results.directory</name>
<value>${project.build.directory}/allure-results</value>
</property>
</systemProperties>
</configuration>
<dependencies>
<dependency>
<groupId>org.junit.platform</groupId>
<artifactId>junit-platform-surefire-provider</artifactId>
<version>1.2.0</version>
</dependency>
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjweaver</artifactId>
<version>${aspectj.version}</version>
</dependency>
</dependencies>
</plugin>

使用maven命令执行结束,对应生成的allure-results就会在target目录下:image-20210111170023464

执行测试报告生成即可

1
jingdeMacBook-Pro:api-object-auto apple$ allure serve target/allure-results

Allure测试报告定制

Allure提供了很多注解,接下来主要学习以对应敏捷流程所需要的常用注解

  • @Epic:敏捷的术语,定义史诗,往下再分Feature和Story。
  • @Feature: 敏捷的术语,定义功能模块,往下是Story。
  • @Story:敏捷的术语,定义用户故事。
  • @Description:定义用例描述。
  • @Owner:定义用例编写者
  • @Severity:定义用例级别,有五种级别,默认NORMAL
  • @Issue:定义缺陷链接。可结合@Link使用,也可以结合配置文件使用。配置文件放到resource目录下,Allure 会替换{}为对应注解的值。
  • @TmsLink:与@Issue类似用法,定义案例链接
  • @Link:定义一个链接,在测试报告展现