博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
开源一个爬取redmine数据的测试报告系统
阅读量:6250 次
发布时间:2019-06-22

本文共 2354 字,大约阅读时间需要 7 分钟。

背景

软件测试的最后有一道比较繁琐的工作,就是编写测试报告。手写测试报告在数据统计和分析上面要耗费比较大的事件和精力。之前工作室使用mantis管理bug缺陷。公司有内部有个系统,可以直接从mantis上面获取数据并进行统计,生成一份测试报告。后来换了一个工作室,bug缺陷管理平台也从原来的mantis 换成了redmine ( )。 然后走上了一条手写测试报告的不归路(测试人员前期还是推荐手写测试报告的)。搞游戏的都知道,平时加班加点压力就够大的。急需一个接redmine的测试报告系统。

至此,交代完毕为啥要写这么一个简单的测试报告系统。

要求或者需求:

  • 操作要足够简单
  • 尽量独立系统

开发技术:java/jsp

设计思路

数据来源:

照理来说,由于工作室内部自己搭的redmine,所以数据获取应该可以直接读取redmine 的数据库就好了。我觉得这样系统的依赖性较高,不够独立。而且问过接mantis 的测试报告系统的开发,他们是直接从mantis 上面爬取数据的。所以最终,我也是直接从redmine上爬取数据的。

数据存储:

由于测试报告系统一般就测试人员使用(特别是动态网页),其他人顶多也就查看静态的测试报告也没而已。所以系统对性能要求不高。所以没有使用数据库软件,我是直接用文本文件来记录数据。有一个原因是因为我觉得用了数据库,需要配置、部署数据库,万事都相对比较麻烦。反正没啥性能要求,直接就用文本吧。

简单架构

系统从远端redmine爬取数据,根据用户选择爬取某一个版本的数据。并且读取测试报告模板和数据生成一份测试报告。并将测试报告发送给相应的人员和保存测试报告的静态文件(用户查看历史测试报告)。

 

几个核心问题和技术

  • http请求——HttpClient
  • 数据统计及图片生成——JFreeChart
  • 前端展示数据统计结果——Charts.js
  • mail库——mail
  • 数据存储——gson

爬取和过滤

爬取回来的是一个html文件,需要从html文件里面提取出需要的数据,这里使用正则表达式提取。

数据统计

数据统计前端主要用Charts.js 来即时展示数据的结果。由于邮件里面的js是无效的。所以最终的统计结果用JFreeChart第三方库转换成图片。

数据存储

其实用的是文本存储,所以用的就是java的文件的读写操作而已。使用到了gson是因为存储的数据用了json格式。gson很好用。

mail

发送邮件用的是mail.jar这个库。至于这个库为啥我不用密码就能够发生出去,我也不太清楚。这可能跟邮件供应商有关系。

另外由于发生邮件需要发送图片,这里纠结了一番。如果图片存储在服务器,一旦服务器不正常(停电、断网什么的),测试报告就显示不了图片了。那么可以考虑使用附件发送出去。但发送附件可能会被定为垃圾邮件。最后选择将图片转换成数据,直接写入到html里面,解决噻~。下面是将图片转换成数据的源代码。

/*     * Convert PNG to Base64     * path the PNG path     * */    public static String getBase64Png(String path) throws Exception {        String msg=”";        try{             BufferedImage image = ImageIO.read(new File(path));            ByteArrayOutputStream baos = new ByteArrayOutputStream();            ImageIO.write(image, ”png”, baos);            msg = Base64.encode(baos.toByteArray());         }catch(IOException e){            e.printStackTrace();        }         return msg;    }

 

一个小问题

我直接将redmine 地址改成redmine官方地址 ,结果爬取数据的时候报错了。是因为我爬取一个表的时候,表结构不一样。官方的remine 比我们工作室使用的redmine 在某个表少了一个字段。如果你也遇到了,可能需要改一下源代码才能正常允许了。

例子

项目和版本选择界面

测试报告编写页面

一个静态的测试报告例子。直接点击: 可以查看。(点击查看源代码可以发现图片是保存在html里面的)

题外

源代码:

记得使用的时候一定要先配置config.properties 文件:

PT_URL =http://www.redmine.org                              #redmine平台地址    必需MAIL_HOST =mail.test.com                                         #邮件服务器地址      必需MAIL_FROM =name1@test.com                                  #默认发件人   非必需MAIL_TOS =name2@test.com|name3@test.com        #默认收件人   非必需

 

共勉之!

个人小博客原文地址:

本文转自 Ron Ngai 博客园博客,原文链接:http://www.cnblogs.com/rond/p/3878505.html  ,如需转载请自行联系原作者

你可能感兴趣的文章
Git之fatal: remote origin already exists
查看>>
使用JQ实现相同行或列合并
查看>>
Python中的__name__和类
查看>>
Lambda 表达式的示例-来源(MSDN)
查看>>
python socket之tcp服务器与客户端demo
查看>>
CesiumLab V1.4 新功能 BIM数据处理
查看>>
Red Hat发布开源PaaS OpenShift Origin
查看>>
python常用模块-time,datetime
查看>>
Linux中常用操作命令
查看>>
httpd基于用户的站点访问控制
查看>>
网页中的各种长宽、坐标
查看>>
lua程序设计之协同程序
查看>>
我的友情链接
查看>>
Nginx配置SSL证书
查看>>
AskoziaPBX 安装
查看>>
Tutorial for adding a library project as git submodule and then using it as a studio Module
查看>>
crontab + mysqldump 解决每天定时自动备份MySQL数据库
查看>>
metasploit扫描vsftp服务器root权限
查看>>
bzoj 3489: A simple rmq problem
查看>>
linux的grub的背景颜色
查看>>