博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
一种灵活的持续集成结果展示方案
阅读量:6480 次
发布时间:2019-06-23

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

 

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)

 

本文首发于:
本文转自百度技术51CTO博客,原文链接:http://blog.51cto.com/baidutech/743345,如需转载请自行联系原作者
你可能感兴趣的文章
幻想·梦想·理想
查看>>
Reverse Integer
查看>>
bisController
查看>>
自建型呼叫中心
查看>>
Inno setup中定制安装路径
查看>>
要懂得对你的老板好一点!
查看>>
HDU5139:Formula(找规律+离线处理)
查看>>
visio如何让动态连接线的单箭头变成双箭头?
查看>>
Flashback Version/Transaction Query
查看>>
Swift编程语言学习9—— 存储属性和计算属性
查看>>
poj 1273 Drainage Ditches 网络流最大流基础
查看>>
Bash: how to check if a process id (PID) exists
查看>>
Mirantis Fuel fundations
查看>>
开源Math.NET基础数学类库使用(01)综合介绍
查看>>
启动Tomcat一闪而过——分析及解决过程
查看>>
Android intent action大全
查看>>
使用 Flash Builder 的 Apple iOS 开发过程
查看>>
Android OpenGL ES(一)OpenGL ES介绍
查看>>
RabbitMq_05_Topics
查看>>
redis.conf
查看>>