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服务器上 ...
随机推荐
- 现在的市场对 C++ 的需求大吗?
分享 大师助手 先说结论:需求还是很大,但是没有什么初级程序员能干的岗位. 游戏引擎,存储,推荐引擎,infra,各种各样的性能敏感场景.这些都是C++的刚需场景,别的语言基本替代不了的.除了pin ...
- json对象遍历顺序问题
对json对象遍历我们一般使用for in循环,或者Object.keys + 数组方法.在接触js以来听到过一种说法: for in 遍历顺序是不可靠的 但是在实际开发中for in 循环也是按照其 ...
- 详细分析栈和队列的数据结构的实现过程(Java 实现)
目录 栈和队列的数据结构的实现过程(Java 实现) 栈的数据结构的实现 栈的基础知识回顾 栈的常见应用 基于数组的栈的实现 具体代码设计 基于数组的栈简单的时间复杂度分析 关于栈的一个算法应用:括号 ...
- Asterisk-WebRTC客户端的部署
很久没有写博客了.最近完成asterisk 和 jssip的库集成,浏览器支持chrome/firefox.在集成的过程中遇到了一些问题,在这儿分享出来,免得大家走弯路. 在网上看一些帖子,环境都是 ...
- MinGW-w64安装过程中出现ERROR res错误的问题
使用 mingw-get-setup.exe 安装.在官网http://www.mingw.org/上搜索download/installer,点击下载. 如果使用 mingw-w64-install ...
- Photon Server伺服务器在LoadBalancing的基础上扩展登陆服务
一,如何创建一个Photon Server服务 参见此博客 快速了解和使用Photon Server 二, 让LoadBalancing与自己的服务一起启动 原Photonserver.config文 ...
- 自编Basic脚本 用BasicIntepreter执行 打印九九乘法表
源码下载:https://files.cnblogs.com/files/heyang78/BasicInterpreter2-20200601-2.rar 用编程语言打印九九乘法表不难,用自编解释器 ...
- 关于ES6的let、const那些事儿
Babel 转码器 Babel是广泛使用的一个ES6转换器,将ES6代码转换成ES5代码,从而实现在老版本的浏览器执行. let和const命令 let所声明的变量只在let命令所在的代码块内是有效的 ...
- Spring-代理模式
代理模式 目录 代理模式 1. 代理模式的分类 2. 静态代理 1. 角色分析 2. 代码步骤 3. 代理的好处 4. 进一步理解 3. 动态代理 1. 角色分析 2. 对动态代理的两个关键类的理解 ...
- python应用 处理excel数据
实现功能 excel表格中有4列数,分别为RMF计算得到的 β,γ,势能面及组态,需要挑选出相同 β 值下势能面最低时的组态.为了减小数据量,先将 β 值保留两位小数. 代码 import xlrd ...