extentreports报告插件与testng集成(一)
前段时间在群里有人说了下用这个插件来生成测试报告,发现生成的报告非常不错。就下来学习了一下,并集成到了testng上,下面来分享一下:
ExtentReports (by Anshoo Arora) is a HTML reporting library for .NET and Java which is extremely easy to use and creates beautiful execution reports. It shows test and step summary, test steps and status in a toggle view for quick analysis。(ExtentReports是一个可以非常容易用.net或者java来生成的一个漂亮的报告,用来显示我们的测试中步骤、摘要、状态以便用来分析)
先让大家看下报告样式:


是不是很漂亮,其中的还有帅选功能。以及其他的一些信息。
我的工程是maven项目,所以可以直接引入依赖,不能引入的,请自行下载,下载地址:http://extentreports.relevantcodes.com
maven工程中pom.xml加入一下依赖
<dependency>
<groupId>com.relevantcodes</groupId>
<artifactId>extentreports</artifactId>
<version>2.40.2</version>
</dependency>
首先在testng @beforesuits中初始化一些ExtentReports,其中配置了报告的生成路径,以及一些其他一些信息,这里为了在监听中调用extent 我在这里写了一个get方法
private static String reportLocation = "report/ExtentReport.html";
protected static ExtentReports extent;
@BeforeSuite
public static void befores(){
extent = new ExtentReports(reportLocation, true);
extent.startReporter(ReporterType.DB, reportLocation);
extent.addSystemInfo("Host Name", "Lining");
} @AfterSuite
public static void afters(){ extent.close(); }
public static ExtentReports getextent(){
return extent;
}
重写testng监听:
import org.apache.log4j.Logger;
import org.testng.ITestContext;
import org.testng.ITestResult;
import org.testng.TestListenerAdapter;
import seleniumstudy.testcase.InitDriverCase;
import com.relevantcodes.extentreports.ExtentReports;
import com.relevantcodes.extentreports.ExtentTest;
import com.relevantcodes.extentreports.LogStatus; public class TestngListener extends TestListenerAdapter {
private Logger logger = Logger.getLogger(TestngListener.class);
protected ExtentReports extent;
protected ExtentTest test; @Override
public void onTestStart(ITestResult tr) {
super.onTestStart(tr);
logger.info("【" + tr.getName() + " Start】");
extent=InitDriverCase.getextent();
test= extent.startTest(tr.getName());
} @Override
public void onTestFailure(ITestResult tr) {
super.onTestFailure(tr);
logger.info("【" + tr.getName() + " Failure】");
test.log(LogStatus.FAIL, tr.getThrowable());
extent.endTest(test); } @Override
public void onTestSkipped(ITestResult tr) {
super.onTestSkipped(tr);
logger.info("【" + tr.getName() + " Skipped】");
test.log(LogStatus.SKIP, "SKIP");
extent.endTest(test);
} @Override
public void onTestSuccess(ITestResult tr) {
super.onTestSuccess(tr);
logger.info("【" + tr.getName() + " Success】");
test.log(LogStatus.PASS, "Pass");
extent.endTest(test);
} @Override
public void onFinish(ITestContext testContext) {
super.onFinish(testContext);
}
}
ok,已经完毕,我们的测试用例,还按以前的testng方式书写就可以了,testng 的失败重跑以及失败自动截图在下一篇文章中实现。
extentreports 官方文档地址:http://extentreports.relevantcodes.com/java/#reviews
extentreports报告插件与testng集成(一)的更多相关文章
- extentreports报告插件与testng集成
前段时间在群里有人说了下用这个插件来生成测试报告,发现生成的报告非常不错.就下来学习了一下,并集成到了testng上,下面来分享一下: ExtentReports (by Anshoo Arora) ...
- extentreports报告插件与testng集成(二)
之前的一篇文章中,是把extentreports 的报告的初始方法写在driver的初始方法中,写报告的方法在testng的 onTest中,这次将这些方法全都拆出来,写在一个方法类中,这个类重现实现 ...
- extentreports报告插件之extentX之服务搭建(三)
之前两个章节已经写完再extentreports报告插件与testng 的集成,但是发现 每次测试完后,生成的报告都要在单独发送,每个项目都有一份报告,如果项目多的话,管理起来就会很冗余. 这个给大家 ...
- 笔记:Maven 项目报告插件
Maven 项目报告插件,都是对于前面生成的项目站点的内容丰富,因此都是基于项目站点的,生成的命令和生成项目站点一致(mvn site),项目报告插件的配置和一般插件不同,是在 project-> ...
- Gradle 1.12用户指南翻译——第四十一章. 项目报告插件
本文由CSDN博客万一博主翻译,其他章节的翻译请参见: http://blog.csdn.net/column/details/gradle-translation.html 翻译项目请关注Githu ...
- python nose测试框架全面介绍九---各种html报告插件对比
一直在使用Nose-html-reporting,并输出html报告,但今天在使用时发出有点问题:于时,将python目前可能的html报告插件下载后进行对比,如下 一.Nose-html-repor ...
- Maven 项目报告插件
Maven 项目报告插件,都是对于前面生成的项目站点的内容丰富,因此都是基于项目站点的,生成的命令和生成项目站点一致(mvn site),项目报告插件的配置和一般插件不同,是在 project-> ...
- Docker DevOps实战:Docker+Jenkins+Python+Pytest+Allure(1)- 创建Jenkins容器、安装Python环境、安装项目依赖类库、安装Allure报告插件
前言: 本文实操笔记参照菠萝笔记,安装过程中的坑大家可以参考下 创建Jenkins容器 # 下载Jenkins镜像 [root@localhost ~]# docker pull jenkins/je ...
- 基于testng自动化添加allure报告展示以及jenkins集成
本地执行方式: 1.下载地址 http://allure.qatools.ru/ 2.执行机器添加环境变量 如mac:vi /etc/profile export ALLURE_HOME=/Users ...
随机推荐
- HTML 兼容性
1. 不同浏览器对HTML标记所具有的内外边距属性具有不同的定义. 2. 因此如果想消除这种差距,应该在相应的CSS部分加入以下CSS代码: *{margin:0px;padding:0px;} 优先 ...
- 如何在JAVA中实现一个固定最大size的hashMap
如何在JAVA中实现一个固定最大size的hashMap 利用LinkedHashMap的removeEldestEntry方法,重载此方法使得这个map可以增长到最大size,之后每插入一条新的记录 ...
- T24基础-基本命令(1)
如果你不知道什么是T24,那这篇文章对你意义不大.如果你所在银行IT刚好就准备使用或已经使用T24作为银行核心系统,那我的文章对你会很有帮助. 1. LIST 这个语句相当于SQL里的“select ...
- 安装Linux 16.04 时,选择好分区后,进到选择地点的界面后,总是闪退,退到最原始的界面
这两天装 Linux 系统,总是遇到一个很蛋疼的问题: 当你累死累活把分区什么的都设置好了之后,在输入了系统名字,开机密码那几项之后,再选择地点的时候(如:选择 "上海"),然后就 ...
- java 中文转化为拼音
依赖架包:pinyin4j.jar package net.jeeshop.core.util; import net.sourceforge.pinyin4j.PinyinHelper; impor ...
- maven2 com.jhlabs.imaging 01012005 maven安装jar包imaging命令
com.jhlabs:imaging:jar:01012005 所在仓库+captcha验证码maven依赖 maven 安装jar包 到本地仓库 命令maven 3.0安装jar包 到本地仓库 co ...
- mysql relay log参数汇总
前言:MySQL进行主主复制或主从复制的时候会在配置文件制定的目录下面产生相应的relay log,本文档总结这些相关参数的定义及解释. 1.什么是relay log The relay log, l ...
- .NET批量删除代码前的行号
1 EmEditor Pro.EditPlus .visual studio ,把有行号的代码粘贴进去,按住键盘的Alt键,然后用鼠标拖出选择框列选行号,最后按Delete删除行号; 2 使用正则 ...
- NVMe over Fabrics:概念、应用和实现
对于大部分人来说,NVMe over Fabrics(简称NVMf)还是个新东西,因为其第一个正式版本的协议在今年6月份才发布.但是这并不影响人们对NVMf的关注,因为这项依托于NVMe的技术很可能继 ...
- [系统开发] 一个基于Django和PureCSS的内容管理系统
这是我刚开发的一套基于Django和PureCSS的内容管理系统,目标是优雅.简洁.实用,目前功能还在完善中. 系统参考了网上的教程,除了文章管理.搜索.RSS,还增加了类别管理.用户管理,以及评论管 ...