一、前言:
来ibm实习已经有两个多月了,也做过一些项目。虽然项目规模不大,但也算得上自己的一些项目经历。现记录下来,为以后找正式工作打下基础。
二、项目背景:
该项目是基于jenkins开发的自动化控制平台,要求用户高度可配置的。采用的是Master-Slave框架。主要的功能是:在master上通过各个job来驱动slave结点上的测试工具(如:loadrunner、jemeter),并且将测试结果统一返回到master结点上,并且对测试结果进行分析,生成表格文件(csv),以及在jenkins上进行图表展示。
三、项目成员及职责:
leader:主要负责技术支持,项目框架的构建。
浙大实习生:主要负责多个job自动按顺序执行,不需要手动干预。
我:主要开发在master上启动slave结点的测试工具,并且将结果返回到master上,然后分析,展示的job。
四、知识点的介绍:
1、Jenkins是基于Java开发的一种持续集成工具,用于监控持续重复的工作,功能包括:
1)、持续的软件版本发布/测试项目。
2)、监控外部调用执行的工作。
2、在该过程中使用到jenkins的插件介绍:
Plot:可对csv文件的结果进行展示(注:csv文件实际是文本格式的文件)
BuildFlow:将驱动slave结点测试工具的job和分析结果的job分成一个group。例如:
guard{
build("startloadrunner")
}rescue{
build("analysis")
}
Copy To Slave Plugin:将slave的结果文件,拷贝到master上job的workspace下面。
FSTrigger Plugin:可以自动检测当job下面的配置文件改变时,启动该job,即实现多个job自动有序启动。
五、项目的实现:
我:主要是写启动loadrunner等测试工具的jar,并且获取结果。以及在master上分析结果的jar包。
浙大实习生:主要是写实现多个job自动有序执行的jar包。
六、遇到的问题:
1、在同一台master上,有各个slave结点返回的结果,怎样获取想要的结果文件?
答:改变配置文件,将分析结果的job=启动测试工具的job。这样就知道分析哪个测试工具的产生的结果
2、怎样先执行测试工具的job,然后执行分析结果的job
答:使用buildflow插件,将两个job合并在一起。
。。。
总结:在项目中遇到困难问题时,采用最简单的模式,然后一个bug一个bug进行排查。