【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 请求,以此触发业务自己的定制化服务,如 自动化测试等

相关推荐
蒸鱼Yuzheng3 天前
自动化 Socket 协议设计:消息序列、心跳、幂等重试与背压
自动化测试·python·websocket·socket·分布式系统
测试者家园3 天前
不写测试用例也能做自动化测试?
自动化测试·软件测试·人工智能·测试用例·智能化测试
矩子01X4 天前
车载总线日志解码工具实测:4 款方案从免费开源到企业级
自动化测试·汽车测试·can日志解析
艺杯羹5 天前
当网页塞进桌面端:基于Playwright的客户端模式无头自动化回归与视觉断言
自动化测试·ui自动化·playwright·e2e测试·软件质量工程
蒸鱼Yuzheng6 天前
设备端性能工件可靠导出:断点续传、哈希、manifest 与失败恢复
android·自动化测试·python·adb·数据完整性
小鱼,6 天前
Jenkins构建完成后发送飞书通知消息
jenkins·cicd
cpolar技术支持14 天前
本地 Playwright 测试报告怎么远程复盘?Trace Viewer 跑起来后,用 cpolar 分享失败现场
前端·自动化测试·测试工具·cpolar·playwright
更深兼春远14 天前
Python到底怎么用于测试?
自动化测试·软件测试·python·接口测试
我爱吃土豆114 天前
从零给个人项目搭一套 CI/CD
阿里云·部署·cicd
蒸鱼Yuzheng15 天前
Python 游戏测试开发怎么准备:日志解析、接口校验、并发与可维护性
自动化测试·python·测试开发·面试题·游戏测试