概述&目的

由于中心项目过多,但所有项目特点是持续时间长,变更少,所以易于做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则是显示了整体流程。若该项目成功完成后,会触发开始下一个项目。如果项目失败,那么流程将会结束并向相关人员发送电子邮件。

持续构建框架的拓扑结构

  • 图2 的左侧显示了开发组部署服务器和Jenkins。
  • 图2的右侧展示了测试组持续集成测试构建框架,添加 Jenkins 以后,会有一个 Jenkins 主机器。构建工具和插件已安装在该服务器上。不同的项目对应着不同的Jenkins 代理(节点)--不同的节点对应着不同的slave服务器,不同的slave服务器又有不同的Tester去维护,当然所有的Tester也可以访问主机上的Jenkins Master进行project配置。工作动作在从机器上运行,FVT 项目在 Jenkins 主机器上运行。所有测试环境都作为 Jenkins 从机器提供服务。它们由 Jenkins 主机器控制,并运行安装项目。测试环境则运行功能验证。
  • 再将不同项目与不同从服务器绑定,就能更轻松地跟踪各种任务,因为不同的机器拥有不同的角色。

结束语

这样做持续集成会帮助测试和开发自动部署和测试的各种工作,从而节约其宝贵的时间。该框架还能帮助大家尽早发现流程中的任何问题或缺陷,优势如下:

1.      减少多项目的沟通成本,可以让组内人员看到其他人员在做的项目

2.      利于维护、跟踪

3.      方便管理,减少配置环境成本

针对项目过多和Jenkins分支过多不善于管理,分析了其中问题从而整理了对于此Jenkins框架的方案。

转载于:https://www.cnblogs.com/BUGU/p/6472495.html

Jenkins 使用slave管理进行持续集成测试说明相关推荐

  1. git连接jenkins_基于 Jenkins 和 Kubernetes 的持续集成测试实践了解一下!

    作者 | 刘春明 责编 | Carol 出品 | CSDN 云计算(ID:CSDNcloud) 封图| CSDN下载于视觉中国 目前公司为了降低机器使用成本,对所有的AWS虚拟机进行了盘点,发现利用率 ...

  2. 基于 Jenkins 和 Kubernetes 的持续集成测试实践了解一下!

    作者 | 刘春明,责编 | Carol 出品 | CSDN 云计算(ID:CSDNcloud) 封图 | CSDN下载于视觉中国 目前公司为了降低机器使用成本,对所有的AWS虚拟机进行了盘点,发现利用 ...

  3. 你公司的虚拟机还闲着?基于 Jenkins 和 Kubernetes 的持续集成测试实践了解一下!...

    作者 | 刘春明 责编 | Carol 出品 | CSDN 云计算(ID:CSDNcloud) 封图| CSDN下载于视觉中国 目前公司为了降低机器使用成本,对所有的AWS虚拟机进行了盘点,发现利用率 ...

  4. 持续集成测试-Jenkins

    可能会出现的一些问题: 1.bug总是最后才发现: 2.越到项目后期,bug解决的难度越大: 3.交付时间无法保障,有延期风险: 持续集成测试的目的:及时发现bug,提高效率 优点:1统一代码库:2自 ...

  5. 玩转Docker实战篇!使用Docker与Jenkins进行持续集成测试,附加介绍Docker-in-Docker

    一.本文目的 在前面的文章中,所有的测试例子都是本地的.围绕着单个开发者的(就是说,如何让本地开发者使用Docker来测试本地网站或者引用程序).现在来看看在多开发者的持续集成测试场景中如何使用Doc ...

  6. 「Jenkins+Git+Maven+Shell+Tomcat持续集成」经典教程

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试资料 作者:mousycoder(极简小站) 来源地址:segmentf ...

  7. 从Jenkins迁移到Jenkins X:一场持续交付之旅\n

    这篇文章将介绍dailymotion(一家总部位于巴黎的视频分享网站)从Jenkins迁移到Jenkins X的故事,包括我们遇到的问题以及我们如何解决它们. 背景 在dailymotion,我们信奉 ...

  8. 使用Maven+Nexus+Jenkins+Svn+Tomcat+Sonar搭建持续集成环境

    前言 但凡一个略有规模的项目都需要一个持续集成环境的支撑,为什么需要持续集成环境,我们来看一个例子.假如一个项目,由A.B两位程序员来协作开发,A负责前端模块,B负责后端模块,前端依赖后端.A和B都习 ...

  9. 使用Jenkins来实现内部的持续集成流程(下)

    目录 配置项目构建 添加任务 添加源代码地址和登录凭据 添加构建触发器  TFS添加WebHook  添加构建步骤 后端UI  API端  配置项目构建1添加任务 2添加源代码地址和登录凭据 添加源代 ...

最新文章

  1. C#语言与面向对象技术(4)
  2. 越卖越涨?腾讯股票3月后大涨45%,超越“阿里”成中国第一,市值相当于14.3个百度!...
  3. css知识点笔记-常用属性
  4. 神策数据携手百丽国际,专注品牌零售行业数字化未来
  5. excel填充序列_excel如何快速填充数据
  6. 10分钟!构建支持10万/秒请求的大型网站
  7. 基于 Flink 的超大规模在线实时反欺诈系统的建设与实践
  8. 自动切换电脑或手机版(php aspx),ASP程序自动判断是电脑或手机访问网站。
  9. Python 命令行传参
  10. 坚果Pro 3发布,罗永浩大赞科大讯飞:不成器国产厂商尽早跟讯飞合作
  11. linux进程跑飞了,【Shell】Linux信号(二)
  12. ansys怎么使用anand模型_详细剖析ANSYS有限元分析这个软件
  13. SAP License:BCS进阶第一篇-BCS相关概念
  14. linux用户limit修改,linux – 使用cgroups作为用户设置用户创建的systemd范围的MemoryLimit...
  15. 《构建之法》(第一、二、十六章)读书笔记
  16. 郑州大学linux安装锐捷客户端
  17. 5g消息服务器,5G消息开启信息服务新篇章
  18. springboot集成 security 更改中英文提示信息
  19. 终于,百度网盘等来了真正的对手
  20. Linux【搭建环境与基本指令】

热门文章

  1. python对象特性教学_Python三个面向对象特性多态性的实用解释,实践,解读,丨,三大,特征,之...
  2. php折半查找算法,二分查找 [折半查找] 算法 PHP 版
  3. C++socket编程(三):3.9 TCPServer移植到windows中
  4. 8 一点就消失_农村即将消失的15个“老物件”,件件充满回忆,全认识说明你老了...
  5. python打包exe黑框一闪而过,解决pyinstaller打包exe文件出现命令窗口一闪而过的问题...
  6. java 端口转发_用Java快速实现端口转发
  7. SQLAlchemy Mapping Class Inheritance Hierarchies
  8. javascript class
  9. 图解TCPIP-IP 网际协议-IP包
  10. python signal