优化testng报告

简介: 背景 搞过testng的同学都知道,testng自带的报告非常丑,而且有些字段的展示很不人性化,所以需要优化下报告       解决方案 尝试过一下开源的jar包,如ReportNG,奈何和目前使用的allure框架冲突,只能选择其他方法,google后发现可以重写testNG的生成...

背景

搞过testng的同学都知道,testng自带的报告非常丑,而且有些字段的展示很不人性化,所以需要优化下报告

 

 

 

解决方案

尝试过一下开源的jar包,如ReportNG,奈何和目前使用的allure框架冲突,只能选择其他方法,google后发现可以重写testNG的生成报告的接口来实现自定义的报告,美化方面想到了直接套用bootstrap的框架

参考:https://stackoverflow.com/questions/19564862/customizing-summary-section-of-testng-emailable-report

          http://www.bootcss.com/

 

 首先尝试获取我们需要的关键信息,可以获取到我们想要的用例数量,通过个数,失败个数,跳过个数,类名,方法名,异常报错,时间

for  (ISuite suite : suites) {
             Map<String, ISuiteResult> tests = suite.getResults();
             for  (ISuiteResult r : tests.values()) {
                 ITestContext overview = r.getTestContext();
                 System.err.println( "suite: "  + overview.getName());
                 System.err.println( "Stard Time: " +overview.getStartDate());
                 System.err.println( "End Time: " +overview.getEndDate());
 
                 System.err.println( "all methods num : " +overview.getAllTestMethods().length);
                 
                 //passed
                 System.err.println( "passed: "  + overview.getPassedTests().size());
                 Set<ITestResult> passedSet = overview.getPassedTests().getAllResults();
                 for (ITestResult p : passedSet){
                     System.err.println( "class: "  +p.getTestClass().getName() +  " | method: " +p.getName());
                 }
 
                 //failed
                 System.err.println( "failed: "  + overview.getFailedTests().size());
                 Set<ITestResult> failedSet = overview.getFailedTests().getAllResults();
                 for (ITestResult f : failedSet){
                     System.err.println( "class: "  +f.getTestClass().getName()+  " | method: " +f.getName() +  " | error: " + f.getThrowable());
                 }
                 
                 //skipped
                 System.err.println( "skipped: "  + overview.getSkippedTests().size());
                 Set<ITestResult> skippedSet = overview.getSkippedTests().getAllResults();
                 for (ITestResult s : skippedSet){
                     System.err.println( "---- "  +s.getName() );
                     System.err.println(s.getThrowable());
                 }
                 System.err.println( "==================================" );
             }
             
         }

然后将获取到的数据写到一个html文件中,css样式采用放在html中, 类似下图

 

生成的html文件中包含了我们期望的数据,和bootstrap的css内容,因此报告看起来好看又人性化

 

 

虽千万人,吾往矣!
目录
打赏
0
0
0
0
3
分享
相关文章
Jacoco的覆盖率原理
JaCoCo(Java Code Coverage)是一种广泛使用的代码覆盖率工具,通过在字节码中插入探针(Probe)来收集覆盖率信息。
212 5
Jacoco的覆盖率原理
在Java项目中集成单元测试与覆盖率工具
在Java项目中集成单元测试与覆盖率工具
利用JaCoCo统计接口测试中代码覆盖率
做接口测试,很多时候都会听到,你接口测试的覆盖率是多少?很多人会回答80%,你怎么统计的,他说覆盖了80%的需求。这个回答没有错误,但是片面,我们不能只考虑需求的覆盖率,还有业务的覆盖率,场景的覆盖率,接口的覆盖率,代码的覆盖率等,本文介绍接口测试的代码覆盖率。那么我们来看看如何是实现的。
利用JaCoCo统计接口测试中代码覆盖率
如何编写高质量的缺陷报告
本文介绍一些技巧和实践方法,来帮助测试人员编写高质量的缺陷报告。因为不同的项目团队对测试人员有不同的期望,读者在采纳这些基本实践时,需要做一些因地制宜的变化。
272 0
SpringCloud项目编译打包执行单元测试(修复单元测试数量为0)-流水线sonarqube扫描jacoco插件展示覆盖率
SpringCloud项目编译打包执行单元测试(修复单元测试数量为0)-流水线sonarqube扫描jacoco插件展示覆盖率
Unittest接口测试生成报告和日志方法
Unittest接口测试生成报告和日志方法
194 0
用Ant批量运行TestNG测试用例,并配合Reportng实现报告美化
用Ant批量运行TestNG测试用例,并配合Reportng实现报告美化
用Ant批量运行TestNG测试用例,并配合Reportng实现报告美化

热门文章

最新文章

AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等