← 中文资源

简体中文版本

契约测试落地工作流

引入消费者驱动的契约,使服务变更能对照真实消费期望被验证。

阅读英文原文

目标

契约测试能在集成前捕获破坏性变更。本工作流先挑选破坏代价最高的服务交互,让消费方定义其依赖的接口部分形成契约,在 CI 中运行生产方测试以断言满足全部消费契约,从而阻止破坏性合并,再把契约发布到代理并按消费方演进做版本化。

步骤要点

  1. 挑选破坏代价最高的交互建立契约。
  2. 由消费方定义依赖的接口期望。
  3. 在 CI 中验证生产方满足全部契约。
  4. 把契约发布并版本化。
# verify a producer against consumer contracts
pact-verifier --provider api --pact-broker https://broker.example.com

验证

按顺序执行上述步骤后,逐项确认每个步骤的预期状态均已满足;只有全部预期状态成立,才认为本流程完成。若某一步未达到预期状态,应先按排错提示排查,不要跳过继续,以免掩盖问题。

排错提示

  • 无契约会在生产才发现破坏。
  • 过度规定的契约会变脆。
  • 无版本化契约无法演进。

适用边界

  • 需要契约工具与代理。
  • 从关键消费方起步。