Allure集成TestNG和Jenkins

1 Allure简介

Allure是一个著名的开源测试报告框架。在GitHub上,Allure的Star超过了1500个。Allure生成测试报告分为两步:

  • 测试执行阶段:Allure适配器保存测试执行信息到XML文件中。Allure的适配器支持与Java、Python、JavaScript、Ruby、Groovy、PHP、.NET和Scala语言中流行的测试框架集成。对于Java而言,Allure可与JUnit 4、JUnit 5、TestNG、Cucumber JVM和Selenide集成。
  • 报告生成阶段:可通过使用命令行工具、CI插件和构建工具来将XML文件转换为HTML报告。使用命令行工具通过allure serve命令生成并打开测试报告时,Allure会默认使用Jetty作为服务器,使用默认浏览器打开测试报告。

2 集成TestNG

  1. 创建Maven工程TestNG Allure(可自行命名),在工程src/test目录新增resources目录,在resources目录新增allure.properties文件,在allure.properties文件新增以下配置:
allure.results.directory=target/allure-results
  1. 在工程pom.xml文件的标签中新增以下配置:

    1.9.5



    
        org.testng
        testng
        7.0.0
        test
    
    
        io.qameta.allure
        allure-testng
        2.13.1
        test
    



    
        
            org.apache.maven.plugins
            maven-surefire-plugin
            2.22.2
            
                
                    -javaagent:"${settings.localRepository}/org/aspectj/aspectjweaver/${aspectj.version}/aspectjweaver-${aspectj.version}.jar"
                
            
            
                
                    org.aspectj
                    aspectjweaver
                    ${aspectj.version}
                
            
        
    

  1. 在工程src/test目录新增com.lujiatao.testng.allure包(可自行命名),在com.lujiatao.testng.allure包新增TestNGWithAllure类(可自行命名),在TestNGWithAllure类新增以下代码:
package com.lujiatao.testng.allure;

import io.qameta.allure.Description;
import io.qameta.allure.Severity;
import io.qameta.allure.SeverityLevel;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;

public class TestNGWithAllure {

    @BeforeClass
    public void setUp() {
        System.out.println("setUp");
    }

    @Test(description = "测试用例_001描述(TestNG)")
    @Severity(SeverityLevel.CRITICAL)//Allure用例级别
    public void testCase_001() {
        System.out.println("testCase_001");
    }

    @Test
    @Description("测试用例_002描述(Allure)")
    @Severity(SeverityLevel.NORMAL)
    public void testCase_002() {
        System.out.println("testCase_002");
    }

}

Allure自带很多注解,以上只演示了@Description和@Severity的用法,更多可参考Allure官方文档。

  1. 执行mvn clean test执行测试用例。
  2. 执行allure serve target\allure-results生成并打开测试报告(命令行工具安装见文末“4 (附)命令行工具安装”)。


    命令行工具生成的测试报告

3 集成Jenkins

Jenkins安装和使用不在本文介绍范围,可自行参考相关文章。

  1. 安装Allure插件。
  2. 进入“Global Tool Configuration”,点击“Allure Commandline installations... → Add Allure Commandline”,填写Name、选择Version。


    Jenkins全局配置
  3. 在Jenkins创建TestNGWithAllure Maven项目(可自行命名),将工程TestNG Allure代码上传到SVN(也可用Git)。
  4. 选择Subversion,填写Repository URL、选择Credentials(没有凭证的话新建一个)。


    代码地址和凭证配置
  5. 填写Goals and options。


    Maven命令配置
  6. 点击“Add post-build action”,选择“Allure Report”,填写Path。


    Allure测试报告路径配置
  7. 触发构建,在TestNGWithAllure项目里可以看到Allure的入口。


    Jenkins的Allure入口
  8. 进入后可以看到与命令行工具生成并打开测试报告的结果是一致的。


    Jenkins生成的测试报告

4 (附)命令行工具安装

命令行工具安装方式有多种,这里以Windows为例使用压缩包方式安装。

  1. 安装JRE。
  2. 下载命令行工具压缩包,下载地址:http://repo.maven.apache.org/maven2/io/qameta/allure/allure-commandline/2.13.1/allure-commandline-2.13.1.zip
  3. 解压到D:\Program Files目录(也可以用其他目录)。
  4. 编辑系统变量Path,追加以下路径:
;D:\Program Files\allure-2.13.1\bin
  1. 打开CMD窗口,执行allure --version回显2.13.1表示安装成功。

5 参考文献

Allure Framework:https://docs.qameta.io/allure/

你可能感兴趣的:(Allure集成TestNG和Jenkins)