契约测试
定义
契约测试(Contract Testing)是一种用于微服务或前后端分离系统中的测试方式,主要目的是确保服务提供方(Provider)和服务调用方(Consumer)之间的接口“契约”始终保持一致、不会被意外破坏。
Consumer 定义“我需要什么样的 API”,Provider 承诺“我提供的 API 符合你的要求”,并通过测试自动验证双方是否匹配。
契约测试就是为了解决接口不一致、沟通不清导致的问题。
how
Consumer Contract(消费者契约)
由消费者写下“我调用这个 API 时,我需要的数据结构是什么”。
Provider Verification(服务提供方验证)
Provider 必须验证自己返回的数据结构与消费者要求一致。如果不一致,则无法上线,防止破坏接口。
常用tools
Pact(最流行)
Spring Cloud Contract(Java/微服务中常用)
Hoverfly(API 模拟)
契约测试的特殊点是 双方共同维护,不需要全部服务都跑起来。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 JasmineRain's blog!
评论
