美文网首页
基于消费者驱动契约测试

基于消费者驱动契约测试

作者: 一个测试员的日常 | 来源:发表于2019-01-09 22:06 被阅读0次

    在微服务架构下,不同服务由不一样的团队开发和维护。如果个别服务由某些原因升级后需要调整接口,还没有改造完成,影响到服务消费方正常使用接口。

    Ian Robinson提出Consumer-Driver Contracts,消费者驱动契约,简称CDC。能解决上述所描述的问题,这里契约是指服务消费者和服务提供者约定,消费者消费契约,提供者提供契约。

    在没有加入契约时,微服务集成测试调用流程如图1,如果服务提供者返回响应内容发生改变,消费者无法正常集成测试了。

    图1

    加入契约,微服务集成测试流程如图2,在开发过程中,消费者无须等到服务提供者开发完成,就能利用契约能进行预集成测试,同时,能降到联调接口成本。


    图2

    上述主要说明加入契约的好处,我们要做到知其然知其所以然,看看下面消费者驱动契约的流程图:


    图3

    下面给大家解读流程图。

    consumer使用producer发布stubs.jar进行接口测试,也就是说consumer接收到响应内容是stub.jar返回。在consumer服务要加入pring-cloud-starter-stub-runner依赖包,目的为了能够调用stubs.jar包含的契约。

    producer需要生成stubs.jar,提供consumer使用。通过contract maven插件生成stub jar包,然后install到本地。在生成之前需要配置groovy文件,groovy文件主要包括请求信息和响应内容, groovy文件可以理解为契约内容。在producer服务要加入spring-cloud-starter-contract-verifier,为了验证是否符合契约。

    搭建消费者驱动契约需要用到:

    • Java8
    • Spring Boot (2.04.RELEASE)
    • Spring Cloud Contract (2.0.1.RELEASE)
    • Maven
      暂时不详细说整个开发流程,日后会把开发流程写完。大家下载在github上下载CDC例子进行解读和运行。

    参考资料:Consumer-Driven Contract Testing with Spring Cloud Contract

    相关文章

      网友评论

          本文标题:基于消费者驱动契约测试

          本文链接:https://www.haomeiwen.com/subject/kosnrqtx.html