ReportNG测试报告模板定制
部分参考:http://tech.it168.com/a2013/0906/1530/000001530755_3.shtml
ReportNG提供了简单的方式来查看测试结果,并能对结果进行着色,还可以通过修改模板定制化内容,修改CSS来替换默认的输出样式等。为了使用ReportNG,首先我们要引入reportng-1.1.4.jar和velocity-dep-1.4.jar,或者直接导入其源代码,进行定制化。
一.增加项目名称、Android设备信息等数据。
在ReportMetadata.java文件增加以下内容(获得Android设备id和名称):
/**
* get Device UDID
*/
public String getDeviceUdid() {
List<String> list = getDeviceInfo();
String[] split = {"", "", ""};
for (int i = 0; i < list.size() - 1; i++) {
if (list.get(i).contains("model:")) {
split = list.get(i).split(" ");
}
} return split[0];
} /**
* get Device Name
*/
public String getDeviceName() {
List<String> list = getDeviceInfo();
int index = 0;
String[] split = {"", "", ""}; for (int i = 0; i < list.size() - 1; i++) {
if (list.get(i).contains("model:")) {
index = list.get(i).indexOf("model:");
split = list.get(i).substring(index + 6).split(" ");
}
} return split[0];
} public List<String> getDeviceInfo() {
List<String> list = new LinkedList<String>();
String line = "";
String command = "cmd /c adb devices -l";
try {
Process process = Runtime.getRuntime().exec(command);
BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream()));
while ((line = reader.readLine()) != null) {
list.add(line.toString());
}
process.waitFor(); } catch (IOException | InterruptedException e) {
e.getMessage();
} return list;
}
项目名称和服务器信息存储到xml文件中,这里继续在ReportMetadata.java文件读取xml:
/**
* 读取xml文件
* @param regInfoPath string 文件路径
*/
private static Map<String, String> parserXml(String regInfoPath) {
Map<String, String> temp = new LinkedHashMap<String, String>();
String path = System.getProperty("user.dir");
path += regInfoPath;
File inputXml = new File(path);
SAXReader saxReader = new SAXReader();
try {
Document document = saxReader.read(inputXml); //把文件读入到文档
Element employees = document.getRootElement(); //获取文档根节点
for(Iterator<?> i = employees.elementIterator(); i.hasNext();) {
Element employee = (Element) i.next();
for(Iterator<?> j = employee.elementIterator(); j.hasNext();) {
Element node = (Element) j.next();
String key = node.getName();
String value = node.getText();
temp.put(key, value);
}
}
} catch (DocumentException e) {
System.out.println(e.getMessage());
}
return temp;
} /**
* 返回节点value
* @param key
* @return
*/
public static String getXmlValue(String key) {
Map<String, String> init = parserXml("\\data\\init.xml");
return init.get(key);
} public static String getServer() {
return getXmlValue("project");
} public static String getXmlSetting() {
String temp = "";
if (getXmlValue("switch").equals("1")) {
return "线上环境";
} else if (getXmlValue("switch").equals("2")) {
return "测试环境";
} return temp;
}
到模板属性文件reportng.properties里添加模板属性:
project=Project:
setting=Server:
deviceUdid=Device Udid:
deviceName=Device Name:
createTime=Create Time:
然后到模板输出文件overview.html.vm里修改显示内容,meta为类对象,后面为调用方法:
<table id="info" align="right">
<tr>
<td><b>$messages.getString("project")</b> $meta.server</td>
</tr>
<tr>
<td><b>$messages.getString("setting")</b> $meta.xmlSetting</td>
</tr>
<tr>
<td><b>$messages.getString("deviceName")</b> $meta.deviceName</td>
</tr>
<tr>
<td><b>$messages.getString("deviceUdid")</b> $meta.deviceUdid </td>
</tr>
<tr>
<td><b>$messages.getString("createTime")</b> $meta.reportDate $meta.reportTime</td>
</tr>
</table>
二.修改模板中执行方法排序问题
模板中的方法排序是以字母顺序排序的,这里想要改成以方法的执行顺序排序,到TestResultComparator.java文件中修改以下位置:
public int compare(ITestResult result1, ITestResult result2)
{
int longresult2 = 0;
if (result1.getStartMillis() < result2.getStartMillis()) {
longresult2 = -1;
} else {
longresult2 = 1;
} return longresult2;
// return result1.getName().compareTo(result2.getName());
}
三.模板中增加Case异常截图,暂未研究。。
ReportNG测试报告修改后如图:

ReportNG测试报告模板定制的更多相关文章
- ReportNg 测试报告的定制修改【转】
前言 前段时间在Testerhome上面看到了测试报告生成系列之-------如何用 testNG 生成测试报告 简单的描述了一些测试报告的生成,接着有人在评论中回复说可以针对reportNg的测试报 ...
- ReportNG测试报告的定制修改(一)
目前笔者接触的自动化测试报告有两种,这两种都是开源的,第一种是ReportNG,第二种是ExtentReports,两种风格各异,ExtentReports自带饼图,页面很炫,但是我们今天讲的是Rep ...
- ReportNG测试报告的定制修改(二)
上一篇文章修改了一些基本的ReportNG信息,链接:https://www.cnblogs.com/mrjade/p/9912073.html,本文将继续带大家进行修改,重点是添加饼图 1.修改测试 ...
- Jenkins显示reportng测试报告
在搭建Jenkins自动化测试平台后,我们点击立即构建就可以运行测试用例了,但没有地方查看测试报告,现在写这篇博客总结怎么在Jenkins显示reportng测试报告. 在maven项目配置repor ...
- python接口自动化(五)--接口测试用例和接口测试报告模板(详解)
简介 当今社会在测试领域,接口测试已经越来越多的被提及,被重视,而且现在好多招聘信息要对接口测试提出要求.区别于传统意义上的系统级别测试,很多测试人员在接触到接口测试的时候,也许对测试执行还可以比较顺 ...
- python - HTMLTestRunner 测试报告模板设置
python - HTMLTestRunner 测试报告模板设置 优化模板下载地址: http://download.csdn.net/download/chinayyj2010/10039097 ...
- HttpRunner学习9--切换测试报告模板
前言 在HttpRunner中,给我们提供了 2 套测试报告模板,分别是 default_report_template.html 和 extent_report_template.html . 默认 ...
- Jmeter接口测试报告模板优化(续)
在之前的基础上又优化了一下: 1.增加了对接口响应时间段的统计,如小于0.5s的请求有多少,0.5-1s的有多少,大于1s的有多少.可以自行修改.且不同范围内的时间字体颜色不一样,便于区分. < ...
- Jmeter接口测试报告模板优化
优化后在接口报告的接口信息中,直接展示url,method,结果和响应时间,详情中展示请求和响应数据.具体如下: 模板文件 jmeter-results-detail-report_21.xsl: & ...
随机推荐
- Nginx各版本的区别
Nginx官网提供了三个类型的版本Mainline version:Mainline 是 Nginx 目前主力在做的版本,可以说是开发版Stable version:最新稳定版,生产环境上建议使用的版 ...
- [WPF]静态资源(StaticResource)和动态资源(DynamicResource)
一.文章概述 本演示介绍WPF基本采用静态和动态的资源.而且两者都做一个简单的比较. 静态资源(StaticResource)指的是在程序加载内存时对资源的一次性使用,之后就不再訪问这个资源了:动态资 ...
- 输出A打头的字符串
题目描述 输出n个字符串,把其中以字母A打头的字符串输出. 输入 第一行 n 第二行到第n+1行,每行一个字符串 输出 A打头的字符串 样例输入 3 Ada Bob Alice 样例输出 Ada Al ...
- SQL server 提示“代理XP”被关闭的解决方法
打开SQL Server Configuration Manager(SQL Server配置管理器),启用SQL Server Agent(SQL Server 代理).
- 改变,从跨出第一步開始——记海大ITAEM团队首次IT讲座掠影
之前以前写了"行动带来力量,周三(5月7日)晚IT讲座通知",昨晚已经跨出了第一步.让我们还是看举办者骆宏的QQ空间的文字吧.尽管未能到现场助兴,但看着海大学子在不断挑战自己,进而 ...
- [原创].NET 分布式架构开发实战之三 数据访问深入一点的思考
原文:[原创].NET 分布式架构开发实战之三 数据访问深入一点的思考 .NET 分布式架构开发实战之三 数据访问深入一点的思考 前言:首先,感谢园子里的朋友对文章的支持,感谢大家,希望本系列的文章能 ...
- Unit of Work
ABP使用及框架解析系列 - [Unit of Work part.2-框架实现] 前言 ABP ABP是“ASP.NET Boilerplate Project”的简称. ABP的官方网站:ht ...
- 【cocos2d-x-3.1.1列2】cocos2d-x3.1.1
安卓移植过程
Evernote的链接: http://app.yinxiang.com/l/AAXeIjFsjjFAC68i6hUQkiwFFZg3Maz-AkA/ cocos2d-x 3.1.1 win移植到a ...
- HDU2647(拓扑排序+反向建图)
题意不说了,说下思路. 给出的关系是a要求的工资要比b的工资多,因为尽可能的让老板少付钱,那么a的工资就是b的工资+1.能够确定关系为a>b,依据拓扑排序建边的原则是把"小于" ...
- React-Native入门指南之HelloWorld
iOS React-Native入门指南之HelloWorld React-native 作为facebook开源项目,最近是火的一塌糊涂,它采用node.js能够写ios和android的nativ ...