1 Hudson平台结果展示方式
随着持续集成在技术部的推广,有许多团队已经使用或即将使用基于Hudson的持续集成解决方案。然而Hudson平台的结果展现还比较单一,主要是以图的形式(如图1所示),从图上面能看到的信息显然是不够的,显然是不能满足一些团队的个性化需求的。


 

图 1. Hudson平台结果展示图
因此,本文将基于hudson平台,探讨一种更丰富的结果展示方案。
2 Dashboard是什么样的
Dashboard是这样的,每天会给各产品线的相关人员发邮件,将前一天产品在hudson平台上跑的情况汇总成如下表格:
1、buildonly+quick



Buildonly的统计参数:
执行次数/人次:前一天执行次数与负责人人数之比
平均用时:每次执行所花时间的平均值
成功率:build 成功的次数与总的执行次数之比
Quick的统计参数
平均执行率:所有quick任务执行的case数之和除以总的case数
平均case总数:对所有quick任务case总数求平均值
平均用时:对所有quick任务所花时间求平均值
平均通过率:所有quick任务success的case数之和除以总的case数
执行case总数:对每次quick任务执行了的case数求和
2、slow


这份表格主要是对slow case的统计,参数与quick大致相同。
3、performance


这份表格主要是统计性能测试的一些数据。
4、codeAnalyze

 

这份表格主要含有对RD代码的分析结果。
3 Dashboard是怎么做的
Dashboard功能实现主要依赖三个部分:
数据采集部分,需在Hudson Master机器上部署一个result-collector-client插件。并按该插件可以每天定时从Hudson数据文件中采集增量数据,按照一定结构组织后,向服务端发送请求,传输数据,数据存放在一个mysql里,数据库主要表项如下:
表projects:Hudson中的项目(job)对象
 

表builds:Build对象,即一次构建

 

数据解析部分,服务器会每天定时去执行一个php脚本,脚本会去取前一天hudson的数据,进行解析,生成一个HTML页面(也就是上面看到的图表)。


 

图 2. Dashboard功能实现流程
邮件发送部分,HTML页面生成好后调用php里的mail函数发送给产品线的相关人员。


 

图3. Dashboard功能框架图
4 后续改进计划
Dashboard报表后续要改进的地方还很多,目前计划中的主要有:
1、在dashboard邮件里目前只有表格形式的结果,以后计划加入图形的结果,比如饼状图、柱形图等,让呈现的结果更加直观、漂亮。
2、目前的dashboard报表里只汇总前一天的数据,以后可做成每周、每月发一份报表。
3、现在是将dashboard报表发邮件给各产品线负责人,以后可做成一个网站,在上面输入一个时间段后,自动将这一时间段里hudson上的数据以表格或图的形式展现出来,
 

(作者:lijinjin)