• 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>
    
  • 相关阅读:
    Centos8 yum 源不可用
    Docker 容器开启SSH
    kubernetes calico 启动异常,无法访问etcd
    JEEGC相关笔记
    JS 的加减乘除 bobo
    go gin 项目热部署
    C#命名规范
    go 的定时器
    golang gin的安装和引入
    《十分钟冥想》摘要
  • 原文地址:https://www.cnblogs.com/xiaomingtx/p/5633584.html
Copyright © 2020-2023  润新知