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   # 调用开发环境真实接口
相关推荐
学习路上_write1 小时前
Linux黑马命令学习
linux·运维·服务器
Android系统攻城狮1 小时前
Linux Gstreamer深度解析之gst_audio_channel_reorder_map调用流程与实战(十八)
linux·运维·服务器·音视频进阶·gstreamer音视频进阶
新时代牛马2 小时前
docker run 起不来?从dockerd、containerd 到runc 一条线讲透
运维·docker·容器
TomEval2 小时前
【App 自动化】14 - App 自动化基础与环境
运维·自动化
新时代牛马2 小时前
Linux 防火墙:nftables 与iptables 兼容层
linux·运维·服务器
xhbh6662 小时前
中小企业 Redis 运维,如何安全归档 RDB、AOF 备份文件?
运维·数据库·缓存·数据备份·文件备份·同步备份·号码备份
是逍遥子没错2 小时前
一个斜杠,击穿整座网关:API网关路径前缀绕过认证实战
运维·服务器·web安全·网络安全·渗透测试·系统安全
其实防守也摸鱼3 小时前
每天一个知识点——RCE漏洞
运维·服务器·数据库·windows·安全·github·漏洞
努力努力再努力wz3 小时前
【Docker 入门系列】:从 Namespace、CGroup 到 LXC:理解容器运行时、rootfs 与 LXC 实战
运维·docker·容器
JavaPub-rodert4 小时前
Docker 多阶段构建:为什么生产环境镜像可以小 90%
运维·docker·容器