架构设计程序员编程学习

Contract Testing - 契约测试

2016-11-02  本文已影响2348人  MoZhou

Why

多用于微服务架构,当不同服务之间需要互调API时,传统测试无法覆盖,需要通过制定一个类似通信协议(这里叫契约)来确保内部服务正常通信

What

契约测试会测试外部服务的边界,以查看服务调用的输入/输出,并测试该服务能否符合契约预期。将所有的消费者契约测试结果集合起来,有助于维护者在需要时对服务作出变更(不影响消费者),并十分有助于在定义新服务提供支持。

假设一个Provider被多个Consumer调用时,当Provider变化时,需测试对消费端得影响
消费端/生产端 服务升级时,比如由1.0升级至2.0,那么2.0要能覆盖1.0的需求测试

How

作为数据的生产者,需要确保其提供的数据能够符合消费者的要求。作为数据的消费者,需要确保从生产者获取数据后,能够有效地被处理。

具体流程图

Usage

可以用Pact工具来自动化把测试生成json文件作为多个服务通信的契约
关于Pact的用法参见https://github.com/SEEK-Jobs/pact-net

上一篇下一篇

猜你喜欢

热点阅读