首页 > 编程语言 >Java自动化测试框架-05 - 来给你的测试报告化个妆整个形 - (上)(详细教程)

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

时间:2024-08-11 12:55:14浏览次数:15  
标签:Java 测试报告 05 jar testng ant reportng apache org

1.简介

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

2.本来面貌

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

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

2.1简略测试报告

2.2详细测试报告

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

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

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

详细的测试结果介绍:

3.套餐一(普通会员)

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包已上传到群共享,需要的小伙伴可以加群自己下载哦。

4.套餐二(VIP会员)

testng-xslt

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

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

   亲测现在google可能访问不了,可到我的网盘里下载,链接: 百度网盘 请输入提取码 提取码: 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,以图形化的界面展示测试结果:

5.小结

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

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

  每天学习一点,今后必成大神-

往期推荐(由于跳转参数丢失了,所有建议选中要访问的右键,在新标签页中打开链接即可访问)或者微信搜索: 北京宏哥  公众号提前解锁更多干货。

Appium自动化系列,耗时80天打造的从搭建环境到实际应用精品教程测试

Python接口自动化测试教程,熬夜87天整理出这一份上万字的超全学习指南

Python+Selenium自动化系列,通宵700天从无到有搭建一个自动化测试框架

Java+Selenium自动化系列,仿照Python趁热打铁呕心沥血317天搭建价值好几K的自动化测试框架

Jmeter工具从基础->进阶->高级,费时2年多整理出这一份全网超详细的入门到精通教程

Fiddler工具从基础->进阶->高级,费时100多天吐血整理出这一份全网超详细的入门到精通教程

Pycharm工具基础使用教程

标签:Java,测试报告,05,jar,testng,ant,reportng,apache,org
From: https://blog.csdn.net/qq_23827149/article/details/141059421

相关文章

  • JavaL1-07_综合练习
    练习一:需求:    机票价格按照淡季旺季、头等舱和经济舱收费、输入机票原价、月份和头等舱或经济舱。    按照如下规则计算机票的价格:旺季(5~10月)头等舱9折,经济舱8.5折,淡季(11月~来年4月)头等舱7折,经济舱6.5折。代码示例:packagecom.itheima.test;importj......
  • 【Java毕设选题推荐】基于SpringBoot的springbootOA公文发文管理系统
    前言:我是IT源码社,从事计算机开发行业数年,专注Java领域,专业提供程序设计开发、源码分享、技术指导讲解、定制和毕业设计服务......
  • 【Java毕设选题推荐】基于SpringBoot的协同过滤算法美食推荐小程序
    前言:我是IT源码社,从事计算机开发行业数年,专注Java领域,专业提供程序设计开发、源码分享、技术指导讲解、定制和毕业设计服务......
  • Java - 多线程
    三种实现方式常用成员方法1.线程name默认“Thread-”+"序号"2.可以通过重写构造方法在创建时给线程命名线程的生命周期与状态同步代码块格式synchronized(锁对象){操作共享数据的代码}1.锁对象随机,但只要是有static修饰的唯一对象,一般写本类class文件,如MyTh......
  • 节假日配置初始化 redis缓存方案及@PostConstruct注解,Cache方案GuavaUtils.java工具类
    节假日配置初始化redis缓存方案及@PostConstruct注解,Cache方案GuavaUtils.java工具类启动报错:本机,在jenkins上面没有报错?包括嵌套的注入Beanjava静态代码块和spring@value等注解注入顺序https://www.cnblogs.com/oktokeep/p/15530697.html/***节假日配置初始化redis缓存......
  • Java开发环境安装笔记
    目录JDK的版本Java8Java9Java11(LTS)Java17(LTS)Java21JDK的环境变量设置JAVAHOME和PATH环境变量CLASSPATH环境变量多个SDK版本切换又双叒叕换了一个电脑,又双叒叕得重新折腾各种软件的安装,记录一下吧...软件安装中,最麻烦的莫过于JAVA的编程环境安装了,Java运行环境区......
  • java.time.OffsetTime类
    java.time.OffsetTime类表示在ISO-8601日历系统中与UTC/Greenwich的偏移量的时间,例如:10:15:30+01:00。类声明以下是java.time.OffsetTime类的声明-publicfinalclassOffsetTimeextendsObjectimplementsTemporal,TemporalAdjuster,Comparable<OffsetTim......
  • java.time.OffsetDateTime类
    java.time.OffsetDateTime类表示ISO-8601日历系统中与UTC/Greenwich的偏移量的日期时间,例如2007-12-03T10:15:30+01:00。类声明以下是java.time.OffsetDateTime类的声明-publicfinalclassOffsetDateTimeextendsObjectimplementsTemporal,TemporalAdjust......
  • Java工具类封装微服务间HTTP通信
    在微服务架构中,服务之间通常通过HTTP协议进行通信。为了简化这一过程,我们可以创建一些工具类来封装HTTP请求的发送逻辑。本篇文章将介绍如何使用Java来创建这样的工具类,并分别演示使用ApacheHttpClient和SpringFramework中的RestTemplate来发送HTTPGET请求的方法。1.引言......
  • Java计算机毕业设计律所管理系统(开题报告+源码+论文)
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景:随着法律服务行业的快速发展,律师事务所面临着日益复杂的业务管理和运营挑战。传统的手工管理方式已难以满足律所高效、精准、透明的管理需求。律师的......