Java自动化测试框架-06 - 来给你的测试报告化个妆整个形 - (下)(详细教程)
简介
经过上一次的化妆和整形,有客户提出需求能不能将那个普通会员的套餐再升级一下,再漂亮一点。所以这次咱们就来看看从哪里下刀可以使它变得再漂亮一点点。
上一篇文章修改了一些基本的ReportNG信息,链接:Java自动化测试框架-05 - 来给你的测试报告化个妆整个形 - (上),本文将继续带大家进行修改,重点是添加饼图,将从普通会员升级到VIP会员。
经过上次的整容恢复的差不多了,宏哥继续带领下伙伴们和同学们折腾,给reportng来个二次开刀。
第一刀
1、修改测试结果顺序,修改TestResultComparator类compare方法

2、参考代码
//=============================================================================
// Copyright 2006-2013 Daniel W. Dyer
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
//=============================================================================
package org.uncommons.reportng; import java.util.Comparator;
import org.testng.ITestResult; /**
* Comparator for sorting TestNG test results alphabetically by method name.
* @author Daniel Dyer
*/
class TestResultComparator implements Comparator<ITestResult>
{
// public int compare(ITestResult result1, ITestResult result2)
// {
// return result1.getName().compareTo(result2.getName());
// }
public int compare(ITestResult result1, ITestResult result2)
{
//按照名称排序显示
// return result1.getName().compareTo(result2.getName());
//按照运行时间排序显示
int longresult2 = 0;
if(result2.getStartMillis()<result2.getStartMillis()){
longresult2 = -1;
}else{
longresult2 = 1;
}
return longresult2;
}
}
第二刀
1、添加饼图,在overview.html.vm添加

2、参考代码
<script src='http://www.ichartjs.com/ichart.latest.min.js'></script>
第三刀
1、继续在overview.html.vm添加

2、参考代码
<div id='ichart-render'></div>
第四刀
1、给通过总数,失败总数和跳过总数添加id属性<td class="passRate suite">之前添加,找到#if($totalPassed>0),为td标签,添加id属性,如下:

第五刀
1、添加饼图js代码,添加在</body>之前即可

2、参考代码
<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",
width:800,
height:400,
background_color:"#fefefe",
gradient:false,
color_factor:0.2,
border:{
color:"BCBCBC",
width:0
},
align:"center",
offsetx:0,
offsety:0,
sub_option:{
border:{
color:"#BCBCBC",
width:1
},
label:{
fontweight:500,
fontsize:11,
color:"#4572a7",
sign:"square",
sign_size:12,
border:{
color:"#BCBCBC",
width:1
}
}
},
shadow:true,
shadow_color:"#666666",
shadow_blur:2,
showpercent:false,
column_width:"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",
width:1
},
column:1,
align:"right",
valign:"center",
offsetx:0,
offsety:0
},
coordinate:{
width:"80%",
height:"84%",
background_color:"#ffffff",
axis:{
color:"#a5acb8",
width:[1,"",1,""]
},
grid_color:"#d9d9d9",
label:{
fontweight:500,
color:"#666666",
fontsize:11
}
},
label:{
fontweight:500,
color:"#666666",
fontsize:11
},
type:"pie2d",
data:[
{
name:"Passed",
value:pcount,
color:"#44aa44"
},{
name:"Failed",
value:fcount,
color:"#ff4444"
},{
name:"Skipped",
value:scount,
color:"#FFD700"
}
]
});
chart.draw();
});
</script>
包扎缝合
这次的包扎缝合宏哥给你们换另一个方式通过ant来导出jar。ant的安装和配置在上一篇大家都可以看到的,这里就不赘述了。
1、进入代码目录,将其build.xml的jar包版本修改成1.1.8

2、导出jar包。成功。

3、到哪个目录下找到jar包。

4、新建项目引用jar包。

术后恢复效果图:
小结
1、小伙伴可能按照宏哥的步骤操作到最后也会一脸懵逼的发现我的饼图在哪里,给谁吃掉了。来跟随宏哥看看,到底是被谁吃掉了。
(1)首先宏哥看了一看修改的代码,复查了一遍没有问题。
(2)完了宏哥突然发现有一段引入图标插件的js的代码:<script src='http://www.ichartjs.com/ichart.latest.min.js'></script>是通过一个网址引入的就是在动第二刀的时候,然后宏哥就试着访问网址:http://www.ichartjs.com/ichart.latest.min.js,结果悲剧了访问到如下:

(3)到这里宏哥就确定引入的JS有问题了,所以饼图没有出现那么我们网址访问不到,那么就下载一个到本地,在本地访问

(4)完成以后,宏哥就开始导出jar包,然后引入jar包以后,仍然没有出现饼图。
(5)完了宏哥就抱着试一试的心理,把js拷贝到测试报告的文件夹中,再次看测试报告。

(6)饼图出现了,原来是js还是没有被引入,先前做的仅仅是将js引入jar包,而没有引入测试报告,要想引入测试报告还的修改一个地方的代码,仿照上边CSS和JS的引入,如下:

(7)再次导出jar包,测试报告的饼图就出现了。
2、好了,关于这个就到这里了。
有问题加入java自动化测试交流群:694280102
个人公众号 微信群 (微信群已满100,可以加宏哥的微信拉你进群,请备注:进群)

您的肯定就是我进步的动力。如果你感觉还不错,就请鼓励一下吧!记得点波 推荐 哦!!!(点击右边的小球即可!(^__^) 嘻嘻……)

Java自动化测试框架-06 - 来给你的测试报告化个妆整个形 - (下)(详细教程)的更多相关文章
- Java自动化测试框架-04 - 来给你的测试报告化个妆整个形 - (上)(详细教程)
简介 前边通过宏哥的讲解和分享想必小伙伴们和童鞋们都已经见过testng框架生成的测试报告,是不是它的样子和长相实在是不敢让大家伙恭维.那么今天宏哥就当一回美容师,由宏哥来给它美美容:当一回外科医生, ...
- Java自动化测试框架-03 - TestNG之Test Group篇 - 我们一起组团打怪升级(详细教程)
简介 其实这篇文章的group宏哥在上一篇中就提到过,但是就是举例一笔带过的,因此今天专门有一篇文章来讲解Group的相关知识.希望大家茅塞顿开 ,有着更进一步认识和了解测试组. 一.Test Gro ...
- Java自动化测试框架-01 - TestNG之入门篇 - 大佬的鸡肋,菜鸟的盛宴(详细教程)
TestNG是什么? TestNG按照官方的定义: TestNG是一个测试框架,其灵感来自JUnit和NUnit,但引入了一些新的功能,使其功能更强大,使用更方便. TestNG是一个开源自动化测试框 ...
- Java自动化测试框架-02 - TestNG之理论实践 - 纸上得来终觉浅,绝知此事要躬行(详细教程)
理论 TestNG,即Testing, NextGeneration,下一代测试技术,是一套根据JUnit 和NUnit思想而构建的利用注释来强化测试功能的一个测试框架,即可以用来做单元测试,也可以用 ...
- Java自动化测试框架-04 - TestNG之Test Method篇 - 道法自然,法力无边(详细教程)
简介 按照上一篇的计划,这一篇给小伙伴们分享一下测试方法. 一.设置参数 测试方法是可以带有参数的.每个测试方法都可以带有任意数量的参数,并且可以通过使用TestNG的@Parameters向方法传递 ...
- Java自动化测试框架-07 - TestNG之Factory篇 - 欢快畅游梦幻工厂(详细教程)
简介 最近忙着装修博客园,没时间更新文章,今天终于抽出时间把上次写的一半的文章给写完了,新的博客园风格,希望大家喜欢.今天继续介绍testng的相关知识--工厂. 工厂允许你动态的创建测试.例如,假设 ...
- Java自动化测试框架-08 - TestNG之并行性和超时篇 (详细教程)
一.并行性和超时 您可以指示TestNG以各种方式在单独的线程中运行测试. 可以通过在suite标签中使用 parallel 属性来让测试方法运行在不同的线程中.这个属性可以带有如下这样的值: 二.并 ...
- Java自动化测试框架-09 - TestNG之依赖注入篇 (详细教程)
1.-依赖注入 TestNG支持两种不同类型的依赖项注入:本机(由TestNG本身执行)和外部(由诸如Guice的依赖项注入框架执行). 1.1-本机依赖项注入 TestNG允许您在方法中声明其他参数 ...
- Java自动化测试框架-10 - TestNG之测试结果篇
1.-测试结果 1.1-成功,失败和断言 测试被认为是成功的,如果它不引发任何异常完成,还是它扔的预期异常(请参阅文档expectedExceptions属性上找到的@Test注释). 您的测试方法通 ...
随机推荐
- Spring 梳理 - WebMvcConfigurerAdapter详解
参考:https://blog.csdn.net/weixin_43453386/article/details/83623242
- SUSE CaaS Platform 4 - 使用 Ceph RBD 作为持久存储 (静态)
1.所有节点安装 # zypper -n in ceph-common 复制 ceph.conf 到 worker 节点上 # scp admin:/etc/ceph/ceph.conf /etc/c ...
- 【solved】must have one register DataBase alias named `default`
beego在初始化MySQL数据库时报错处理 1.报错提示: ... [ORM]2019/10/11 08:42:52 register db Ping `default`, dial tcp 192 ...
- JavaSE----02.Java语言基础
02.Java语言基础 1.关键字 Java关键字是电脑语言里事先定义的,有特别意义的标识符,有时又叫保留字,还有特别意义的变量.Java的关键字对Java的编译器有特殊的意义,他们用来表示一 ...
- 我又不是你的谁--java instanceof操作符用法揭秘
背景故事 <曾经最美>是朱铭捷演唱的一首歌曲,由陈佳明填词,叶良俊谱曲,是电视剧<水晶之恋>的主题曲.歌曲时长4分28秒. 歌曲歌词: 看不穿你的眼睛 藏有多少悲和喜 像冰雪细 ...
- Kafka常用运维操作
创建主题kafka-topics.sh --zookeeper localhost:2181 --create --topic my-topic --replication-factor 3 --pa ...
- java之ThreadLocal详解
一.ThreadLocal简介 ThreadLocal是线程的局部变量,是每一个线程所单独持有的,其他线程不能对其进行访问,通常是类中的private static字段. 我们知道有时候一个对象的变量 ...
- Git版本控制之ubuntu搭建Git服务器
Git是一个开源的分布式版本控制系统,可以有效.高效的处理从很小到非常大的项目版本管理.使得开发者可以通过克隆(git clone),在本地机器上拷贝一个完整的Git仓库,也可以将代码提交到Git服务 ...
- 使用Jmeter并发websocket协议项目
1.安装Jmeter 网址:http://jmeter.apache.org/下载 2.启动Jmeter \apache-jmeter-5.1.1\bin\jmeter.bat 3.安装‘Plugin ...
- 8 个 Python 实用脚本,【速】收藏备用!
脚本写的好,下班下得早!程序员的日常工作除了编写程序代码,还不可避免地需要处理相关的测试和验证工作. 例如,访问某个网站一直不通,需要确定此地址是否可访问,服务器返回什么,进而确定问题在于什么.完成这 ...
