ReportNG测试报告模板定制
2015-10-16 11:18
387 查看
部分参考:http://tech.it168.com/a2013/0906/1530/000001530755_3.shtml
ReportNG提供了简单的方式来查看测试结果,并能对结果进行着色,还可以通过修改模板定制化内容,修改CSS来替换默认的输出样式等。为了使用ReportNG,首先我们要引入reportng-1.1.4.jar和velocity-dep-1.4.jar,或者直接导入其源代码,进行定制化。
项目名称和服务器信息存储到xml文件中,这里继续在ReportMetadata.java文件读取xml:
到模板属性文件reportng.properties里添加模板属性:
然后到模板输出文件overview.html.vm里修改显示内容,meta为类对象,后面为调用方法:
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测试报告修改后如图:相关文章推荐
- 取消界面的title
- Binary Tree Right Side View
- epubcheck用法(转)
- VBA连接MYSQL数据库(转载有修改)
- java基础第7天
- 去掉字符串中出现k个0的子串
- Python模块中的变量和函数的作用域
- 重温数据结构——图的遍历
- java书籍阅读清单
- dom4j解析XML字符串
- Kafka 学习笔记(2) - Topic 和 Log
- win7 64位DCOM配置(关于导出excel 配置计算机组件服务)(转)
- 一张图读懂基于微信硬件平台的物联网架构
- android videoview播放视频前获取视频时长(根据视频路径获取)
- Android任务栈简介
- C#中关于Gridview的一些属性(三、数据列比较)
- 关注的blog
- DEPENDS工具和DUMPBIN工具使用
- 项目质量管理和人力资源管理的重点梳理
- Android基础入门教程——8.3.1 三个绘图工具类详解