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文件的<project>标签中新增以下配置:
<properties>
    <aspectj.version>1.9.5</aspectj.version>
</properties>

<dependencies>
    <dependency>
        <groupId>org.testng</groupId>
        <artifactId>testng</artifactId>
        <version>7.0.0</version>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>io.qameta.allure</groupId>
        <artifactId>allure-testng</artifactId>
        <version>2.13.1</version>
        <scope>test</scope>
    </dependency>
</dependencies>

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-surefire-plugin</artifactId>
            <version>2.22.2</version>
            <configuration>
                <argLine>
                    -javaagent:"${settings.localRepository}/org/aspectj/aspectjweaver/${aspectj.version}/aspectjweaver-${aspectj.version}.jar"
                </argLine>
            </configuration>
            <dependencies>
                <dependency>
                    <groupId>org.aspectj</groupId>
                    <artifactId>aspectjweaver</artifactId>
                    <version>${aspectj.version}</version>
                </dependency>
            </dependencies>
        </plugin>
    </plugins>
</build>
  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/

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 199,064评论 5 466
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 83,606评论 2 376
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 146,011评论 0 328
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,550评论 1 269
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,465评论 5 359
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 47,919评论 1 275
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,428评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,075评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,208评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,185评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,191评论 1 328
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,914评论 3 316
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,482评论 3 302
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,585评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,825评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,194评论 2 344
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,703评论 2 339