CI/CD 与 DevOps 三

应用实践中:部署到开发/测试环境后 → 加入跑接口自动化环节

1. 实际流水线

plaintext

复制代码
代码提交
  ↓
构建 build
  ↓
单元测试(可选)
  ↓
打包镜像
  ↓
【部署到开发环境】 先部署
  ↓
【接口自动化测试】 在这里跑
  ↓
测试通过 → 继续部署测试/预发/生产

2. 关键定位:接口自动化放在部署后,属于 CD 环节,不是 CI

  • CI(持续集成):代码层面,打包前 单元测试、代码检查、编译构建
  • CD(持续交付):环境层面,部署后 部署到开发环境 → 接口自动化、集成测试、系统测试

这里接口自动化 = 部署后测试,属于 CD 阶段的质量门禁。

3. 为什么这么做?

优点(企业真实考量)

  1. 接口测试必须服务跑起来、接口能访问才能测
  2. 开发环境最贴近真实运行环境,测的更准
  3. 能验证:镜像没问题 + 部署脚本没问题 + 环境配置没问题
  4. 单元测试只能测代码逻辑,测不了真实接口连通性
  5. 真实接口自动化、全链路测试、数据库交互测试 → 真实、全面、环境验证

缺点

  • 问题发现比 CI 晚,部署完才发现问题,回滚成本更高
  • 速度慢,流水线时间更长

4. 实际版 .gitlab-ci.yml

yaml

复制代码
stages:
  - build
  - unit_test        # CI:单元测试
  - build_image
  - deploy_dev       # 部署开发环境
  - api_auto_test    # 你们这里跑接口自动化
  - deploy_test
  - deploy_prod

# 构建
build:
  stage: build
  image: node:18
  script:
    - npm install

# 单元测试(CI)
unit_test:
  stage: unit_test
  script:
    - npm run test

# 构建镜像
build_image:
  stage: build_image
  ...

# 部署开发环境
deploy_dev:
  stage: deploy_dev
  script:
    - ssh 部署到开发服务器

# 🔥 你们的接口自动化(部署后执行)
api_auto_test:
  stage: api_auto_test
  image: node:18
  script:
    - echo "开始接口自动化测试(开发环境)"
    - npm run test:api   # 调用开发环境真实接口
相关推荐
大树881 天前
金刚石散热越强,管路越先见顶
大数据·运维·服务器·人工智能·ai
摇滚侠1 天前
Linux CentOS7 rpm 安装 MySQL 5.7
linux·运维·mysql
霸道流氓气质1 天前
领域驱动设计(DDD)在 Spring Boot 微服务中的实践指南
运维·spring boot·微服务
Inhand陈工1 天前
基于台达PLC与映翰通IG502的智慧水产养殖精准投喂与远程运维解决方案
运维·人工智能·物联网·阿里云·信息与通信
酣大智1 天前
ARP代理--工作原理
运维·网络·arp·arp代理
shushangyun_1 天前
2026年快消品B2B系统推荐:支持终端门店订货、促销政策自动化的工具?
java·运维·网络·数据库·人工智能·spring·自动化
施努卡机器视觉1 天前
SNK施努卡侧滑门锁上滑轮总成自动化装配线,从零件到组件,全流程精密制造方案
运维·自动化·制造
lunzi_08261 天前
【开源治理】05-把流程翻译成门禁:开源治理嵌入 DevOps 流水线实战
供应链管理·devops·开源治理
AC赳赳老秦1 天前
用 OpenClaw 搭建服务器故障应急响应系统,自动处理 80% 常见运维故障
android·运维·服务器·python·rxjava·deepseek·openclaw
java_cj1 天前
深入kube-apiserver认证机制:从Bearer Token到mTLS的完整认证链解析
linux·运维·服务器·云原生·容器·kubernetes