加载中...
返回AI 编程实战
AI 编程知识库 · AI 编程实战 · 企业团队落地

联调与集成测试

概念图

版本说明:本文基于 Claude Code 与 OpenCode 的多服务联调实践撰写,适用于企业级开发团队。

适用对象:中高级开发者、测试工程师、技术负责人。

前置知识:第20篇测试编写、第23篇跨服务联动。

技术版本:Java 17、Spring Boot 3.2、WireMock 3.x、Docker Compose V2、JUnit 5。本文代码基于这些版本验证,其他版本可能需要调整。

一、联调的挑战与AI的价值

单元测试验证的是单个服务的逻辑正确性,但服务之间的交互是否正确——接口参数是否匹配、数据格式是否一致、异常传播是否符合预期——需要通过联调来验证。

Testkube 的微服务测试指南指出,微服务的测试金字塔中,集成测试(包括联调测试)占据了关键位置,因为它验证的是服务之间的交互行为 。Webomates 的分析进一步指出,AI 在复杂微服务架构中的测试策略包括契约测试、自愈脚本和智能测试生成,能有效提升联调效率 。

AI 在联调中的价值主要体现在三个方面:

环节 AI 的贡献
环境搭建 自动生成 Docker Compose 配置和服务启动脚本
Mock 策略 智能识别哪些外部依赖需要 Mock、如何 Mock
问题定位 分析跨服务日志链路,快速定位根因
测试生成 根据接口契约自动生成跨服务集成测试

但 AI 的能力有边界:它无法解决网络不通、权限不足、环境配置缺失这类基础设施问题。联调的第一步永远是确保环境可用。

二、第一步:生成联调环境配置

环境配置的标准化

联调环境需要明确以下信息:

配置项 说明 AI 能做的事
服务列表 参与联调的所有服务 根据项目结构自动识别
启动顺序 服务之间的依赖关系 根据接口调用关系推导
配置文件 各服务的环境变量 读取已有配置,生成本地版
外部依赖 数据库、Redis、消息队列 识别哪些需要真实、哪些需要 Mock
端口映射 避免端口冲突 自动分配不冲突的端口

让AI生成Docker Compose配置

把参与联调的服务列表交给 AI,让它生成 Docker Compose 配置:

# AI 生成的联调环境配置(示例)
# 注意:Docker Compose V2 已废弃 version 字段,无需指定
services:
  order-service:
    build: ./order-service
    ports:
      - "8081:8080"
    environment:
      - DB_HOST=mysql
      - REDIS_HOST=redis
      - COUPON_SERVICE_URL=http://coupon-service:8082
    depends_on:
      - mysql
      - redis

  coupon-service:
    build: ./coupon-service
    ports:
      - "8082:8080"
    environment:
      - DB_HOST=mysql
      - REDIS_HOST=redis
    depends_on:
      - mysql
      - redis

  mysql:
    image: mysql:8.0
    ports:
      - "3306:3306"
    environment:
      - MYSQL_ROOT_PASSWORD=testpwd
    volumes:
      - ./init-sql:/docker-entrypoint-initdb.d

  redis:
    image: redis:7-alpine
    ports:
      - "6379:6379"

启动联调环境:

# 启动所有服务(后台运行)
docker compose up -d

# 查看服务状态,确认全部启动成功
docker compose ps

# 查看日志排查启动问题
docker compose logs -f order-service

停止并清理环境:

docker compose down -v

关键技巧: 在提示词中告诉 AI 哪些服务需要真实运行、哪些需要 Mock。比如"MySQL 和 Redis 用真实服务,第三方支付网关用 WireMock Mock"。这样 AI 生成的配置才符合实际需求。

三、第二步:Mock外部依赖

AI 编程知识库会员专享内容
开通后解锁「联调与集成测试」全文,AI 编程知识库全年访问

扫码添加企业微信,找大熊掌门开通会员

企业微信二维码

添加后说明想开通的会员类型即可

加载中...