• Allure是一个轻量级,灵活的,支持多语言的测试报告工具
  • 多平台的,奢华的测试报告框架
  • 可以为dev/qa提供详尽的测试报告,测试步骤,log
  • 也可以为管理层提供high level的统计报告
  • java语言开发的,支持pytest,js,php,ruby等
  • 可以集成到Jenkins

Allure生成测试报告

  • 一,下载对应的包&配置环境变量
    • 1.下载allure
    • 2. 配置环境变量
  • 二. 添加依赖
    • allure常用命令
  • 三,编写测试case并运行
  • 四. 使用allure工具解析测试报告
  • 五、常用注解
    • 1、 用例名称和描述展示
    • 2、 添加链接
    • 3、 用例等级
    • 4、 feature和sotry
    • 5、 添加测试步骤
    • 6、 添加附件:支持添加文本/图片/视频等
    • 附录、测试报告中文展示乱码问题解决

一,下载对应的包&配置环境变量

1.下载allure

https://repo.maven.apache.org/maven2/io/qameta/allure/allure-commandline/2.13.2/
ps:这里注意,不要下2.13.10版本,这个打开会空白!!!

2. 配置环境变量

  • jdk1.8版本及以上
  • 在path那边添加环境变量,比如D:\java课程\allure-commandline-2.13.2\allure-2.13.2\bin,配置完成后可以cmd输入allure --version验证是否配置成功

二. 添加依赖

这里匹配的是.Test结尾的java文件**(记得放在test目录下,切记!!)**

<?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.hogwarts</groupId><artifactId>AllureDemo2</artifactId><version>1.0-SNAPSHOT</version><dependencies><dependency><groupId>org.junit.jupiter</groupId><artifactId>junit-jupiter</artifactId><version>RELEASE</version><scope>test</scope></dependency><dependency><groupId>org.hamcrest</groupId><artifactId>hamcrest</artifactId><version>2.2</version><scope>test</scope></dependency><dependency><groupId>io.qameta.allure</groupId><artifactId>allure-junit5</artifactId><version>2.13.6</version><scope>test</scope></dependency><dependency><groupId>org.junit.platform</groupId><artifactId>junit-platform-console-standalone</artifactId><version>1.7.0</version></dependency><dependency><groupId>org.hamcrest</groupId><artifactId>hamcrest</artifactId><version>2.1</version><scope>compile</scope></dependency></dependencies><properties><maven.compiler.source>8</maven.compiler.source><maven.compiler.target>8</maven.compiler.target><aspectj.version>1.8.10</aspectj.version><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding></properties><build><plugins><plugin><artifactId>maven-surefire-plugin</artifactId><version>3.0.0-M5</version><configuration><includes><include>**/*Test.java</include></includes></configuration></plugin></plugins></build>
</project>

allure常用命令

  • allure --help 帮助
  • allure --version 查看版本信息
  • allure serve 生成在线版本的测试报告,可以通过这个来解析最终的xUnit生成的结果
  • allure generate <allure-result中间文件> -o 输出目录(默认路径:allure report)

三,编写测试case并运行

在test/java下新建测试case

import org.junit.jupiter.api.Test;import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.Matchers.equalTo;public class Demo1Test {@Testpublic void demo1() {assert 1 + 1 == 2;}@Testpublic void demo2() {assertThat(2, equalTo(2));}@Testpublic void demo3() {assertThat(2, equalTo(2));}
}

四. 使用allure工具解析测试报告

然后点击pom文件 - 右键 - open in terminal - 输入mvn clean test命令清空target目录下的surefile-reports

运行完上面的命令后,因为我们在pom文件配置了surfile,使用我们在命令行输入allure serve ./target/surefile-reports生成报告,但是这个我这测试时候不行,只能用后面的allure serve allure-results(这个想要是最新的需要手动删除allure-results目录),会自动跳转网页查看报告

如果只想执行单个case,直接输入
mvn clean -Dtest=com.hogwarts.demo.Demo2Test test

五、常用注解


演示几个常用注解:

1、 用例名称和描述展示
import io.qameta.allure.Allure;
import io.qameta.allure.Description;
import org.junit.Assert;
import org.junit.jupiter.api.DisplayName;
import org.junit.jupiter.api.Test;/*** @DisplayName 在外层显示case名称* @Description:对case的具体描述,在详情里展示,是静态描述信息* Allure.description:测试动态描述信息*/
public class AllureDisplayAndDescriptionTest {@Test@DisplayName("测试显示名称")@Description("这是一个case的静态描述信息")void test1(){Assert.assertEquals(1,1);}@Test@DisplayName("测试动态描述信息")void test2(){Assert.assertEquals(1,1);Allure.description("11111");Assert.assertEquals(1,1);// 动态描述信息(写多个的时候只会展示最后一次添加的Allure.description("22222");}
}

展示如下

2、 添加链接
import io.qameta.allure.Allure;
import io.qameta.allure.Link;
import io.qameta.allure.Links;
import org.junit.jupiter.api.Test;/*** 添加链接* 2种:* 内部链接:@Link* 外部链接:Allure.link("跳转到百度","https://www.baidu.com");*/
public class AllureLinkTest {@Test@Link(name = "跳转到百度",url = "https://www.baidu.com")void link1(){System.out.println("外部链接");}@Testvoid link2(){System.out.println("内部链接");Allure.link("跳转到百度","https://www.baidu.com");}// 添加多个链接@Test@Links({@Link(name = "link 1",url = "https://www.baidu.com"),@Link(name = "link 2",url = "https://www.ceshiren.com"),})void multiLinks(){System.out.println("添加多个链接");}
}

展示如下:

3、 用例等级

import io.qameta.allure.Severity;
import io.qameta.allure.SeverityLevel;
import org.junit.jupiter.api.Test;/*** 等级划分执行顺序:* 依次是blocker>critical>normal>minor>trivial*/
public class AllureLevelTest {@Test@Severity(SeverityLevel.BLOCKER)void blockerDemo(){System.out.println("BLOCKER");}@Test@Severity(SeverityLevel.CRITICAL)void criticalDemo(){System.out.println("CRITICAL");}@Test@Severity(SeverityLevel.MINOR)void minorDemo(){System.out.println("MINOR");}@Test@Severity(SeverityLevel.NORMAL)void normalDemo(){System.out.println("NORMAL");}@Test@Severity(SeverityLevel.TRIVIAL)void trivialDemo(){System.out.println("TRIVIAL");}
}

4、 feature和sotry
import io.qameta.allure.Feature;
import io.qameta.allure.Story;
import org.junit.jupiter.api.Test;/*** @Feature:大类* @Story:大类下面的小类*/
@Feature("登录")
public class AllureFeatureTest {@Test@Story("登录成功")void loginSuccess(){System.out.println("登录成功");}@Test@Story("登录失败")void testFail1(){System.out.println("fail1");}@Test@Story("登录失败")void testFail2(){System.out.println("fail2");}
}

在首页会做具体展示,点进去可查看详情

5、 添加测试步骤
import io.qameta.allure.Allure;
import io.qameta.allure.Step;
import org.junit.Assert;
import org.junit.jupiter.api.Test;public class AllureStepTest {@Testpublic void stepTest() {Allure.step("step1", this::step1);Allure.step("step2", this::step2);Allure.step("step2", this::step3);}@Step("step1")void step1() {System.out.println("step1");}@Step("step2")void step2() {System.out.println("step2");}@Step("step3")void step3() {Assert.assertEquals(1, 2);}
}

在页面展示如下:如果成功会显示√标识,失败会标红并且显示报错

6、 添加附件:支持添加文本/图片/视频等
import io.qameta.allure.Allure;
import org.junit.jupiter.api.Test;import java.io.FileInputStream;
import java.io.FileNotFoundException;public class AllureAddAttachmentTest {@Testvoid addTextAndPics(){Allure.addAttachment("添加文本","我是文本内容");try {Allure.addAttachment("添加图片","image/png", new FileInputStream("C:\\Users\\86189\\Pictures\\clipboard1.png"),"png");} catch (FileNotFoundException e) {e.printStackTrace();}}
}

附录、测试报告中文展示乱码问题解决


在pom文件添加properties配置文件

 <properties><maven.compiler.source>8</maven.compiler.source><maven.compiler.target>8</maven.compiler.target><aspectj.version>1.8.10</aspectj.version><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding></properties>

我这里也改了,但是我感觉改不改关系不大,主要还是properties配置文件生效

Allure生成测试报告相关推荐

  1. allure生成测试报告时乱码,allure‘ �����ڲ����ⲿ���Ҳ���ǿ����еij��� ���������ļ���

    在测试用例运行完成,allure生成测试报告时乱码,如下:allure' �����ڲ����ⲿ���Ҳ���ǿ����еij��� ���������ļ��� 解决方法: 在系统环境变量path中添 ...

  2. Pytest测试框架(五):pytest + allure生成测试报告

    系列文章目录 Pytest测试框架(一):pytest安装及用例执行 Pytest测试框架(二):pytest 的setup/teardown方法 Pytest测试框架(三):pytest fixtu ...

  3. pytest和allure生成测试报告

    文章目录 pytest简介 pytest和unittest区别 pytest使用自带的python-html 生成测试报告 由于自带生成测试报告的东西不是界面过于简单和不太美观可以使用allure 使 ...

  4. linux环境 jenkins +allure生成测试报告

    前提条件:linux环境已安装GIT. 安装GIT的步骤: centos会自带GIT 查看GIT的版本命令:git --version git安装后,需要设置环境变量:vim /etc/profile ...

  5. TestNG+Allure生成测试报告

    不要用allure 2.13.10 不要用allure 2.13.10 不要用allure 2.13.10 生成的报告是空白页 1.allure依赖配置 查看allure官网显示配置如下 <pr ...

  6. Pytest 结合 Allure 生成测试报告

    目录 安装插件 查看 Allure 版本 标记用法 指定运行某个story或者feature案例 安装插件 pip install allure-pytest 查看 Allure 版本 allure ...

  7. 生成html_用 Pytest+Allure 生成漂亮的 HTML 图形化测试报告

    对于软件测试来说,测试报告是非常重要的工作产出.一个漂亮.清晰.格式规范的测试报告,能够减少开发人员和测试人员的沟通成本. 本篇文章将介绍如何使用开源的测试报告生成框架 Allure 生成规范.格式统 ...

  8. html兴趣测试生成图表源码,用 Pytest+Allure 生成漂亮的 HTML 图形化测试报告

    原标题:用 Pytest+Allure 生成漂亮的 HTML 图形化测试报告 对于软件测试来说,测试报告是非常重要的工作产出.一个漂亮.清晰.格式规范的测试报告,能够减少开发人员和测试人员的沟通成本. ...

  9. 用Pytest+Allure生成漂亮的HTML图形化测试报告

    本篇文章将介绍如何使用开源的测试报告生成框架Allure生成规范.格式统一.美观的测试报告. 通过这篇文章的介绍,你将能够: 将Allure与Pytest测试框架相结合: 如何定制化测试报告内容 执行 ...

最新文章

  1. 在Cisco交换机上实现隔离访问
  2. c# 变量,对象,静态类型,集合类的线程安全回顾
  3. FLASH脚本语言详解
  4. java 归并排序 非递归_归并排序-递归及非递归的JAVA实现
  5. 在word 2010中采用EndNote X7插入引用
  6. 【渝粤题库】广东开放大学 大学英语B 形成性考核
  7. Python环境搭建及PyCharm下载安装
  8. jquery mini下载_【福利】iPhone 12 Pro Maxamp;mini预售开始啦!
  9. 全网首发:怎样制作CDKEY(6)-CDKEY破解
  10. 基于Fisher准则线性分类器设计
  11. RS485芯片与单片机接口中的一个容易忽略的隐患
  12. matlab谢尔宾斯三角_几何画板教程:谢尔宾斯基三角形的制作
  13. Go语言 gorutine和channel协同工作经典应用案例 (Golang经典编程案例)
  14. 浅谈游戏《celeste蔚蓝》
  15. Qt进行CSV文件操作
  16. hist 在matlab中的含义,matlab中hist函数的用法_matlab中hist函数
  17. IQueryable和IEnumerable学习
  18. nmap 安装和使用
  19. 计算机绘图员证有无取消,计算机辅助设计
  20. 假如腾讯跟360之战是一场阴谋联想到的

热门文章

  1. 广数GSK(980, 988, 980tdi网口,980tdc串口)数据采集实战
  2. 对条件变量(condition variable)的讨论
  3. VC++基于MFC的程序框架剖析(前言)
  4. RDKit|一站式搞定分子读取、输出、可视化
  5. 单机程序修改log4j配置文件位置
  6. 《乐高EV3机器人搭建与编程》一2.2 颜色设计
  7. RSA密钥证书的生成
  8. 面试中如何“投机取巧”
  9. 改善Unity编辑器对Lua文件的支持
  10. 最新全国区划代码-2022年全国各省五级行政区划代码及名称数据(省-市-区县-乡镇-村)