部分参考: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测试报告模板定制的更多相关文章

  1. ReportNg 测试报告的定制修改【转】

    前言 前段时间在Testerhome上面看到了测试报告生成系列之-------如何用 testNG 生成测试报告 简单的描述了一些测试报告的生成,接着有人在评论中回复说可以针对reportNg的测试报 ...

  2. ReportNG测试报告的定制修改(一)

    目前笔者接触的自动化测试报告有两种,这两种都是开源的,第一种是ReportNG,第二种是ExtentReports,两种风格各异,ExtentReports自带饼图,页面很炫,但是我们今天讲的是Rep ...

  3. ReportNG测试报告的定制修改(二)

    上一篇文章修改了一些基本的ReportNG信息,链接:https://www.cnblogs.com/mrjade/p/9912073.html,本文将继续带大家进行修改,重点是添加饼图 1.修改测试 ...

  4. Jenkins显示reportng测试报告

    在搭建Jenkins自动化测试平台后,我们点击立即构建就可以运行测试用例了,但没有地方查看测试报告,现在写这篇博客总结怎么在Jenkins显示reportng测试报告. 在maven项目配置repor ...

  5. python接口自动化(五)--接口测试用例和接口测试报告模板(详解)

    简介 当今社会在测试领域,接口测试已经越来越多的被提及,被重视,而且现在好多招聘信息要对接口测试提出要求.区别于传统意义上的系统级别测试,很多测试人员在接触到接口测试的时候,也许对测试执行还可以比较顺 ...

  6. python - HTMLTestRunner 测试报告模板设置

    python - HTMLTestRunner 测试报告模板设置 优化模板下载地址: http://download.csdn.net/download/chinayyj2010/10039097   ...

  7. HttpRunner学习9--切换测试报告模板

    前言 在HttpRunner中,给我们提供了 2 套测试报告模板,分别是 default_report_template.html 和 extent_report_template.html . 默认 ...

  8. Jmeter接口测试报告模板优化(续)

    在之前的基础上又优化了一下: 1.增加了对接口响应时间段的统计,如小于0.5s的请求有多少,0.5-1s的有多少,大于1s的有多少.可以自行修改.且不同范围内的时间字体颜色不一样,便于区分. < ...

  9. Jmeter接口测试报告模板优化

    优化后在接口报告的接口信息中,直接展示url,method,结果和响应时间,详情中展示请求和响应数据.具体如下: 模板文件 jmeter-results-detail-report_21.xsl: & ...

随机推荐

  1. WPF技术触屏上的应用系列(六): 视觉冲击、超炫系统主界面、系统入口效果实现

    原文:WPF技术触屏上的应用系列(六): 视觉冲击.超炫系统主界面.系统入口效果实现 去年某客户单位要做个大屏触屏应用,要对档案资源进行展示之用.客户端是Window7操作系统,54寸大屏电脑电视一体 ...

  2. WPF技术触屏上的应用系列(五): 图片列表异步加载、手指进行缩小、放大、拖动 、惯性滑入滑出等效果

    原文:WPF技术触屏上的应用系列(五): 图片列表异步加载.手指进行缩小.放大.拖动 .惯性滑入滑出等效果 去年某客户单位要做个大屏触屏应用,要对档案资源进行展示之用.客户端是Window7操作系统, ...

  3. JSplitPane demo

    package example; import java.awt.BorderLayout; import java.awt.Color; import java.awt.Dimension; imp ...

  4. jwt (JSON Web Token)官方说明

    http://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32#appendix-A 相关文章 http://haomou.net/2014 ...

  5. 谷歌上不去,长期的解决方案。在稳定高速Google和Gmail

    对稳定Google神器 国内Google很不稳定,缓慢并经常上不去,由"我想去Google",安全和稳定的使用Google.Gmail.Google+所以通常需要特殊的手段岗位胜任 ...

  6. S性能 Sigmoid Function or Logistic Function

    S性能 Sigmoid Function or Logistic Function octave码 x = -10:0.1:10; y = zeros(length(x), 1); for i = 1 ...

  7. HDU 2454 Degree Sequence of Graph G(Havel定理 推断一个简单图的存在)

    主题链接:pid=2454">http://acm.hdu.edu.cn/showproblem.php?pid=2454 Problem Description Wang Haiya ...

  8. port大全及port关闭方法

    在网络技术中,port(Port)大致有两种意思:一是物理意义上的port,比方,ADSL Modem.集线器.交换机.路由器用于连接其它网络设备的接口,如RJ-45port.SCport等等.二是逻 ...

  9. c# serialport读取不限数量的16进制数据

    //private char[] HexChar = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', ' ...

  10. cocos2dx 子弹飞作为一个例子来解释解酒效果类CCMotionStreak

    感谢点评与关注,欢迎转载与分享. 勤奋努力,持之以恒! 在游戏开发中,有时会须要在某个游戏对象上的运动轨迹上实现渐隐效果.比方子弹的运动轨迹,假设不借助引擎的帮助.这样的效果则须要通过大量的图片来实现 ...