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: & ...
随机推荐
- 解决PhpCms V9后台无法上传图片
PHPCMS V9 在近期一次更新的版本号(9.4.2)中因为代码推断失误.导致PHPCMS在后台更新文章无法上传图片而导致的bug.在PHPCMS论坛中找到了暂时解决方式,希望PHPCMS官方能尽快 ...
- UML 简单的总结
上某一个地方,总有个记忆挥不散,每一个深夜某一个地方,总有着最深的思量- 都说岁月无情人有情,记忆easy催人老,可有时候反倒觉着人比岁月更无情.岁月留下了我们成长的印记,但是有时候以前认为会相伴永远 ...
- 【Android基础】Activity之间进行参数传递的三种方式
1.使用Intent进行传输 //发送数据的Activity class button implements OnClickListener{ @Override public void onClic ...
- scrot-0.8
相关库下载地址: www.sunfreeware.com/programlistsparc10.html tar -zxvf scrot-0.8.tar.gzcd scrot-0.8. ...
- 虚拟机VM10连衣裙Mac OS X 10.9.3
最近WWDC终极大招释放--新的编程语言Swift(迅速),导致大波浪,渴望围观程序猿.当然,工欲善其事,其利润,因此,对于那些谁不Mac非常为难.可是,请放心.本文教你怎样在Windows下也能体验 ...
- activity-alias使用
activity-alias这是android为了重新使用Activity设计. 当Activity的onCreate()在方法,运行getIntent().getComponent().getCla ...
- 第十二章——SQLServer统计信息(2)——非索引键上统计信息的影响
原文:第十二章--SQLServer统计信息(2)--非索引键上统计信息的影响 前言: 索引对性能方面总是扮演着一个重要的角色,实际上,查询优化器首先检查谓词上的统计信息,然后才决定用什么索引.一般情 ...
- 使用hql当异常查询:Xxx is not mapped[from Xxx where ...]
采用当今项目hql询问.出现 QingAoCenterInfo is not mapped[from QingAoCenterInfo where...] 显然地Hibernate映射关系出现了 ...
- JS学习笔记-OO创建怀疑的对象
问了.工厂介绍,解决重码 前面已经提到,JS中创建对象的方法.不难发现,主要的创建方法中,创建一个对象还算简单,假设创建多个类似的对象的话就会产生大量反复的代码. 解决:工厂模式方法(加入一个专门创建 ...
- Sqlmap渗透测试是常用语句
1.获取站点信息 sqlmap.py -u http://.../ 2.获取站点的数据库信息 sqlmap.py -u http://../ --dbs 3.获取数据库DataBaseTest下的表 ...