博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
优化testng报告
阅读量:4616 次
发布时间:2019-06-09

本文共 1721 字,大约阅读时间需要 5 分钟。

背景

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

 

 

 

解决方案

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

参考:

          

 

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

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

 

 

转载于:https://www.cnblogs.com/jwentest/p/7073223.html

你可能感兴趣的文章
有效数字
查看>>
用正则表达式删除Dreamwear CS2/CS3编辑网页中多余空白行
查看>>
合并CSV文件.bat
查看>>
java Socket的accept()方法 不能连续获取数据原因
查看>>
python 给定数组任意组合等于一个定值的所有解
查看>>
结对-四则运算答题器-项目进度
查看>>
Forward团队-爬虫豆瓣top250项目-模块测试
查看>>
MVC开发之排球计分(一)排球计分规则说明
查看>>
Linux 16.04LTS 安装python 及pip
查看>>
weblogic之CVE-2016-3510反序列化分析
查看>>
chkconfig用法
查看>>
数据增强与transfer learning
查看>>
php 图像拼接
查看>>
最大公约数(gcd)和 最小公倍数(lcm)——辗转相除法
查看>>
国庆节第一天
查看>>
Maven学习(十四)-----Maven 构建配置文件
查看>>
12款有助于简化CSS3开发的工具
查看>>
订餐系统之获取淘宝外卖订单
查看>>
架构师速成8.3-可用性
查看>>
表达式求值(数据结构书上栈的应用之中的一个)
查看>>