质量门禁概念
- 质量门禁是为了控制达标率的检查任务
- 设置质量门禁的好处
- 通过检查达标状态来评估产品质量,控制产品发布
- 利用自动化任务来控制产品的代码质量,减少人为干预因素
- 加速产品研发的迭代速度
质量门禁系统演练环境简介
- 项目运行平台:Jenkins;持续集成持续交付平台
- 质量门禁任务平台: Sonar Qube; 一款用于代码质量管理的开源工具,它主要用于管理源代码的质量。 通过插件形式,可以支持众多计算机语言。
- Java + Maven
- Docker
环境搭建
- Jenkins: 需要安装 SonarQube Scanner for Jenkins 插件
- 搭建 SonarQube Server
- Docker 搭建
- 实战演练项目地址: iquality_gate: 质量门禁演示工程,测试实战小例子。
- iQualityGate 项目根目录下运行 docker-compose up -d 命令,对应的SonarQube Server docker 容器会自动启动
- Demo: Jenkins 插件 与 SonarQube docker 搭建
环境搭建
- 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
环境搭建
SonarQube 中关闭用户强制认证
环境搭建
SonarQube 中配置Jenkins webhook
添加门禁 设定指标
- 新建SonarQube 门禁
- 设定门禁类型为:代码覆盖率 (Coverage)
- 设定门禁触发条件为:小于80%
- 覆盖范围:全部代码
- Demo 演示
质量门禁运行演示
质量门禁在持续交付流程中的应用
质量门禁运行演示
- 运行演示过程
- 创建交付任务
- 在交付任务流水线中添加质量门禁
- 正向用例演示:测试代码覆盖率 > 80% ==> 门禁通过
- 负向用例演示:测试代码覆盖率 < 80% ==> 门禁失败
- Demo 演示
质量门禁运行演示
正向用例:测试代码覆盖率 > 80%
质量门禁运行演示
负向用例:测试代码覆盖率 < 80%
本章小结
- 质量门禁系统的搭建
- 门禁规则的设定
- 理解误区:质量门禁 vs 自动化测试