reportng定制修改

定制目的

最近接口测试和UI自动化测试都有用到reportng来做测试报告的展示,发现了几个不是很方便的地方:

  • 报告没有本地化的选项
  • 主页的测试结果显示的不够清晰
  • 测试详情中的结果是按照名称排列的,想用执行顺序显示
  • 测试结果中添加日志

Reportng源码地址

添加日志

测试结果添加日志,直接在测试代码中添加Reporter.log("reportng日志显示");
显示在report的Log Output中的效果:

显示在report的详情中的效果:

本地化修改

获取源码,修改reportng.properties文件,reportng.properties中的内容是键值对,修改后面的值为中文即可。

passed=通过

修改测试结果顺序

需要修改TestResultComparator类,参考链接

class TestResultComparator implements Comparator<ITestResult> {
	public int compare(ITestResult result1, ITestResult result2) {
		// 按照名称排序显示
		// return result1.getName().compareTo(result2.getName());

		// 按照运行时间排序显示
		int longresult2 = 0;
		if (result1.getStartMillis() < result2.getStartMillis()) {
			longresult2 = -1;
		} else {
			longresult2 = 1;
		}
		return longresult2;
	}
}

主页添加饼图显示

主页的饼图用的是ichart开源图形组件.
主页的概括显示在overview.html.vm页面当中,先在文件中导入ichart组件。

<script src='http://www.ichartjs.com/ichart.latest.min.js'></script>

添加饼图的标签

<div id='ichart-render'></div>

给通过总数,失败总数和跳过总数添加id属性

#if ($totalPassed > 0)
<td id="tpn" class="passed number">$totalPassed</td>
#else
<td id="tpn" class="zero number">0</td>
#end

#if ($totalSkipped > 0)
<td id="tsn" class="skipped number">$totalSkipped</td>
#else
<td id="tsn" class="zero number">0</td>
#end

#if ($totalFailed > 0)
<td id="tfn" class="failed number">$totalFailed</td>
#else
<td id="tfn" class="zero number">0</td>
#end

添加饼图显示的js代码

<script type='text/javascript'>
pcount=document.getElementById("tpn").innerHTML;
fcount=document.getElementById("tfn").innerHTML;
scount=document.getElementById("tsn").innerHTML;
$(function(){
     var chart = iChart.create({
           render:"ichart-render",
           800,
           height:400,
           background_color:"#fefefe",
           gradient:false,
           color_factor:0.2,
           border:{
                 color:"BCBCBC",
                 0
           },
           align:"center",
           offsetx:0,
           offsety:0,
           sub_option:{
                 border:{
                       color:"#BCBCBC",
                       1
                 },
                 label:{
                       fontweight:500,
                       fontsize:11,
                       color:"#4572a7",
                       sign:"square",
                       sign_size:12,
                       border:{
                             color:"#BCBCBC",
                             1
                       }
                 }
           },
           shadow:true,
           shadow_color:"#666666",
           shadow_blur:2,
           showpercent:false,
           column_"70%",
           bar_height:"70%",
           radius:"90%",
           subtitle:{
                 text:"",
                 color:"#111111",
                 fontsize:16,
                 font:"微软雅黑",
                 textAlign:"center",
                 height:20,
                 offsetx:0,
                 offsety:0
           },
           footnote:{
                 text:"",
                 color:"#111111",
                 fontsize:12,
                 font:"微软雅黑",
                 textAlign:"right",
                 height:20,
                 offsetx:0,
                 offsety:0
           },
           legend:{
                 enable:false,
                 background_color:"#fefefe",
                 color:"#333333",
                 fontsize:12,
                 border:{
                       color:"#BCBCBC",
                       1
                 },
                 column:1,
                 align:"right",
                 valign:"center",
                 offsetx:0,
                 offsety:0
           },
           coordinate:{
                 "80%",
                 height:"84%",
                 background_color:"#ffffff",
                 axis:{
                       color:"#a5acb8",
                       [1,"",1,""]
                 },
                 grid_color:"#d9d9d9",
                 label:{
                       fontweight:500,
                       color:"#666666",
                       fontsize:11
                 }
           },
           label:{
                 fontweight:500,
                 color:"#666666",
                 fontsize:11
           },
           type:"pie2d",
           data:[
                 {
                 name:"通过",
                 value:pcount,
                 color:"#44aa44"
           },{
                 name:"失败",
                 value:fcount,
                 color:"#ff4444"
           },{
                 name:"跳过",
                 value:scount,
                 color:"#FFD700"
           }
           ]
     });
     chart.draw();
});
</script>

饼图显示效果:

修改完后的代码地址

使用修改后的reportng

jar包下载

<!-- 依赖reportNg 关联testNg -->
		<dependency>
			<groupId>org.uncommons</groupId>
			<artifactId>reportng</artifactId>
			<version>1.1.5</version>
			<scope>system</scope>
			<exclusions>
				<exclusion>
					<groupId>org.testng</groupId>
					<artifactId>testng</artifactId>
				</exclusion>
			</exclusions>
			<systemPath>${project.basedir}/lib/reportng-1.1.5.jar</systemPath>
		</dependency>
		<dependency>
			<groupId>velocity</groupId>
			<artifactId>velocity</artifactId>
			<version>1.4</version>
		</dependency>
原文地址:https://www.cnblogs.com/xiaomingtx/p/5633584.html