java版集成Allure报告--注释使用说明
testNG集成Allure报告--注释使用说明
前置条件
- 首先需要下载allure的zip包解压,然后配置环境变量即可(win)。allure的GitHub下载地址:
- 然后执行testn.xml或者是单元测试下的runCase方法,两者任选其一。测试用例执行完成后会在项目目录下生成:allure-results文件夹
- 最后通过cmd或者IDEA 的Terminal功能,在当前项目下执行如下命令
allure serve allure-results
即可自动打开web页面测报告

下面详解下java版allure的注解使用
- allure简介就不多说了官网介绍很详细,
Allure官方地址,需要了解更多详情异步这里
本次demo使用技术如下
使用springboot框架+testNG框架+Allure报告框架+管理Selenium WebDriver所需的驱动程序webdrivermanager库+log4j2日志
引入上面的依赖,具体allure-javaAnnotations项目pom文件如下:
<?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>org.example</groupId>
<artifactId>allure2test</artifactId>
<version>1.0-SNAPSHOT</version>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.2.6.RELEASE</version>
</parent>
<!--引入spingboot框架-->
<dependencies>
<!-- springboot starter依赖 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
<exclusions>
<!-- 移除自带的log -->
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-logging</artifactId>
</exclusion>
</exclusions>
</dependency>
<!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-log4j -->
<!--引入支持的log4j2日志依赖-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-log4j2</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<!--引入allure2的依赖-->
<dependency>
<groupId>io.qameta.allure</groupId>
<artifactId>allure-testng</artifactId>
<version>2.10.0</version>
</dependency>
<!-- testng -->
<dependency>
<groupId>org.testng</groupId>
<artifactId>testng</artifactId>
<version>6.14.3</version>
</dependency>
<!--WebDriverManager是一个库,它可以自动管理Selenium WebDriver所需的驱动程序(例如chromedriver,geckodriver等)-->
<dependency>
<groupId>io.github.bonigarcia</groupId>
<artifactId>webdrivermanager</artifactId>
<version>3.0.0</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
- Allure注释大致可分类如下:
/**@Epic -Epics可用作您的产品或项目的大量需求的占位符。Epic将在适当的时候分为较小的用户故事。
*用户故事可以拆分为较小的任务,并且可以是较大的Feature和Epic的一部分。
*/
@Epic
@Features
//是一个标注信息注解,但是改标注可以把相同的标注统一到相同模块下用于筛选
@Stories/@Story
//使用@Severity批注测试缺陷等级,例如BLOCKER,CRITICAL,NORMAL,MINOR,TRIVIAL
@Severity(SeverityLevel.BLOCKER)
//测试方法描述
@Description("测试流程描述")
//@Step注释是对任何(公共,私有,受保护)对任何方法进行注释。例如- @Step(“输入{0}和{1}”)
@Step
//@Attachment-附件只是带有注释的方法,@Attachment该方法返回String或byte [],应将其添加到报表中。我们可以将故障屏幕截图作为附件
@Attachment
//@Links-我们可以将测试链接到某些资源,例如TMS(测试管理系统)或错误跟踪器。将测试用例链接到测试方法总是有帮助的。
@Link
下面介绍每种注解的示例及报告展示
- @Description注解:描述性注解
- 示例--位置test包下的BasePageTest类中每个测试方法都加了@Description,如:
@Description("Description注解:验证主页面 test 2")
@Test
public void baseTest2() throws InterruptedException {
Assert.assertTrue(true, "测试示例 ");
}
对应allure报告位置截图如下:

- @Stories/@Story注解使用(该注解可以管理同一模块,及分组展示)
- 示例--位置同上
@Description("Description注解:验证主页测试1")
@Story("基础测试")
@Test
public void baseTest1() {
System.out.println("我在test1测试中");
}
@Description("Description注解:验证主页面 test 2")
@Story("基础测试")
@Test
public void baseTest2() {
Assert.assertTrue(true, "测试示例 ");
}
对应allure报告展示如下:

- @Severity注解(@Severity注解:测试的严重程度划分BLOCKER,CRITICAL,NORMAL,MINOR,TRIVIAL。通过查看此信息,我们可以了解测试失败的严重性。)
- 示例
@Severity(SeverityLevel.TRIVIAL)
@Description("Description注解:验证主页测试1")
@Story("基础测试")
@Test
public void baseTest1() {
System.out.println("我在test1测试中");
}
@Severity(SeverityLevel.BLOCKER)
@Description("Description注解:验证主页面 test 2")
@Story("基础测试")
@Test
public void baseTest2() {
Assert.assertTrue(true, "测试示例 ");
}
@Severity(SeverityLevel.CRITICAL)
@Description("Description注解:验证主页面 test 3")
@Story("基础测试")
@Test
public void baseTest3() {
Assert.assertTrue(false, "这是预期的失败");
}
对应allure报告展示如下:

- @Step注解( @Step注解可以对参数化进行检查)
- 示例
@Step("验证参数 uname {0} and password {1}")
public boolean verifySignIn(String uname, String pwd) {
enterUserName(uname);
enterPassword(pwd);
clickOnSignIn();
return getErrorMessage().contains("不正确的");
}
@Step("输入 username {0}")
public void enterUserName(String userName) {
WebElement emailTxtBox = driver.findElement(emailTextBox);
if (emailTxtBox.isDisplayed())
emailTxtBox.sendKeys(userName);
}
//SignInPageTest测试类
@Severity(SeverityLevel.BLOCKER)
@Description("验证登录功能")
@Story("测试验证登录")
@Test
public void verifySignInFunction() {
System.out.println("登录功能详细信息...");
basePage = new BasePage(driver);
signInPage = basePage.clickSignInBtn();
Assert.assertTrue(signInPage.verifySignInPageTitle(), "登录页面标题不匹配");
Assert.assertTrue(signInPage.verifySignInPageText(), "页面文本不匹配");
Assert.assertTrue(signInPage.verifySignIn("usertest", "p123"), "登录失败");
}
对应allure报告展示如下:

- @Epic注解(在敏捷中,测试也可以按Epic,Theme和story进行分类,allure中也可以这样标注映射关系)
- 示例
@Epic("Epic示例")
@Feature("testNG+allure集成")
public class EpicTest {
@Test
@Story("对story注释的基本支持")
@Story("对story注释的高级支持")
public void testSomething() throws Exception {
System.out.println("Epic注解使用");
}
}
对应allure报告展示如下:

- @Links注解(@Links可以将测试链接到某些资源,例如TMS(测试管理系统)或错误跟踪器等
- 示例
@Link("www.baidu.com")
@Severity(SeverityLevel.TRIVIAL)
@Description("Description注解:验证主页测试1")
@Story("基础测试")
@Test
public void baseTest1() {
System.out.println("我在test1测试中");
}
对应allure报告展示如下:

- @Attachment注解(@Attachment该方法返回String或byte [],应将其添加到报表中。我们可以使用该注解将异常屏幕截图作为附件展示)
allure是一种灵活的轻量级多语言测试报告工具,它不仅可以以简洁的网络报告形式非常简洁地显示已测试的内容,而且还允许参与开发过程的每个人从日常执行中提取最大的有用信息,详细的了解注解使用会使你的测试报告更加易读直观!
java版集成Allure报告--注释使用说明的更多相关文章
- Mac IntelliJ IDEA 2017(java开发集成环境)附注册码和破解教程 v2017.3.5破解版
原文:http://www.orsoon.com/Mac/155938.html 原文中含有软件下载地址 软件介绍 IntelliJ IDEA 2017 Mac激活版是Mac平台上的一款java开发集 ...
- pytest系列(四)- pytest+allure+jenkins - 持续集成平台生成allure报告
pytest是什么 pytest是python的一款测试框架,拥有unittest的功能并比它更丰富. allure是什么 有非常多的优秀的测试框架,但却是有非常少优秀的报告工具可以展示非常清楚的用例 ...
- 从零开始学 Java - Spring 集成 Memcached 缓存配置(一)
硬盘和内存的作用是什么 硬盘的作用毫无疑问我们大家都清楚,不就是用来存储数据文件的么?如照片.视频.各种文档或等等,肯定也有你喜欢的某位岛国老师的动作片,这个时候无论我们电脑是否关机重启它们永远在那里 ...
- 20145213《Java程序设计》实验二Java面向对象程序设计实验报告
20145213<Java程序设计>实验二Java面向对象程序设计实验报告 实验内容 初步掌握单元测试和TDD 理解并掌握面向对象三要素:封装,继承,多态 初步掌握UML建模 熟悉S.O. ...
- 20145221 《Java程序设计》实验报告二:Java面向对象程序设计
20145221 <Java程序设计>实验报告二:Java面向对象程序设计 实验要求 初步掌握单元测试和TDD 理解并掌握面向对象三要素:封装.继承.多态 初步掌握UML建模 熟悉S.O. ...
- 20145221 《Java程序设计》实验报告三:敏捷开发与XP实践
20145221 <Java程序设计>实验报告三:敏捷开发与XP实践 实验要求 以结对编程的方式编写一个软件,Blog中要给出结对同学的Blog网址 记录TDD和重构的过程,测试代码不要少 ...
- 20145221 《Java程序设计》实验报告一:Java开发环境的熟悉(Windows+IDEA)
20145221 <Java程序设计>实验报告一:Java开发环境的熟悉(Windows+IDEA) 实验要求 使用JDK编译.运行简单的Java程序: 使用IDEA 编辑.编译.运行.调 ...
- 【Python】使用Pytest集成Allure生成漂亮的图形测试报告
前言 大概两个月前写过一篇<[测试设计]使用jenkins 插件Allure生成漂亮的自动化测试报告>的博客,但是其实Allure首先是一个可以独立运行的测试报告生成框架,然后才有了Jen ...
- 如何利用jenkins插件查看allure报告-----完整篇(解决404和无数据问题)
背景: python3+appium+pytest+allure写了安卓的自动化脚本,在windows本机pycharm上跑通过后生成了allure报告. 公司jenkins搭建在linux服务器上 ...
随机推荐
- 从零开始的SpringBoot项目 ( 五 ) 整合 Swagger 实现在线API文档的功能
综合概述 spring-boot作为当前最为流行的Java web开发脚手架,越来越多的开发者选择用其来构建企业级的RESTFul API接口.这些接口不但会服务于传统的web端(b/s),也会服务于 ...
- nodejs打包成桌面程序(exe)的进阶之路
nodejs打包成桌面程序(exe)的进阶之路 node js bat 前端 计划任务 前言:最近的研究,请大佬们细品 第一篇 - 任务计划程序篇 说真的研究到将nodejs打包成可执行的exe文件是 ...
- Linux下如何知道是否有人在使坏?
在 Linux 下查看用户的行为,不仅仅是网管要做的事,也是开发人员所应该具备的基本技能之一.为什么呢?因为有时其他同事在做一些很消耗资源的事情,比如在编译大型程序,可能会导致服务器变得很慢,从而影响 ...
- TCP/IP网络编程之字节序和网络字节序
一.概要 本篇文章主要讲解基于.net中tcp/ip网络通信编程中的网络字节序.在自我进步的过程中记录这些内容,方便自己记忆的同时也希望可以帮助到大家.技术的进步源自于分享和不断的自我突破. 技术交流 ...
- Jigsaw pre-training:摆脱ImageNet,拼图式主干网络预训练方法 | ECCV 2020
Jigsaw pre-training以拼图的方式从检测数据集中生成用于主干网络预训练的数据集,而不需要额外的预训练数据集,如ImageNet.另外为了让网络更好的适应拼图数据,论文提出ERF-ada ...
- 记录call、apply、bind的源码
记录一下call.apply.bind的源码,然后从根本上明白其用法. 都知道call.apply与bind的用法,call(this,...arguments).apply(this,[argume ...
- Java生成1,2,2,3,3,3,4,4,4,4,5...序列
程序很简单,无须赘述. 竖向输出方式: public class Test { public static void main(String[] args) { int n=0; for(n=1;n& ...
- [bash] 获取linux主机名,检视内中是否有特定字符串
代码: #!/bin/bash hostname=$(hostname) #调用hostname命令获取主机名放入变量hostname中 #echo $hostname if [ `echo ${ho ...
- MyBatis实现与插件开发
分析源码之前也需要源码下载并安装到本地仓库和开发工具中,方便给代码添加注释:安装过程和mybatis源码的安装过程是一样的,这里就不再重复描述了:下载地址:https://github.com/myb ...
- python之unittest框架使用
一.unittest框架 unittest属于python内置的单元测试框架. 二.unittest框架的核心概念 test case:指测试用例.unittest中提供了一个基本类TestCase, ...