简介

  前边通过宏哥的讲解和分享想必小伙伴们和童鞋们都已经见过testng框架生成的测试报告,是不是它的样子和长相实在是不敢让大家伙恭维。那么今天宏哥就当一回美容师,由宏哥来给它美美容;当一回外科医生,做一名整形医生。由宏哥来主刀,给它整整形。让她变得丰满、美丽、可爱一些。

本来面貌

执行完测试用例之后,会在项目的test-output(默认目录)下生成测试报告

打开index.html文件,测试结果摘要,包括:套件名、测试用例成功数、测试用例失败数、测试用例忽略数和testng.xml文件

简略测试报告

详细测试报告

测试用例都成功的话,测试结果以绿底标志:

测试用例有失败的话,测试结果以红底标志:

点击"Link"链接,可以查看testng.xml文件的内容:

详细的测试结果介绍:

套餐一(普通会员)

ReportNG 是一个配合TestNG运行case后自动帮你在test-output文件内生成一个相对较为美观的测试报告!
ReportNG 里面Log 是不支持中文的,我改过ReportNG.jar源码,具体方法看最下面,也可以找我直接要jar!
话不多说直接上

1、首先从GitHub拉取ReportNG源码,地址:https://github.com/dwdyer/reportng,下载好后解压。

2、导入到编辑器如Eclipse,注意:import的时候请选择以Maven项目import,请选择reportng-master目录下的reportng文件,作为新的project

(1)点击File->import

(2)选择Existing Maven Projects,点击Next

(3)选择解压好的ReportNG项目,点击Finish

(4)导入后的项目如图所示,导入后切记忙于修改源代码,就算你把代码改烂了也改不对,而且会报乱七八糟的错误,让你怀疑人生

(5)项目导入后,修改项目成如下图所示目录,且添加相应jar包到lib

3、修改原代码

(1)报告中乱码的解决办法,修改AbstractReporter中的generateFile这个方法中的代码如下

参考代码:

 OutputStream out = new FileOutputStream(file);
Writer writer = new BufferedWriter(new OutputStreamWriter(out,"utf-8"));

或者这样也可以:

 OutputStream out = new FileOutputStream(file);
Writer writer = new BufferedWriter(new OutputStreamWriter(out,ENCODING));

(2)修改测试报告名称,修改ReportMetadata中DEFAULT_TITLE

(3)修改默认generatedBy,修改reportng.properties中的generatedBy

(4)修改默认日期显示,修改ReportMetadata.java中的DATE_FORMAT,TIME_FORMAT

(5)修改pom.xml

<?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>reportng</groupId>
<artifactId>reportng</artifactId>
<version>1.8.8</version>
<dependencies>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>4.3.6</version>
</dependency> <dependency>
<groupId>org.apache.velocity</groupId>
<artifactId>velocity-engine-core</artifactId>
<version>2.0</version>
</dependency> <dependency>
<groupId>org.testng</groupId>
<artifactId>testng</artifactId>
<version>6.9.6</version>
</dependency> <dependency>
<groupId>org.uncommons</groupId>
<artifactId>reportng</artifactId>
<version>1.1.4</version>
<scope>test</scope>
<exclusions>
<exclusion>
<groupId>org.testng</groupId>
<artifactId>testng</artifactId>
</exclusion>
</exclusions>
</dependency> <dependency>
<groupId>com.google.inject</groupId>
<artifactId>guice</artifactId>
<version>3.0</version>
<!--<scope>test</scope>-->
</dependency>
</dependencies> <build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.18.1</version>
<configuration>
<properties>
<property>
<name>usedefaultlisteners</name>
<value>false</value>
</property>
<property>
<name>listener</name>
<value>org.uncommons.reportng.HTMLReporter, org.uncommons.reportng.JUnitXMLReporter</value>
</property>
</properties>
<!-- <suiteXmlFiles>
<suiteXmlFile>testng.xml</suiteXmlFile>
</suiteXmlFiles> -->
<workingDirectory>target/</workingDirectory>
</configuration>
</plugin>
</plugins>
</build>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
</project>

4.打包,pom.xml右击选择Run As->Maven install,

5.控制台显示BUILD SUCCESS,则构建成功,刷新当前项目,在target目录下会生成一个jar文件:reportng-1.8.8.jar

6.测试,新建一个测试项目(大家请随意),导入相应jar包,选择运行testng.xml,记得添加

  1. <listeners>
  2. <listener class-name="org.uncommons.reportng.HTMLReporter" />
  3. <listener class-name="org.uncommons.reportng.JUnitXMLReporter" />
  4. </listeners>

7.报告展示,修改后的jar包已上传到群共享,需要的小伙伴可以加群自己下载哦。

套餐二(VIP会员)

testng-xslt

testNG自带生成的测试报告不太美观,可以使用testng-xslt进行美化,步骤如下:

1、官网下载testng-xslt包,http://testng-xslt.googlecode.com/files/testng-xslt-1.1.zip

   亲测现在google可能访问不了,可到我的网盘里下载,链接: https://pan.baidu.com/s/1HC52IgKBRd9agQ1B8HyfVg 提取码: ferk

2、解压后的文件目录如下图所示:

3、复制testng-results.xsl(testng-xslt-1.1\src\main\resources)文件到test-output目录下

4、解压文件testng-xslt-1.1.2,把 lib 文件下的saxon-8.7.jar 和 SaxonLiason.jar 拷贝到项目的lib文件夹(若没有则新建)下,并导入到项目中(lib文件夹的路径必须放在test-output下,不然后面会影响生成构建文件)

5、安装ant,http://mirror.bit.edu.cn/apache/ant/binaries/apache-ant-1.9.4-bin.zip

Ant 下载安装配置使用教程
一、Ant 简介

1、Apache Ant 是一个Java库和命令行工具,其任务是将构建文件中描述的进程作为目标和扩展点相互依赖。Ant提供了许多内置任务,允许编译,组装,测试和运行Java应用程序。

2、Ant是用Java编写的。Ant的用户可以开发自己的包含Ant任务和类型的“antlibs”,并提供大量现成的商业或开源“antlibs”。

3、类似于 Maven ,统一构建的项目管理工具。

二、下载

1、当前最新版: http://mirror.bit.edu.cn/apache//ant/binaries/apache-ant-1.10.5-bin.zip

2、历史版本下载: https://archive.apache.org/dist/ant/binaries/

三、安装

1、解压 apache-ant-1.10.5-bin.zip

2、目录结构如下:

3、配置 ANT_HOME , Path , classpath

ANT_HOME = F:\soft\ant-1.10.5
Path = %ANT_HOME%\bin;
classpath = %ANT_HOME%\lib;

4、类似于 MAVEN_HOME , JAVA_HOME 的配置。

四、测试

1、 Win + R ---> cmd ---> 输入 ant , 出现 如下:

2、查看 ant 版本 : ant -version

6、在project目录下,新建build.xml文件,内容如下:

{name} :自己的项目名字;
{in}:对应的是testng生成报告的xml;(指定该路径无需创建)
{style}:对应的是testng生成报告的xsl;(指定该路径无需创建)
{out}:是要用testNG-xslt生成报告的文件名和路径;(可以创建新的文件也可以指定到test-output)
{expression}:是要用testNG-xslt生成报告的路径;
<project name="hongge" basedir="." >
<property name="lib.dir" value="lib" />
<path id="test.classpath" >
<!-- adding the saxon jar to your classpath -->
<fileset dir="${lib.dir}" includes="*.jar" />
</path>
<target name="transform" >
<!-- 需要根据自己的环境进行配置(将E:/workspace/testNG/替换成你自己project的目录) -->
<xslt in="F:/workspace/hongge/test-output/testng-results.xml" style="F:/workspace/hongge/test-output/testng-results.xsl"
out="F:/workspace/hongge/test-output/index1.html" >
<!-- 需要根据自己的环境进行配置(将E:/workspace/testNG/替换成你自己project的目录) -->
<param name="testNgXslt.outputDir" expression="F:/workspace/hongge/test-output/" />
<classpath refid="test.classpath" />
</xslt>
</target>
</project>

7、在cmd里,切换到project的目录,执行ant transform:

8、到配置的路径下,打开生成的文件index1.html,以图形化的界面展示测试结果:

小结

好了,今天分享就到这里。

有问题加入java自动化测试交流群:694280102

个人公众号                                                             微信群 (微信群已满100,可以加宏哥的微信拉你进群,请备注:进群)          

                                                                 

您的肯定就是我进步的动力。如果你感觉还不错,就请鼓励一下吧!记得点波 推荐 哦!!!(点击右边的小球即可!(^__^) 嘻嘻……)

Java自动化测试框架-04 - 来给你的测试报告化个妆整个形 - (上)(详细教程)的更多相关文章

  1. Java自动化测试框架-06 - 来给你的测试报告化个妆整个形 - (下)(详细教程)

    简介 经过上一次的化妆和整形,有客户提出需求能不能将那个普通会员的套餐再升级一下,再漂亮一点.所以这次咱们就来看看从哪里下刀可以使它变得再漂亮一点点. 上一篇文章修改了一些基本的ReportNG信息, ...

  2. Java自动化测试框架-03 - TestNG之Test Group篇 - 我们一起组团打怪升级(详细教程)

    简介 其实这篇文章的group宏哥在上一篇中就提到过,但是就是举例一笔带过的,因此今天专门有一篇文章来讲解Group的相关知识.希望大家茅塞顿开 ,有着更进一步认识和了解测试组. 一.Test Gro ...

  3. Java自动化测试框架-04 - TestNG之Test Method篇 - 道法自然,法力无边(详细教程)

    简介 按照上一篇的计划,这一篇给小伙伴们分享一下测试方法. 一.设置参数 测试方法是可以带有参数的.每个测试方法都可以带有任意数量的参数,并且可以通过使用TestNG的@Parameters向方法传递 ...

  4. Java自动化测试框架-01 - TestNG之入门篇 - 大佬的鸡肋,菜鸟的盛宴(详细教程)

    TestNG是什么? TestNG按照官方的定义: TestNG是一个测试框架,其灵感来自JUnit和NUnit,但引入了一些新的功能,使其功能更强大,使用更方便. TestNG是一个开源自动化测试框 ...

  5. Java自动化测试框架-02 - TestNG之理论实践 - 纸上得来终觉浅,绝知此事要躬行(详细教程)

    理论 TestNG,即Testing, NextGeneration,下一代测试技术,是一套根据JUnit 和NUnit思想而构建的利用注释来强化测试功能的一个测试框架,即可以用来做单元测试,也可以用 ...

  6. Java自动化测试框架-07 - TestNG之Factory篇 - 欢快畅游梦幻工厂(详细教程)

    简介 最近忙着装修博客园,没时间更新文章,今天终于抽出时间把上次写的一半的文章给写完了,新的博客园风格,希望大家喜欢.今天继续介绍testng的相关知识--工厂. 工厂允许你动态的创建测试.例如,假设 ...

  7. Java自动化测试框架-08 - TestNG之并行性和超时篇 (详细教程)

    一.并行性和超时 您可以指示TestNG以各种方式在单独的线程中运行测试. 可以通过在suite标签中使用 parallel 属性来让测试方法运行在不同的线程中.这个属性可以带有如下这样的值: 二.并 ...

  8. Java自动化测试框架-09 - TestNG之依赖注入篇 (详细教程)

    1.-依赖注入 TestNG支持两种不同类型的依赖项注入:本机(由TestNG本身执行)和外部(由诸如Guice的依赖项注入框架执行). 1.1-本机依赖项注入 TestNG允许您在方法中声明其他参数 ...

  9. Java自动化测试框架-10 - TestNG之测试结果篇

    1.-测试结果 1.1-成功,失败和断言 测试被认为是成功的,如果它不引发任何异常完成,还是它扔的预期异常(请参阅文档expectedExceptions属性上找到的@Test注释). 您的测试方法通 ...

随机推荐

  1. 【iOS】得到当前年、月、周的第一天和最后一天

    在写一个记账软件,其中有个统计功能.比如,统计某月的支出,需要知道某天所在的月的第一天和最后一天,以便从数据库中根据时间取数据. 话不多说,上代码: // // EBDate.h // ChargeM ...

  2. Spring Boot 2.x基础教程:构建RESTful API与单元测试

    首先,回顾并详细说明一下在快速入门中使用的@Controller.@RestController.@RequestMapping注解.如果您对Spring MVC不熟悉并且还没有尝试过快速入门案例,建 ...

  3. 【Django】一对多表结构

    1.创建project数据库表 INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.co ...

  4. 【IT技术概念】WebAPI与传统的WebService有哪些不同?

    在.net平台下,有大量的技术让你创建一个HTTP服务,像Web Service,WCF,现在又出了Web API.在.net平台下,你有很多的选择来构建一个HTTP Services.我分享一下我对 ...

  5. 如果有人问你 JFinal 如何集成 EhCache,把这篇文章甩给他

    废话不多说,就说一句:在 JFinal 中集成 EhCache,可以提高系统的并发访问速度. 可能有人会问 JFinal 是什么,EhCache 是什么,简单解释一下. JFinal 是一个基于Jav ...

  6. malformed header from script. Bad header的解决方法

    今天配了CGI服务器,打开CGI报错: [Wed Jun 02 13:57:21 2010] [error] [client 192.168.0.1] malformed header from sc ...

  7. HTML5 video视频字幕的使用和制作

    一.video支持视频格式: 以下是三种最常用的格式 1. ogg格式:带有Theora视频编码(免费)+Vorbis音频编码的Ogg文件(免费) 支持的浏览器:firefox.chrome.oper ...

  8. python编程基础之九

    原码, 反码, 补码原码,即用二进制表示正数: 原码 == 反码 == 补码负数: 反码: 原码除符号位之外全部取反 补码: 反码 + 1 位运算:运算符 作用 & 按位与 | 按位或 ^ 按 ...

  9. Kubernetes中的PV和PVC是啥

    K8S引入了一组叫作Persistent Volume Claim(PVC)和Persistent Volume(PV)的API对象,大大降低了用户声明和使用持久化Volume的门槛. 在Pod的Vo ...

  10. 最长上升子序列 LIS nlogn

    给出一个 1 ∼ n (n ≤ 10^5) 的排列 P 求其最长上升子序列长度 Input 第一行一个正整数n,表示序列中整数个数: 第二行是空格隔开的n个整数组成的序列. Output 最长上升子序 ...