【CICD】CICD 持续集成与持续交付在测试中的应用

一、什么是CICD?

CI/CD 是指持续集成(Continuous Integration)和持续部署(Continuous Deployment)或持续交付(Continuous Delivery)

1.1 持续集成(Continuous Integration)

持续集成是一种软件开发实践,团队成员频繁地将他们的工作集成到共享的代码仓库中。其主要特点包括:

  1. 频繁提交代码:开发人员可以每天多次提交代码,确保代码库始终保持最新状态。
  2. 自动化构建:每次提交后,自动触发构建过程,包括编译、测试、静态分析等。
  3. 快速反馈:如果构建失败或测试不通过,能够快速地向开发人员提供反馈,以便及时修复问题。

1.2 持续部署(Continuous Deployment)

持续部署是在持续集成的基础上,将通过所有测试的代码自动部署到生产环境中。其特点如下:

  1. 自动化流程:从代码提交到生产环境的部署完全自动化,无需人工干预。
  2. 高频率部署:可以实现频繁的部署,使得新功能能够快速地提供给用户。
  3. 风险控制:需要有强大的测试和监控体系来确保部署的稳定性和可靠性。

1.3 持续交付(Continuous Delivery)

持续交付与持续部署类似,但不一定自动部署到生产环境,而是随时可以部署。其重点在于确保软件随时处于可发布状态。

CI/CD 的好处包括:

  1. 提高开发效率:减少手动操作和等待时间,加快开发周期。
  2. 尽早发现问题:通过频繁的集成和测试,问题能够在早期被发现和解决。
  3. 降低风险:减少了大规模部署时可能出现的问题,提高了软件的质量和稳定性。
  4. 增强团队协作:促进团队成员之间的沟通和协作,提高团队的整体效率。

常见的 CI/CD 工具包括 Jenkins、GitLab CI/CD、Travis CI 等。这些工具可以帮助团队实现自动化的构建、测试和部署流程。

二、服务部署后触发自动化测试

方案:Jenkins-Generic Webhook Trigger + 部署平台-webhook

webhook简介:

Webhook 是一个 API 概念,是微服务 API 的使用范式之一,也被成为反向 API,即前端不主动发送请求,完全由后端推送;举个常用例子,比如你的好友发了一条朋友圈,后端将这条消息推送给所有其他好友的客户端,就是 Webhook 的典型场景。

简单来说,Webhook 就是一个接收 HTTP POST(或GET,PUT,DELETE)的URL,一个实现了 Webhook 的 API 提供商就是在当事件发生的时候会向这个配置好的 URL 发送一条信息,与请求-响应式不同,使用 Webhook 你可以实时接受到变化。

这又是一种对 客户机-服务器 模式的逆转,在传统方法中,客户端从服务器请求数据,然后服务器提供给客户端数据(客户端是在拉数据),在 Webhook 范式下,服务器更新所需提供的资源,然后自动将其作为更新发送到客户端(服务器是在推数据),客户端不是请求者,而是被动接收方;

Generic Webhook Trigger简介: 是一种触发Jenkins构建的方式,它允许你在发送到特定URL的Webhook事件发生时触发Jenkins构建。

通过 webhook 能力,可以在 服务发布平台上部署完成之后,向指定的 url 发起一个 POST 请求,以此触发业务自己的定制化服务,如 自动化测试等

相关推荐
blues_C2 小时前
Pytest-Bdd-Playwright 系列教程(9):datatable 参数的使用
自动化测试·pytest·bdd·playwright
互联网杂货铺3 小时前
基于Selenium+Python的web自动化测试框架(附框架源码+项目实战)
自动化测试·软件测试·python·selenium·测试工具·单元测试·测试用例
迷茫运维路1 天前
docker搭建Jenkins2.346.3版本及常用工具集成配置(ldap、maven、ansible、npm等)
运维·docker·jenkins·cicd
牧魂.2 天前
软件测试入职要求汇总
自动化测试·软件测试·功能测试·接口测试·性能测试
百晓生说测试2 天前
15:00面试,15:08就出来了,问的问题有点变态。。。
自动化测试·软件测试·功能测试·程序人生·面试·职场和发展
blues_C3 天前
Pytest-Bdd-Playwright 系列教程(7):使用测试代码生成辅助工具
自动化测试·软件测试·bdd·playwright
程序员曦曦3 天前
一文熟悉redis安装和字符串基本操作
自动化测试·软件测试·数据库·redis·功能测试·程序人生·缓存
互联网杂货铺3 天前
软件测试之白盒测试(超详细总结)
自动化测试·软件测试·python·测试工具·职场和发展·单元测试·测试用例
小码哥说测试3 天前
Selenium+Pytest自动化测试框架 ------ 禅道实战
自动化测试·软件测试·selenium·测试工具·单元测试·pytest·接口测试