现在做测试,经常听到一个概念 持续集成 CI Continuous Integration

那什么是持续集成呢?相信大家看了不少文章之后依然是一脸懵逼。

这里呢,用我自己的理解谈一下,不正确的地方还请指正。

要说持续集成,首先要明白什么是集成。很多测试同学说到集成,就想到集成测试。

这里的集成主要是指代码的集成:

举例来说,比如当前迭代,开发时间为两周。项目开始后,开发人员会从代码管理工具(SVN 或 GIT)的主干代码上复制一份代码到自己本地电脑。然后在自己的本地电脑上进行开发,假设这个项目有三个开发人员,分别是 jim(狗蛋)、lily(翠花)、tom(大锤)。

好,现在三个开发分别在自己电脑上开发。开发任务完成后,一次性提交自己本地代码到代码管理工具的主干代码上。

这个过程就叫集成,也就是代码集成,将自己本地的代码集成到主干代码。此时发生了所谓的集成地狱。三位开发有可能会改到同一个代码文件、同一个方法,这样就会出现代码冲突。为了处理集成过程中的冲突,会花费非常多的时间、精力和成本,并且提高了发布风险。

为了降低这种风险和成本,于是持续集成就被提出了。强调的是不再一次性把代码集成到主干,而是高频率的持续集成。一天集成1次,甚至多次。同时在集成过程中,进行自动化测试,保证主干代码一直可用。

为保证主干代码可用,开发每次代码集成后都需要进行 BVTBuild Verification Test测试,也就是类似冒烟测试的过程,比冒烟更简单一些,主要保证系统可用。这种测试由于测试频率高,因此对自动化测试的需求非常大。

那么现在主流的持续集成工具,比如 Jenkins 做些什么事情呢?

先来说一下没有 Jenkins 的时候,我们怎么去更新测试环境的。

  1. 首先从 SVN 上获取最新代码;
  2. 在本地进行编译
  3. 构建一个发布包,通过 FTP 上传到测试环境服务器
  4. 将发布包中内容更新到相应的服务
  5. 重启相关服务,以使更新生效
  6. 如果部署了负载均衡,则在其他服务器上重复 4, 5

每次构建和更新测试环境都是很繁琐的任务,而且极易出现错误。那么 Jenkins 能干什么呢?

能让这一系列事情全部自动化:

  1. 根据规则轮询代码管理工具,获取最新代码(也可以手动或设置其他规则)
  2. 基于不同的语言进行构建(需要自行配置)
  3. 通过 FTP 把构建后的内容自动上传到对应的服务器
  4. 使用插件或者脚本,将发布包内容更新到各个环境
  5. 通过命令行调用自动化测试脚本,搭配代码覆盖率工具执行自动化测试
  6. 展示自动化测试报告,并邮件通知构建情况

也就是让集成过程中繁琐的事情都自动化了,那么进行持续集成也不会因为集成频率过高带来的环境部署和频繁测试而导致开发效率降低。

什么是 CI 持续集成相关推荐

  1. CI -持续集成及相关概念

    Continuous Integration, Continuous delivery, Continuous Delopment CI - 持续集成(Continuous Integration)是 ...

  2. CI持续集成系统环境--Gitlab+Gerrit+Jenkins完整对接

    原文地址https://www.cnblogs.com/kevingrace/p/5651447.html 近年来,由于开源项目.社区的活跃热度大增,进而引来持续集成(CI)系统的诞生,也越发的听到更 ...

  3. [原创]CI持续集成系统环境--Gitlab+Gerrit+Jenkins完整对接

    近年来,由于开源项目.社区的活跃热度大增,进而引来持续集成(CI)系统的诞生,也越发的听到更多的人在说协同开发.敏捷开发.迭代开发.持续集成和单元测试这些拉风的术语.然而,大都是仅仅听到在说而已,国内 ...

  4. 在CentOS7上安装Drone搭建CI持续集成环境

    文章目录 在CentOS7上安装Drone搭建CI持续集成环境 前言 安装前规划 安装过程 配置域名解析 安装Docker 拉取Drone Server镜像 添加GitHub OAuth Applic ...

  5. CI持续集成系统环境---部署gerrit环境完整记录

    转载自: http://www.cnblogs.com/kevingrace/p/5624122.html 开发同事提议在线上部署一套gerrit代码审核环境,废话不多说,部署gerrit的操作记录如 ...

  6. CI持续集成系统环境---部署Jenkins完整记录

    最近在看CI/CD集成的相关部分,发现几篇好文,转载分享一波. 来源网络:[原创]CI持续集成系统环境---部署Jenkins完整记录 - 散尽浮华 - 博客园 Jenkins通过脚本任务触发,实现代 ...

  7. ci持续集成工程师前景_持续集成CI---失败原因

    持续集成CI就是持续进行分析.构建.测试和部署的流程.在发布到生产系统之前,CI检查代码质量和测试产品的业务逻辑. 理想情况下,当构建失败时,是不能允许软件继续发布到生产上.但是,持续集成的理念并未贯 ...

  8. ci持续集成工程师前景_不要忽视持续集成(CI)/持续交付(CD)的13个优势

    原标题:不要忽视持续集成(CI)/持续交付(CD)的13个优势 持续集成(CI)/持续交付(CD)是现代软件开发周期的基础,人们需要了解持续集成(CI)/持续交付(CD)和其管道实施的所有好处. 在传 ...

  9. Gitlab CI 持续集成的完整实践

    来源:https://dwz.cn/mWyVHoSm 借着公司代码库迁移到私有Gitlab的契机,我接下持续集成的工作,实现了对Python服务端代码的单元测试.静态代码分析和接口测试的持续集成.总体 ...

  10. [系统集成] CI持续集成项目简介

    一.问题的产生 公司的多个部门围绕着产品开发.测试.发布.维护,设置有不同的岗位和系统,这些岗位和系统缺少有效的整合,没有实现自动化,效率不是很高,因此就有了CI(持续集成)的项目需求. 二.解决方案 ...

最新文章

  1. hibernate操作mysql中文乱码
  2. 基于LSTM的电商评论情感分析-TensorFlow2实现(内附源码)【自然语言处理NLP-100例】
  3. 华为电视测试软件,华为智慧屏电视安装第三方软件,简单实测可行攻略
  4. px4 uavcan linux,UAVCAN总线 - UAVCAN固件升级 - 《PX4开发指南》 - 书栈网 · BookStack
  5. mysql8支持myISAM_mysql菜鸟手迹8--mysql存储引擎之MyISAM
  6. Oracle常用语句汇总
  7. [解决] term.js 记录遇到的问题
  8. Cisco设备基础命令
  9. 如何删除顽固文件或文件夹?
  10. python 省份排序_Python常用的排序
  11. Kingston DataTraveler G2 U盘量产全纪录
  12. 计算机怎么打开网络共享,如何开启Window7的媒体流共享(开启电脑 DLNA 共享)...
  13. Python之绘制七段数码管
  14. linux 自定义欢迎界面 /etc/motd文件
  15. 易佰关键词查询工具 2013 V2.0
  16. #数据结构与算法 第一小题 学生成绩档案管理系统
  17. 绩效评估:最佳做法和要问的首要问题
  18. Pyside2中嵌入Matplotlib的绘图
  19. C语言中的输出99乘法表4种方法
  20. 写给迷茫的你:如何运用运营思维规划自己的职业发展路径?

热门文章

  1. 杂谈:硬件和软件接口选择
  2. SVN服务器详解之用户权限配置——authz文件
  3. 一、RISC-V SoC内核——取指 代码讲解
  4. 微信已支持注册“微信小号”了
  5. Apache Shiro Java 反序列化漏洞分析
  6. 明明想在学校中请一些同学一起做一项问卷调查,为了实验的客观性,他先用计算机生成了N个1到1000之间的随机整数(N≤1000),对于其中重复的数字,只保留一个,把其余相同的数去掉,不同的数对应着不同的
  7. 张一鸣没动手,王兴不紧张
  8. 干货 | 数据治理落地难?携程度假数据治理需求设计实践
  9. 简单谱子C语言程序,写了一段超级简单的 G调的简谱转换为C调的程序
  10. 华为手机记事本导出_手机自带记事本如何备份