博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
extentreports报告插件之extentX之服务搭建(三)
阅读量:5132 次
发布时间:2019-06-13

本文共 4146 字,大约阅读时间需要 13 分钟。

   之前两个章节已经写完再extentreports报告插件与testng 的集成,但是发现 每次测试完后,生成的报告都要在单独发送,每个项目都有一份报告,如果项目多的话,管理起来就会很冗余。

   这个给大家推荐一个extent另一个服务 extentX,这是一个web程序,可以读取数据库(mongodb、redis)中的数据,来生成报告,只要我们把测试的数据都存储在数据库中,就会看到一个很完美的集合报告。

   首先,说一下服务的搭建,我这里用的是mongodb:

 

方法一、MongoDB & NodeJS 在同一台服务器上

  1. 下载安装node.js
  2. 下载安装mongodb
  3. 配置mongodb并运行
  4. 下载extentX,解压到某一目录
  5. 进入解压目录中,使用命令 npm install
  6. 使用命令 sails lift 启动服务
  7. 打开浏览器,使用 IP+端口访问服务,服务默认端口为 1337

方法二、MongoDB & NodeJS 不在同一台服务器上

                   其他方法同上,只需在方法一中步骤5之前执行操作,

在extentx 中配置一下mongodb 数据库的地址

                   配置方法如下:

  1. 进入extentx目录下的config 文件夹中
  2. 打开connections.js 文件
  3. 更改host 或者port 即可

extent: {

  adapter: 'sails-mongo',

  host: 'localhost', // change to host where MongoDB is running

  port: 27017, // change toport where MongoDB is running

  database: 'extent'

}

   4. 后面同方法一

注:使用npm安装的过程中,可能会需要FQ下载某些模块

监听中配置,将测试数据写入到数据库中,红色字体为extent报告配置,其中extent.x(…..)为写入数据库配置。若没有此方法,请将报告插件版本升级至 2.41.1

Maven依赖:

                

com.relevantcodes
extentreports
2.41.1

 监听代码:

import java.util.Calendar;import java.util.Date;import java.util.List;import java.util.Map;import org.testng.IReporter;import org.testng.IResultMap;import org.testng.ISuite;import org.testng.ISuiteResult;import org.testng.ITestContext;import org.testng.ITestResult;import org.testng.xml.XmlSuite;import com.relevantcodes.extentreports.DisplayOrder;import com.relevantcodes.extentreports.ExtentReports;import com.relevantcodes.extentreports.ExtentTest;import com.relevantcodes.extentreports.LogStatus;import com.relevantcodes.extentreports.NetworkMode;import com.relevantcodes.extentreports.ReporterType;public class ExtentReporterNGListener implements IReporter{		private ExtentReports extent;			@Override	public void generateReport(List
xmlSuites, List
suites, String outputDirectory){ extent = new ExtentReports("report/ExtentReport.html", //生成报告文件名 true // true为覆盖已经生成的报告,false 在已有的报告上面生成,不会覆盖旧的结果 ,DisplayOrder.NEWEST_FIRST // 最新运行的用例结果在第一个 ,NetworkMode.OFFLINE //online 报告的一些样式文件需从网络下载,生成的报告文件小 offline 样式及js文件不会从网络下载,生成在文件中 ); extent.x("10.202.2.1",27017); extent.addSystemInfo("Host Name", "Anshoo"); extent.addSystemInfo("Environment", "QA"); extent.startReporter(ReporterType.DB, "report/"); //生成本地的DB数据文件 for (ISuite suite : suites) { Map
result = suite.getResults(); for (ISuiteResult r : result.values()) { ITestContext context = r.getTestContext(); buildTestNodes(context.getPassedTests(), LogStatus.PASS); buildTestNodes(context.getFailedTests(), LogStatus.FAIL); buildTestNodes(context.getSkippedTests(), LogStatus.SKIP); } } extent.flush(); extent.close(); } private void buildTestNodes(IResultMap tests, LogStatus status) { ExtentTest test; if (tests.size() > 0) { for (ITestResult result : tests.getAllResults()) { test = extent.startTest(result.getMethod().getMethodName()); test.setStartedTime(getTime(result.getStartMillis())); test.setEndedTime(getTime(result.getEndMillis())); for (String group : result.getMethod().getGroups()) test.assignCategory(group); if (result.getThrowable() != null) { // test.log(status, test.addScreenCapture("../img/"+result.getMethod().getMethodName()+".png")); test.log(status, result.getThrowable()); } else { test.log(status, "Test " + status.toString().toLowerCase() + "ed"); } extent.endTest(test); } } } private Date getTime(long millis) { Calendar calendar = Calendar.getInstance(); calendar.setTimeInMillis(millis); return calendar.getTime(); }

 

最后将此监听器添加入testng配置中,添加方法如下:

至此配置已经完毕,每次运行完测试后,请访问一下地址查看报告。

报告效果请看官方网站:

http://extentx.herokuapp.com/#/

就不上贴图了。大家自己去看。

转载于:https://www.cnblogs.com/llining/p/5669981.html

你可能感兴趣的文章
Zend Framework配置Nginx的rewrite
查看>>
『C#基础』C#导出Excel
查看>>
int和Integer的区别
查看>>
jquery 获取子元素的限制jquery
查看>>
ABAP Util代码
查看>>
C#中各种计时器
查看>>
python全栈 操作系统
查看>>
精确光源(Punctual Light Sources)
查看>>
数据迁移的应用场景与解决方案Hamal
查看>>
Docker容器的原理与实践 (下)
查看>>
poj 3750 小孩报数问题
查看>>
代码块。 单例
查看>>
HDU3591找零,背包
查看>>
摆脱jquery,用自己的JS库实现ajax功能
查看>>
win10 redis安装教程
查看>>
springboot整合curator实现分布式锁
查看>>
关于渐变属 gradient:
查看>>
android 入门-android Studio 配置
查看>>
字节流
查看>>
个人冲刺八
查看>>