我们在进行自动化测试时,往往需要有相应的测试报告,比如junit,testng,reportng等等,有会有自带的测试报告,那为什么我要在这边提ExtentReports?首先,我们来看看其它几种测试报告是什么样子的

1.junit

  

  2.testng

  

  3.reportng

  

  这些自带的报告不够美观,可读性差,这样的报告拿出去估计没人愿意看吧,当然我们只是谈以上几种报告,如果要得到非常美观的报告只能自己动手去做了,这就要有良好的编码功底。费话不多说我们再来看看今天要讲的ExtentReports,上图先

                              图一

图二

图三

  ExtentReports究竟是什么?让我们来看看,官方地址:http://extentreports.relevantcodes.com/,ExtentReports是由Anshoo Arora创造的一个基于HTML5报告,它提供了Java与.NET类库,非常容易使用和创建出漂亮的自动化测试报告。既可以显示测试测试的Summary与步骤详细信息(状态、错误等)也提供分析Dashbord,这些页面使用Tab标签链接进行分离方便快速切换查看等优点。我在这边用的是2.41.1版本,但报告显示的却是2.41.0,这个后面有空再看,不影响本次项目。先去官网下载extentreports-java-v2.41.1.jar

  我们新建一个maven项目,在pom.xml中添加

  <!-- https://mvnrepository.com/artifact/com.aventstack/extentreports -->
  <dependency>
  <groupId>com.aventstack</groupId>
  <artifactId>extentreports</artifactId>
  <version>2.41.1</version>
  </dependency>

  1.初始化一些ExtentReports,其中配置了报告的生成路径,以及一些其他一些信息,这里为了在监听中调用extent我在这里写了一个get方法

  2.重写testng监听

  

  上面是把extentreports的报告的初始方法写在driver的初始方法中,写报告的方法在testng的 onTest中,这次将这些方法全都拆出来,写在一个方法类中,这个类重现实现了testng IReporter接口中的 generateReport 方法同时加入了失败自动截图方法。

  1.首先说一下自动截图方法的实现(截图实现类):

  2.为了在testng 的监听中调用截图方法,所以封装了一个BaseTestcase类 。

  3.实现extentreports生成的监听类ExtentReporterNGListener

  4.testng.xml 文件配置:

  下面我们再说一下extent的一个服务 extentX,这是一个web程序,可以读取数据库(mongodb、redis)中的数据,来生成报告,只要我们把测试的数据都存储在数据库中,就会看到一个很完美的集合报告,先下载安装node.js和mongodb,然后安装两个软件,node.js安装比较简单,这边就不介绍了,我们来看下安装mongodb,下载mongodb安装文件,安装完成后,在根目录下新建db文件夹,用来存放mongodb的数据库文件,执行以下命令(D:\Program Files\MongoDB\Server\3.2\bin>mongod -dbpath "D:\Program Files\MongoDB\db"),启动mongodb。你也可以在浏览器中查看mongodb是否启动。

下面我们来安装extentX,下载地址:https://github.com/anshooarora/extentx,下载完成后解压,先进入connections.js,修改以下内容

extent: {
  adapter: 'sails-mongo',
  host: 'localhost', // host where MongoDB is running
  port: 27017, // port where MongoDB is running
  database: 'extent'
}

命令行进入到extentx根目录,执行以下命令:npm install,安装进程比较慢,慢慢等。

以上操作都完成后我们直接运行testng.xml,下面是eclipse控制台显示的内容和cmd命令行显示的内容

数据库中如下图所示

注:参考文章地址:http://www.cnblogs.com/llining/p/5669981.html,作者:笑笑唔莱

自动化测试报告浅谈之ExtentReports的更多相关文章

  1. Python测试开发-浅谈如何自动化生成测试脚本

    Python测试开发-浅谈如何自动化生成测试脚本 原创: fin  测试开发社区  前天 阅读文本大概需要 6.66 分钟. 一 .接口列表展示,并选择 在右边,点击选择要关联的接口,区分是否要登录, ...

  2. 浅谈Android应用保护(一):Android应用逆向的基本方法

    对于未进行保护的Android应用,有很多方法和思路对其进行逆向分析和攻击.使用一些基本的方法,就可以打破对应用安全非常重要的机密性和完整性,实现获取其内部代码.数据,修改其代码逻辑和机制等操作.这篇 ...

  3. 浅谈HTML5单页面架构(一)——requirejs + angular + angular-route

    心血来潮,打算结合实际开发的经验,浅谈一下HTML5单页面App或网页的架构. 众所周知,现在移动Webapp越来越多,例如天猫.京东.国美这些都是很好的例子.而在Webapp中,又要数单页面架构体验 ...

  4. 浅谈大型web系统架构

    动态应用,是相对于网站静态内容而言,是指以c/c++.php.Java.perl..net等服务器端语言开发的网络应用软件,比如论坛.网络相册.交友.BLOG等常见应用.动态应用系统通常与数据库系统. ...

  5. 【转载】浅谈游戏开发之2D手游工具

    浅谈游戏开发之2D手游工具 来源:http://www.gameres.com/459713.html 游戏程序 平台类型: iOS Android  程序设计: 其它  编程语言:   引擎/SDK ...

  6. 浅谈html5网页内嵌视频

    更好的阅读体验:浅谈html5网页内嵌视频 如今在这个特殊的时代下:flash将死未死,微软和IE的历史问题,html5标准未定,苹果和谷歌的闭源和开源之争,移动互联网的大势所趋,浏览器各自为战... ...

  7. 转:浅谈大型web系统架构

    浅谈大型web系统架构 动态应用,是相对于网站静态内容而言,是指以c/c++.php.Java.perl..net等服务器端语言开发的网络应用软件,比如论坛.网络相册.交友.BLOG等常见应用.动态应 ...

  8. Python 浅谈注释的重要性

    最近参加了一个比赛,然后看到队友编程的代码,我觉得真的是难以下咽,几乎每个字符都要咨询他,用老师的话来说,这就是山炮编程员,所以此时的我意识到写一篇关于注释程序的重要性了,因此特地的写一篇文章帮助大家 ...

  9. AngularJS进阶(二十五)requirejs + angular + angular-route 浅谈HTML5单页面架构

    requirejs + angular + angular-route 浅谈HTML5单页面架构 众所周知,现在移动Webapp越来越多,例如天猫.京东.国美这些都是很好的例子.而在Webapp中,又 ...

随机推荐

  1. eclipse智能提示报错(to avoid the message, disable the...)

    然后这里可能会再报别的错误  我的做法是   再重新将 code recommenders 打开 ********************************** 为什么会出现 这样错误呢 ? 简 ...

  2. Angular 惰性路由

    根路由上的一个 loadChildren 属性,设置为一个字符串.这样就是惰性路由了. angular6 这样写:loadChildren: './background-check/backgroun ...

  3. ubuntu14.04 caffe

    1.显卡驱动 ubuntu nvidia 940m 使用sudo ubuntu-drivers devices 查看推荐的驱动版本 //sudo add-apt-repository ppa:mama ...

  4. 通用http状态码

    400:Bad Request 表示客户端发出的请求不支持或无法识别,这通常是并未使用正确的请求语法.例如post或者put请求中资源的某个字段被设置为空的话,这将会导致一个Bad Request响应 ...

  5. 私服nexus的权限问题,带admin和带view的区别

    admin和view的区别只找到了这个解释: https://blog.csdn.net/tian_111222333/article/details/100159983 最终得出答案,我只需要给他们 ...

  6. php定界符介绍

    php界定符就是为了照样输出内容.它的格式如下: <<<EOF ...... EOF; 其中EOF是自定义的变量,但要成对出现! 首先附上一段php代码: <?php $a = ...

  7. React/动态绑定class

    第一种 字符串拼接 <i className={["iconfont"+" "+item.icon]} ></i> 第二种 有判断条件的 ...

  8. Vscode ftp

    sftp的插件,作者是liximomo 安装插件: 在Vscode的商店中搜索sftp扩展 配置: 一般在开发项目时,总是有多个项目在同时开发.如果要为单一的项目配置的话,就需要打开此项目,快捷键ct ...

  9. 如何搭建一个基于nuxt.js的项目

    介绍 nuxt.js(中文官方文档)是vue.js的一个通用型应用框架,有了之前搭建vue项目的过程之后,搭建一个nuxt项目就会十分简单. 搭建步骤 1.打开命令提示符,进入到相关文件夹下: 2.使 ...

  10. 解决spring-boot-maven-plugin插件打包,springboot启动时报找不到主main问题

    一:遇到的问题及解决方法 最近在搭建一个新项目时,使用spring-boot-maven-plugin插件打包,springboot项目在发布后启动时遇到找不到主main问题. 遇到这个问题当时感觉本 ...