持续集成体系

极客时间训练营 & 霍格沃兹测试开发学社

大纲

  1. 持续集成体系介绍

  2. Jenkins 安装

  3. Jenkins Job 配置

  4. Jenkins 用户管理,授权策略配置,安全配置管理

  5. Jenkins 的 Job 实操

  6. Jenkins 凭据管理,环境变量,节点配置,节点环境变量

  7. Jenkins Job 指定节点运行

  8. Jenkins 插件安装

  1. Jenkins SSH 插件

  2. Jenkins Git 版本管理

  3. Jenkins Maven 插件配置

  4. Jenkins 邮件告警

  5. Jenkins 父子 Job

  6. 持续集成实战:接口测试集成实战

  7. 持续集成实战:Web 和 App 自动化测试集成实战

  8. 持续集成体系构建

持续集成体系介绍

瀑布 WaterFall 模型和 Agile 敏捷开发模型

什么是持续集成

持续集成测试带来的优点

  • 快速发现错误:
    • 每完成一点更新,就集成到对应的分支,可以快速发现错误,定位错误也比较容易。
  • 防止分支大幅偏离主干:
    • 如果不是经常集成,分支或者主干又在不断更新,会导致以后集成的难度变大,甚至难以集成。

持续集成 - CI

CI(持续集成)CD(持续交付)CD(持续部署)

持续集成(CI)管理工具 Jenkins

Jenkins 是开源 CI&CD 软件领导者, 提供超过 1000 个插件来支持构建、部署、自动化, 满足任何项目的需要。

Jenkins 的优势对比

Jenkins 的优势总结

  • Open Source 10+ years millions of users
  • 超大量的安装数目(>23000) (Jul 2010)
  • 超丰富的插件支持(>370 Plugins)
  • 支持几乎所有的 source control management 和 Version control management tools

Jenkins 的安装

Jenkins 安装

Jenkins 启动 - war 包启动

java -jar jenkins.war

Jenkins 启动 - java 容器启动

  • 将 jenkins.war 放到 tomcat webapps 下
  • 启动 tomcat
  • 访问 localhost:8080/jenkins

Docker 部署

# 创建docker的文件影射卷
docker volume create jenkins

# 创建实例
docker run -d --name jenkins \
  -p 8080:8080 -p 50000:50000 \
  -v jenkins:/var/jenkins_home \
  jenkins/jenkins:lts

# 获得初始管理密码
docker exec jenkins_hogwarts cat /var/jenkins_home/secrets/initialAdminPassword

Jenkins Job 管理

修改系统配置

  • 默认 Shell:bash
  • 默认邮箱:邮箱地址与账户
  • 默认地址:服务器域名
  • 安全:设置安全制度
  • 时区:时区修改
  • 插件:设置代理、安装插件、更新插件
  • slave节点:添加 slave 节点

修改时区

# 删除已有实例
docker rm -f jenkins
#重新创建实例并设置时区
docker run -d --name jenkins -p 8080:8080 -p 50000:50000 \
  -v jenkins:/var/jenkins_home \
  -e JAVA_OPTS=-Duser.timezone=Asia/Shanghai \
  jenkins/jenkins:lts

安装插件

  • 配置代理
  • 安装插件:gitpipelineblueocean

添加 slave 节点

slave 节点连接方式

  • 8080 端口:jenkins服务器的对外 UI 地址
  • 50000 端口:slave节点与jenkins的通讯端口

一个 job 的组成部分

通用设置

源代码控制

构建触发器

Build Environment

Post-build Actions

权限控制

Jenkins 安全配置

  • Jenkins 初始化过程中会先注册一个管理员用户
  • 管理员用户再创建后续的一般用户
  • 管理员用户登录进行后续配置
  • 启用用户安全配置,Manage Jenkins -> Configure Global Security
  • 配置好权限之后,管理员可以从后台直接添加用户

Jenkins 用户的管理

  • 管理用户,用户的添加、修改和删除

Jenkins 安全矩阵

  • 授权策略

Jenkins 权限的控制

  • 具有任务开发权限的用户,可以配置、运行 Job,但是不能管理 Jenkins

节点管理

Jenkins 节点管理

  • Jenkins 的任务可以分布在不同的节点上运行
  • 节点上需要配置 Java 运行时环境,Java_Version > 1.5
  • 节点支持 Windows,Linux,Mac
  • Jenkins 运行的主机在逻辑上是 master 节点

常用插件

Jenkins 插件

  • Jenkins 强大的原因之一就是插件众多
  • 插件帮助 Jenkins 丰富自身原有的功能
  • 插件的安装方法
    • 进入插件安装页面:Manage Jenkins -> Manage Plugins -> Available
    • Filter 中输入希望安装的插件名称,然后看一下过滤结果
    • 如果插件存在,勾选该插件,然后执行“Download now and install after restart
    • 标签也分别代表 Update(可更新),Available(可选的),Installed(已安装),Advanced(高级 - 配置代理服务 或者 自定义插件)

Jenkins 推荐插件

  • 建议大家安装的插件(可以利用课后时间哦)

    • Multiple SCMs plugin
    • Rebuilder
    • Safe Restart Plugin
    • Pipeline
    • Text Finder
    • Blue Ocean
    • Allure

持续集成实战 - 接口测试集成实战

Q&A