jck28-lucio-质量门禁

质量门禁概念

  • 质量门禁是为了控制达标率的检查任务
  • 设置质量门禁的好处
    • 通过检查达标状态来评估产品质量,控制产品发布
    • 利用自动化任务来控制产品的代码质量,减少人为干预因素
    • 加速产品研发的迭代速度

质量门禁系统演练环境简介

  • 项目运行平台:Jenkins;持续集成持续交付平台
  • 质量门禁任务平台: Sonar Qube; 一款用于代码质量管理的开源工具,它主要用于管理源代码的质量。 通过插件形式,可以支持众多计算机语言。
  • Java + Maven
  • Docker

环境搭建

  • Jenkins: 需要安装 SonarQube Scanner for Jenkins 插件
  • 搭建 SonarQube Server

环境搭建

  • Jenkins中的配置
    • 在Jenkins 系统设定中配置SonarQube Server
  • Sonar Qube中的配置
    • 设定WebHook, administration → Configuration → Webhooks
    • 添加Jenkins的webhook URL, http://your_jenkins:port/sonarqube-webhook
    • 关闭用户访问强制认证的限制 Administration → Configuration → General Settings → Security → Force user authentication (关闭它)
  • Demo:配置Jenkins 与 SonarQube (默认用户名/密码:admin / admin)

环境搭建

环境搭建

Jenkins 中配置 SonarQube Server
image

环境搭建

SonarQube 中关闭用户强制认证
image

环境搭建

SonarQube 中配置Jenkins webhook
image

添加门禁 设定指标

  • 新建SonarQube 门禁
  • 设定门禁类型为:代码覆盖率 (Coverage)
  • 设定门禁触发条件为:小于80%
  • 覆盖范围:全部代码
  • Demo 演示

image

质量门禁运行演示

质量门禁在持续交付流程中的应用
image

质量门禁运行演示

  • 运行演示过程
    • 创建交付任务
    • 在交付任务流水线中添加质量门禁
    • 正向用例演示:测试代码覆盖率 > 80% ==> 门禁通过
    • 负向用例演示:测试代码覆盖率 < 80% ==> 门禁失败
  • Demo 演示

质量门禁运行演示

正向用例:测试代码覆盖率 > 80%

image

质量门禁运行演示

负向用例:测试代码覆盖率 < 80%

image

本章小结

  • 质量门禁系统的搭建
  • 门禁规则的设定
  • 理解误区:质量门禁 vs 自动化测试