部分参考: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. dev layoutControl 控件使用

    对于排版控件,用微软的方法都是先拉 label再拉一个 Textbox  ,  虽然微软的控件了有类似于 EXCEL的单元格全并功能,但用起来使终不方便, 今天研究了一下 DEV 的这个控件,比微软的 ...

  2. DataGridView绑定数据源

    给DataGridView绑定数据源比較简单,方法主要有两种: 1.直接在控件属性中绑定数据源,这样的方法最简单,但它是直接连接数据库的,这样就和传DataTable的后果差点儿相同了,所以还是尽量避 ...

  3. JAVA card 应用程序开发(七) JAVA 卡数据(永久数据/)时间数据

    JAVA 卡对象 JAVA CARD 存储器装置: a.      ROM: 永久保存程序和数据,虚拟机,API等待:(Applets它也可以在这里放) b.      RAM: 栈数据,暂时对象. ...

  4. .NET 并行(多核)编程系列之五 Task执行和异常处理

    原文:.NET 并行(多核)编程系列之五 Task执行和异常处理 .NET 并行(多核)编程系列之五 Task执行和异常处理 前言:本篇主要讲述等待task执行完成. 本篇的议题如下: 1. 等待Ta ...

  5. 【Android基础】listview控件的使用(1)------最简单的listview的使用

    listview控件是项目开发中最常用的空间之一,我将慢慢推出关于listview的一系列的文章,先从最简单的,系统自带的listview开始吧! 先上效果图: activity_one.xml &l ...

  6. MemoryBarrier,Volatile

    使用MemoryBarrier,Volatile进行同步 上一节介绍了使用信号量进行同步,本节主要介绍一些非阻塞同步的方法.本节主要介绍MemoryBarrier,volatile,Interlock ...

  7. apache tomcat 集群! (转)

    公司需要一个内部测试局域网, 要求可以支持3000并发访问!以前也没做过服务器这方面.临时抱佛脚,查看了N多文档,他人经验,布置好之后,又遇到了N多问题,功夫不负有心人.终于还是完成了要求!观他人的布 ...

  8. 【剑指offer】打印1到最大的n数字

    转载请注明出处:http://blog.csdn.net/ns_code/article/details/25562105 剑指offer第12题.九度OJ測试通过. 题目描写叙述: 给定一个数字N, ...

  9. Visual Studio Team Services使用教程--默认团队checkin权限修改

  10. hdu4570Multi-bit Trie (间隙DP)

    Problem Description IP lookup is one of the key functions of routers for packets forwarding and clas ...