Allure2 和 ExtentReports 比较

java+junit5 中常用的有 extentreports 报告模板还有 allure2 报告模板。二者都比较常用,但是 allure2 用到应该稍微多一些

extentreports 和 allure2 比较:

  • extentreports 生成的是 html 报告方便 jenkins 的邮件发送
  • extentreports 只支持 java 和 .net 比 allure2 支持范围少很多
  • extentreports 可定制的内容展示比 allure2 少
  • 但是 extentreports 带有几种展示历史报告的服务端,这个很赞
  • extentreports 官网有 V2.x 和 V3.x 版本的,V3.x 版本的只支持 jkd 8 及其以上

在这里插入图片描述

具体操作步骤

第一步:配置依赖

注意下方还要加上自己的 testng 或者 junit 的依赖,否则怎么去做测试呢

也要注意下面的版本可以自己去选择,我个人建议使用下方我的代码,因为 allure2 官网代码中实际有错误,目前还没改。而且改动的话 allure2 版本和 junit5 版本不对应会报错!

下面的配置代码都可以在 allure2 官网找到,这里提供 allure2 官网链接https://docs.qameta.io/allure

<properties>
    <aspectj.version>1.8.10</aspectj.version>
</properties>

<dependencies>
    <dependency>
        <groupId>org.junit.jupiter</groupId>
        <artifactId>junit-jupiter</artifactId>
        <version>RELEASE</version>
        <scope>test</scope>
    </dependency>
    <!-- https://mvnrepository.com/artifact/io.qameta.allure/allure-junit5 -->
    <dependency>
        <groupId>io.qameta.allure</groupId>
        <artifactId>allure-junit5</artifactId>
        <version>RELEASE</version>
        <scope>test</scope>
    </dependency>
</dependencies>

<build>
    <plugins>
        <plugin>
            <artifactId>maven-surefire-plugin</artifactId>
            <version>2.22.1</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>2.10.0</version>
            <configuration>
                <reportVersion>2.4.1</reportVersion>
            </configuration>
        </plugin>
    </plugins>
</build>

第二步:查看测试报告

运行测试用例,然后在项目中会生 allure2 的文件包,其中有测试报告,但是我们打开发现显示的是空白,这是因为需要你启动 jetty 服务,所以请看下面几步

第三步:下载 allure2 工具并配置环境变量

allure2 工具下载

下载好后,环境变量配置到 allure 的 bin 下为止,然后 cmd 中可以allure --version查看配置是否成功

第四步:allure2 工具创建本地 jetty 服务器实例

在项目 dir 路径下执行allure serve allure-results文件夹相对于项目的路径,比如说执行allure serve target/allure-results,这样就可以成功创建本地 jetty 服务器实例,这样我们在浏览器可以看到很好看的 allure2 测试报告了!

allure 的使用

对于按照上面操作安装后我们跑完测试用例会在项目下直接生成一个 allure-results 文件,若我们配置好了 allure 环境变量,我们执行下面就可以直接打开默认浏览器查看报告了

allure serve allure-results

对于没有 allure-results 文件,我们也可以运行 target 下的

allure serve target/surefire-reports

生成 html 的压缩包利于发送给别人

allure generate allure-results/ -o /tmp/allure

allure 依赖还支持在测试方法上加上 @Description 注解来表示含义还有 @Attachment 等诸多依赖可以使用,这些注解的作用都是丰富测试报告

补充说明

当你第一次装完这些并且配置好这些工具之后,以后对于新的项目,你只用 pom 文件配置一下 allure2,然后运行测试用例让其在 target 下产生报告,再运行allure serve target/allure-results创建 jetty 实例就行了,这样就可以看报告了

另外下面这里在提供 allure2 的官网:

  • allure2 工具官网介绍安装

    注意,这里是 allure2 工具不是那个依赖,用来产生 jetty 实例的。官网 allure2 安装,官网的这个安装方式通过 Scoop 工具去安装,我不推荐,这种方式直接给弄麻烦了,我们可以直接去 github 一搜然后 download 一下,再配一个环境变量就可以了

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐