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   # 调用开发环境真实接口
相关推荐
进击的荆棘1 天前
Linux系统——进程信号之保存和捕捉信号
linux·运维·服务器·信号处理·信号
开开心心就好1 天前
免安装PDF盖章工具,透明度和位置可调
运维·服务器·前端·javascript·pdf·ocr·1024程序员节
whyutianict_vv1 天前
云计算 HCIE 认证体系解析:HCIA/HCIP/HCIE 三级科目与知识边界
linux·运维·云计算
桌面运维家1 天前
旧电脑跑不动课程软件,VDI云桌面怎样接着用?
运维·服务器·虚拟化·pve·vdi·云桌面
zhang133830890751 天前
传统机械三杯式风速传感器易磨损冻堵?CG-88金属超声波风速风向传感器给出免运维方案
运维·服务器·网络·人工智能·自动化
知已难寻1 天前
第 2 篇 · 云的地基:服务器、存储、网络三大基础设施
运维·服务器·网络·云原生·云计算·负载均衡·1024程序员节
2601_949847751 天前
bcrypt.js 跨端三方库仓颉适配全流程
linux·运维·ubuntu
m0_639906941 天前
Linux 操作系统入门:目录结构、服务排查常用命令、Shell 脚本基础
linux·运维·后端
今天重构了吗1 天前
Linux 上 rm -rf 删错了能找回吗
运维·服务器
KaiwuDB1 天前
KaiwuDB 分布式集群扩缩容,从原理到完整操作踩坑总结
运维·数据库·分布式