Jenkins 使用slave管理进行持续集成测试说明
2017-02-27 10:30
344 查看
概述&目的
由于中心项目过多,但所有项目特点是持续时间长,变更少,所以易于做CI(持续集成)的build和test,持续检查每个项目软件的健康状况。但前期做持续集成遇到一些问题,在持续集成软件本身Jenkins设计上出现问题:是由于不同项目(版本分支)过多导致Jenkins环境设置过多,所以需要重新考虑一套有利于测试和项目上的持续集成环境的框架,此设计供大家讨论。
方案
针对项目过多和Jenkins分支过多不善于管理,每个项目都登录jenkins进行操作,没有多线的感念,管理混乱,从而分析了其中问题从而整理了对于此Jenkins框架的方案。
目前公司持续集成的测试分类很多,不同的人员都有登录master主机的权限,可能会导致误操作或者修改,影响jenkins执行过程和和结果。
应对方案
使用一台服务器作为Jenkins的master,其余项目均应用在节点机子上,从而节省维护多个Jenkins 的成本,只需要维护主机上的Jenkins配置和插件等,从机器也只需要安装主机上的节点jar包即可,详情设计如下:
设置和应用 Jenkins
确认服务器环境(windows,linux)。
确认维护项目(NDS,拿铁等)。
确认项目负责人(开发,测试)主要由测试去维护,详情请见4章框架
设置主从机器
准备一台配置较好服务器作为 Jenkins master,主机可以做hosts映射,局域网内用域名维护。
准备从机器,在主机(Jenkins master)上设置节点(slave),不同的项目应用不同的节点,节点命名规则:姓名简拼+服务器后缀IP+项目名称,例如从机器的IP为10.38.29.101.维护的项目NDS,维护者谢超,节点名称与标签则为:XC101NDS。
工程目录设置在从机器上,因为涉及数据测试过多,从而也节省主机的硬盘消耗。
权限分配,不同user只能访问自己的在主机上Jenkins project的配置,但会有admin账号管理所有的Jenkins project,游客(未登录者)只可以浏览测试结果(所有项目的)
测试过程监控,制作sql数据,保存每次测试记录和结果,比如记录字段为:ID、项目名称、启动原本因、启动者、测试结果等,其余的待完善TBD
流程
此流程附带开发交付阶段(红框内),不考虑开发部署也可以。标准流程如下:
获取软件/工具等
运行自动化测试
发送测试报告
开发流程被置灰了,未来如果测试部署也可考虑。
项目 1
从代码管理工具上(aligi,SVN)t上获取branch/trunk的代码。
项目 2
检查项目 1 中下载的源代码是否有安全性等问题,运行开发检查测试。
项目 3
检查项目完成后,构建工作开始。
项目 4
成功构建完成后,是在构建验证测试(Build Verification Test,BVT)环境中安装该构建版本。在 BVT 环境中运行 BVT 测试案例。如果 BVT 测试成功通过,可以输出到开发或者测试应用服务器
项目 5
测试可通过successful邮件或者测试自己的jenkins去获取开发对应的输出软件/工具,此留也可以作为测试的流程1,制作测试自己的测试环境Jenkins
项目 6
在测试环境中下载开发版本。应用软件/工具后,Jenkins 会触发项目 7,以便运行功能验证测试(Functional Verification Test,FVT)。
项目 7
FVT 是一个自动测试列表,其中包括很多测试:校验,检查,统计等。FVT 测试通过后,会发送测试通过邮件,类似一封Successful的邮件,告知相关人员。
下图1则是显示了整体流程。若该项目成功完成后,会触发开始下一个项目。如果项目失败,那么流程将会结束并向相关人员发送电子邮件。
![](https://oscdn.geek-share.com/Uploads/Images/Content/201908/20/e3e744f4168afbf7a1775e10e0fd8fe9.png)
持续构建框架的拓扑结构
图2 的左侧显示了开发组部署服务器和Jenkins。
图2的右侧展示了测试组持续集成测试构建框架,添加 Jenkins 以后,会有一个 Jenkins 主机器。构建工具和插件已安装在该服务器上。不同的项目对应着不同的Jenkins 代理(节点)--不同的节点对应着不同的slave服务器,不同的slave服务器又有不同的Tester去维护,当然所有的Tester也可以访问主机上的Jenkins Master进行project配置。工作动作在从机器上运行,FVT 项目在 Jenkins 主机器上运行。所有测试环境都作为 Jenkins 从机器提供服务。它们由 Jenkins 主机器控制,并运行安装项目。测试环境则运行功能验证。
再将不同项目与不同从服务器绑定,就能更轻松地跟踪各种任务,因为不同的机器拥有不同的角色。
![](https://oscdn.geek-share.com/Uploads/Images/Content/201908/20/04555a6539030ab8812c432da0eb683f.png)
结束语
这样做持续集成会帮助测试和开发自动部署和测试的各种工作,从而节约其宝贵的时间。该框架还能帮助大家尽早发现流程中的任何问题或缺陷,优势如下:
1.
减少多项目的沟通成本,可以让组内人员看到其他人员在做的项目
2.
利于维护、跟踪
3.
方便管理,减少配置环境成本
针对项目过多和Jenkins分支过多不善于管理,分析了其中问题从而整理了对于此Jenkins框架的方案。
由于中心项目过多,但所有项目特点是持续时间长,变更少,所以易于做CI(持续集成)的build和test,持续检查每个项目软件的健康状况。但前期做持续集成遇到一些问题,在持续集成软件本身Jenkins设计上出现问题:是由于不同项目(版本分支)过多导致Jenkins环境设置过多,所以需要重新考虑一套有利于测试和项目上的持续集成环境的框架,此设计供大家讨论。
方案
针对项目过多和Jenkins分支过多不善于管理,每个项目都登录jenkins进行操作,没有多线的感念,管理混乱,从而分析了其中问题从而整理了对于此Jenkins框架的方案。
目前公司持续集成的测试分类很多,不同的人员都有登录master主机的权限,可能会导致误操作或者修改,影响jenkins执行过程和和结果。
应对方案
使用一台服务器作为Jenkins的master,其余项目均应用在节点机子上,从而节省维护多个Jenkins 的成本,只需要维护主机上的Jenkins配置和插件等,从机器也只需要安装主机上的节点jar包即可,详情设计如下:
设置和应用 Jenkins
确认服务器环境(windows,linux)。
确认维护项目(NDS,拿铁等)。
确认项目负责人(开发,测试)主要由测试去维护,详情请见4章框架
设置主从机器
准备一台配置较好服务器作为 Jenkins master,主机可以做hosts映射,局域网内用域名维护。
准备从机器,在主机(Jenkins master)上设置节点(slave),不同的项目应用不同的节点,节点命名规则:姓名简拼+服务器后缀IP+项目名称,例如从机器的IP为10.38.29.101.维护的项目NDS,维护者谢超,节点名称与标签则为:XC101NDS。
工程目录设置在从机器上,因为涉及数据测试过多,从而也节省主机的硬盘消耗。
权限分配,不同user只能访问自己的在主机上Jenkins project的配置,但会有admin账号管理所有的Jenkins project,游客(未登录者)只可以浏览测试结果(所有项目的)
测试过程监控,制作sql数据,保存每次测试记录和结果,比如记录字段为:ID、项目名称、启动原本因、启动者、测试结果等,其余的待完善TBD
流程
此流程附带开发交付阶段(红框内),不考虑开发部署也可以。标准流程如下:
获取软件/工具等
运行自动化测试
发送测试报告
开发流程被置灰了,未来如果测试部署也可考虑。
项目 1
从代码管理工具上(aligi,SVN)t上获取branch/trunk的代码。
项目 2
检查项目 1 中下载的源代码是否有安全性等问题,运行开发检查测试。
项目 3
检查项目完成后,构建工作开始。
项目 4
成功构建完成后,是在构建验证测试(Build Verification Test,BVT)环境中安装该构建版本。在 BVT 环境中运行 BVT 测试案例。如果 BVT 测试成功通过,可以输出到开发或者测试应用服务器
项目 5
测试可通过successful邮件或者测试自己的jenkins去获取开发对应的输出软件/工具,此留也可以作为测试的流程1,制作测试自己的测试环境Jenkins
项目 6
在测试环境中下载开发版本。应用软件/工具后,Jenkins 会触发项目 7,以便运行功能验证测试(Functional Verification Test,FVT)。
项目 7
FVT 是一个自动测试列表,其中包括很多测试:校验,检查,统计等。FVT 测试通过后,会发送测试通过邮件,类似一封Successful的邮件,告知相关人员。
下图1则是显示了整体流程。若该项目成功完成后,会触发开始下一个项目。如果项目失败,那么流程将会结束并向相关人员发送电子邮件。
![](https://oscdn.geek-share.com/Uploads/Images/Content/201908/20/e3e744f4168afbf7a1775e10e0fd8fe9.png)
持续构建框架的拓扑结构
图2 的左侧显示了开发组部署服务器和Jenkins。
图2的右侧展示了测试组持续集成测试构建框架,添加 Jenkins 以后,会有一个 Jenkins 主机器。构建工具和插件已安装在该服务器上。不同的项目对应着不同的Jenkins 代理(节点)--不同的节点对应着不同的slave服务器,不同的slave服务器又有不同的Tester去维护,当然所有的Tester也可以访问主机上的Jenkins Master进行project配置。工作动作在从机器上运行,FVT 项目在 Jenkins 主机器上运行。所有测试环境都作为 Jenkins 从机器提供服务。它们由 Jenkins 主机器控制,并运行安装项目。测试环境则运行功能验证。
再将不同项目与不同从服务器绑定,就能更轻松地跟踪各种任务,因为不同的机器拥有不同的角色。
![](https://oscdn.geek-share.com/Uploads/Images/Content/201908/20/04555a6539030ab8812c432da0eb683f.png)
结束语
这样做持续集成会帮助测试和开发自动部署和测试的各种工作,从而节约其宝贵的时间。该框架还能帮助大家尽早发现流程中的任何问题或缺陷,优势如下:
1.
减少多项目的沟通成本,可以让组内人员看到其他人员在做的项目
2.
利于维护、跟踪
3.
方便管理,减少配置环境成本
针对项目过多和Jenkins分支过多不善于管理,分析了其中问题从而整理了对于此Jenkins框架的方案。
相关文章推荐
- 如何使用Jenkins进行持续集成测试
- IOS使用Jenkins进行持续集成
- IOS使用jenkins进行持续集成 第二篇
- AndroidUiAutomator使用Jenkins搭建持续集成测试系统Ⅰ—Android UiAutomator以及快速编译方法
- Python Web项目中使用Jenkins进行持续集成CI
- 使用Jenkins进行持续集成
- 使用Jenkins进行持续集成
- 使用jenkins配置.net mvc网站进行持续集成一
- 使用jenkins配置.net mvc网站进行持续集成三
- 使用jenkins进行持续集成
- IOS使用Jenkins进行持续集成
- 在Python Web项目中使用Jenkins进行持续集成
- 使用jenkins配置.net mvc网站进行持续集成三
- 第4代白盒测试方法实践之“使用VcTester实施持续集成的组织管理模式”
- 使用Jenkins进行持续集成
- IOS使用jenkins进行持续集成 第一篇
- 在mac osx 下使用 Jenkins对Android 进行持续集成
- IOS使用Jenkins进行持续集成
- 使用Jenkins进行持续集成ionic3项目
- 最近需要使用jenkins 进行项目集成管理——1