SuperAPI AI 工具集

contract-testing

测试与质量

查看项目

更新于 10-15 18:51

技能介绍

该技能用于指导 API 消费方与提供方之间的契约测试,属于测试与质量范畴,核心是消费者驱动契约(Consumer-Driven Contracts)。主要能力覆盖 Pact 框架和 Spring Cloud Contract 两类工具:Pact 侧展示消费方测试写法(PactV3 定义 consumer/provider、given/uponReceiving、withRequest、willRespondWith 与 MatchersV3 的 like、eachLike、string、integer 匹配器)及提供方验证(Verifier 配置 providerBaseUrl、pactUrls、pactBrokerUrl、publishVerificationResult、providerVersion 与 stateHandlers)。Spring Cloud Contract 侧展示 Groovy DSL 契约定义(request/response、status、headers、body 与 regex 匹配)与提供方基础测试(@SpringBootTest、@AutoConfigureMockMvc、@MockBean、RestAssuredMockMvc)。工作流为:消费方编写契约测试生成 pact 文件,发布到 broker 或文件共享,提供方执行验证,双方契约通过后才部署。必要命令保持原样,如 npx pact-broker publish ./pacts --consumer-app-version=$(git rev-parse HEAD) --broker-base-url=https://pact-broker.example.com,以及 npx pact-broker can-i-deploy --pacticipant=OrderService --version=$(git rev-parse HEAD) --to-environment=production。文档还列出反模式与修正:测试实现细节(改测契约形状而非业务逻辑)、过度指定响应字段(用匹配器而非精确值)、缺少状态管理(定义提供方状态)、契约未进 CI(在 CI/CD 运行契约测试)、跳过提供方验证(双方都需运行测试)。生产检查清单包括所有 API 依赖使用消费者驱动契约、使用 Pact Broker 或等价物共享契约、CI 流水线中执行提供方验证、部署前执行 can-i-deploy、提供方状态用于测试数据准备、契约为提供方版本与 git SHA。适用场景为微服务或前后端分离下的接口兼容性保障。限制方面,文档未提供具体安装步骤、依赖版本、收费或价格信息,暂未提供。