测试实战持续集成与Jenkins安装和使用

Posted 黑黑白白君

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了测试实战持续集成与Jenkins安装和使用相关的知识,希望对你有一定的参考价值。


1)持续集成(Continuous integration)

互联网软件的开发和发布,已经形成了一套标准流程,最重要的组成部分就是持续集成(Continuous integration,简称CI)。

持续集成指的是,频繁地(一天多次)将代码集成到主干。

  • 目的:让产品可以快速迭代,同时还能保持高质量。
  • 核心措施代码集成到主干之前,必须通过自动化测试,只要有一个测试用例失败,就不能集成。
  • 好处
    • 快速发现错误。每完成一点更新,就集成到主干,可以快速发现错误,定位错误也比较容易。
    • 防止分支大幅偏离主干。如果不是经常集成,主干又在不断更新,会导致以后集成的难度变大,甚至难以集成。

与持续集成相关的,还有两个概念,分别是持续交付和持续部署:

  • 持续交付(Continuous delivery):

    持续交付指的是,频繁地将软件的新版本,交付给质量团队或者用户,以供评审。如果评审通过,代码就进入生产阶段。
    • 持续交付可以看作持续集成的下一步。它强调的是,不管怎么更新,软件是随时随地可以交付的
  • 持续部署(continuous deployment):

    持续部署是持续交付的下一步,指的是代码通过评审以后,自动部署到生产环境
    • 持续部署的目标是,代码在任何时刻都是可部署的,可以进入生产阶段
    • 持续部署的前提是,能自动化完成测试、构建、部署等步骤。

代码从提交到生产的流程:

1、提交(commit):

  • 开发者向代码仓库提交代码
  • 所有后面的步骤都始于本地代码的一次提交。

2、测试(第一轮):

  • 代码仓库对commit操作配置了钩子(hook),只要提交代码或者合并进主干,就会跑自动化测试
  • 测试分为:
    • 单元测试:针对函数或模块的测试(第一轮至少要跑单元测试
    • 集成测试:针对整体产品的某个功能的测试,又称功能测试
    • 端对端测试:从用户界面直达数据库的全链路测试
  • 通过第一轮测试,代码就可以合并进主干,就算可以交付了。

3、构建(build):

  • 交付后,就先进行构建,再进入第二轮测试。

  • 所谓构建,指的是将源码转换为可以运行的实际代码,比如安装依赖,配置各种资源(样式表、JS脚本、图片)等等

  • 常用的构建工具:

    • Jenkins(开源软件)
    • Strider(开源软件)
    • Travis(对于开源项目可以免费使用)
    • Codeship(对于开源项目可以免费使用)
    • 它们都会将构建和测试,在一次运行中执行完成。

4、测试(第二轮):

构建完成,就要进行第二轮测试。

  • 如果第一轮已经涵盖了所有测试内容,第二轮可以省略,当然,这时构建步骤也要移到第一轮测试前面。
  • 第二轮是全面测试,单元测试和集成测试都会跑,有条件的话,也要做端对端测试。所有测试以自动化为主,少数无法自动化的测试用例,就要人工跑。
  • 需要强调的是,新版本的每一个更新点都必须测试到。如果测试的覆盖率不高,进入后面的部署阶段后,很可能会出现严重的问题。

5、部署:

通过了第二轮测试,当前代码就是一个可以直接部署的版本(artifact)。

  • 将这个版本的所有文件打包( tar filename.tar * )存档,发到生产服务器
  • 生产服务器将打包文件,解包成本地的一个目录,再将运行路径的符号链接(symlink)指向这个目录,然后重新启动应用。
  • 这方面的部署工具有Ansible,Chef,Puppet等。

6、回滚:

一旦当前版本发生问题,就要回滚到上一个版本的构建结果

  • 最简单的做法就是修改一下符号链接,指向上一个版本的目录。

2)Jenkins

2.1 什么是Jenkins?

Jenkins是一个开源的、提供友好操作界面的持续集成(CI)工具,主要用于持续、自动的构建测试软件项目、监控外部任务的运行。

  • Jenkins用Java语言编写,可在Tomcat等流行的servlet容器中运行,也可独立运行。
  • 通常与版本管理工具(SCM)、构建工具结合使用。
    • 常用的版本控制工具有SVN、GIT。
    • 构建工具有Maven、Ant、Gradle。

2.2 Jenkins安装

1、下载:

  • 官网 ,选择windows下载,会下载一个.msi后缀的文件。

2、安装

  • 要使用Jenkins,首先需要保证系统中已经安装了jdk,安装过程中会提示需要的 jdk 版本,此时如果系统中没有,则需要下载对应的jdk。
  • jdk安装:
    • 我需要JDK 1.8的,在 http://www.5sharing.com/rj/bc/bcgj/1353.html 下载到。
    • 安装后需要配置环境变量,参考了:https://www.cnblogs.com/nojacky/p/9497724.html
  • 安装成功后会自动打开浏览器跳转到http://localhost:8080/login加载jenkins。
  • 初次访问需要解锁jenkins,密码在日志中。
  • 然后安装推荐的插件:
    在这里插入图片描述
    • 插件安装失败,解决方法:
      • 修改 jenkins数据目录中的hudson.model.UpdateCenter.xml值为:
        http://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json
      • 修改updates文件夹中的 default.json文件
        替换文件中所有 https://updates.jenkins.io/download 为 http://mirrors.tuna.tsinghua.edu.cn/jenkins
        替换文件中http://www.google.com为http://www.baidu.com
      • 重启jenkins:管理员运行 cmd,打开Jenkins的安装目录:cd C:\\Program Files (x86)\\Jenkins,关闭Jenkins服务:jenkins.exe stop,重启Jenkins服务:jenkins.exe start。

2.3 Jenkins配置

后续补充

2.4 Jenkins常用操作

后续补充



【部分内容参考自】

  • 持续集成是什么?:http://www.ruanyifeng.com/blog/2015/09/continuous-integration.html
  • windows环境中jenkins安装插件失败:https://blog.csdn.net/q13554515812/article/details/109014237
  • Windows环境下Jenkins安装与重启:https://www.cnblogs.com/zizhuxuexi/p/11278492.html
  • window环境-jenkins使用记录:https://www.yuque.com/u2018609/kg9ggv/gnrvew

以上是关于测试实战持续集成与Jenkins安装和使用的主要内容,如果未能解决你的问题,请参考以下文章

接口测试实战接口自动化之持续集成(postman+newman+jenkins)

Jenkins践行持续集成与持续部署实战之DevOps详解

Python接口测试实战5(上) - Git及Jenkins持续集成

Python接口测试实战5(上) - Git及Jenkins持续集成

Python接口测试实战5(上) - Git及Jenkins持续集成

10 个 Jenkins 实战经验,助你轻松上手持续集成