前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >优化testng报告

优化testng报告

作者头像
千往
发布2018-01-24 10:41:14
6290
发布2018-01-24 10:41:14
举报
文章被收录于专栏:不想当开发的产品不是好测试

背景

搞过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内容,因此报告看起来好看又人性化

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2017-06-24 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 背景
  • 解决方案
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档