jck28-lucio-【实战】app持续交付

目标

  • 从产品源代码制作出可运行APP,自动部署到安卓手机,运行自动测试程序检验正确性
  • 包含自动任务
    • APP Build 自动打包
    • APP Build 自动发布
    • APP Build 自动部署
    • APP Build UI 自动测试
    • 邮件通知任务结果
  • 利用Jenkins Pipeline 技术实现APP持续交付的全自动化流水线过程

优势

  • 重复性定式任务最适合让计算机来做
  • 减少人力参与,提升工作效率
  • 让Build不再是阻碍测试进度的因素
  • 自动化重用率高,维护频率低

子任务拆分

  • 获取源码
  • 编译、打包
  • 部署app
  • 自动化测试
  • 发布可测包
  • 邮件通知

环境依赖

  • 安卓 SDK
  • 安卓设备(真机 or 模拟器)
  • Appium 自动化测试

实战任务1:创建顺序执行 Jenkins Pipeline 项目

顺序任务流程图

image

添加Pipeline 代码

添加Pipeline 代码

添加Pipeline 代码

  • Demo: 顺序执行 Pipeline 代码讲解

将代码添加到 Jenkins 项目中

将代码添加到 Jenkins 项目中

  • Demo: 过程演示

顺序执行的APP持续交付Pipeline任务运行调试

实战任务2:创建部分并行执行 Jenkins Pipeline 项目

  • 流程效率的优化
  • 目标:节约运行时间,提升效率
  • 方法:抽取可并行的节点,减少等待时间

并行任务流程图

添加Pipeline 代码

添加Pipeline 代码

将代码添加到 Jenkins 项目与运行演示

顺序执行 与 部分并行执行效率对比

  • 优化前后执行效率对比
  • 串行执行:1分16秒
  • 部分并行执行:59秒

本章小结

  • 利用 Jenkins Pipeline 代码控制APP持续交付的全流程
  • 持续交付的子任务拆分: 减少工作节点之间的耦合性,提高节点本身操作的内聚性
  • 效率提升:并行与串行控制
  • 利用代码控制交付过程,灵活、方便、有效