Spring Cloud Contract 初识之一 :简介

本文介绍了Spring Cloud Contract,一个支持消费者驱动契约测试的解决方案,包括其核心组件Spring Cloud Contract Verifier。该工具有助于在微服务架构中进行端到端测试和模拟其他服务,提供快速反馈且无需完整部署。主要特性包括生成桩代码、推广验收测试驱动开发和契约的版本控制。此外,还详细说明了如何在Server/Producer端配置和使用Contract Verifier。
摘要由CSDN通过智能技术生成

1、简介

Spring Cloud Contract 是一个包含解决方案的综合项目,帮助用户成功地向 Consumer Driven Contracts 进行处理。目前,Spring Cloud Contract由Spring Cloud Contract Verifier项目组成。

Spring Cloud Contract Verifier 是一个支持基于JVM的消费者驱动契约(CDC)开发应用程序的工具。它使用Groovy或YAML编写的契约定义语言(DSL)。合同定义用于生成以下资源:

  • 默认情况下,WireMock(HTTPServerStub)在对客户端代码进行集成测试(客户端测试)时使用JSON 桩。测试代码仍然必须手工编写,测试数据由Spring Cloud Contract Verifier生成。
  • 如果您使用的是Messaging routes,我们正在集成Spring Integration、Spring Cloud Stream和Apache Camel。但是,你如果愿意你也可以设置自己的集成。
  • 验收测试(默认情况下为JUnit或Spock),用于验证API的服务器端实现是否符合约定(服务器测试)。完整测试由Spring Cloud Contract Verifier生成。

Spring Cloud Contract Verifier将TDD移动到软件体系结构的级别。

2、特征

在尝试测试与其他服务通信的应用程序时,我们可以做两件事之一:

  • 部署所有微服务并执行端到端测试
  • 模拟单元/集成测试中的其他微服务

(1)部署所有微服务并执行端到端测试

优势:

  • 模拟生产
  • 测试服务之间的真是通信

缺点:

  • 为了测试一个微服务,我们需要部署6个微服务,几个数据库等等。
  • 进行测试的环境将锁定为一组测试(也就是说,在此期间没有其他人能够运行测试)。
  • 运行时间长
  • 极迟反馈
  • 极难调试

(2)模拟单元/集成测试中的其他微服务

优势:

  • 极快反馈
  • 不需要基础设施

缺点:

  • 服务的实现者创建桩,因此它们可能与现实无关。
  • 可以通过编写pass和fail的用例来进行生产。


为了解决上述问题,创建了Spring Cloud Contract Verifier和Stub Runner。他们的主要想法是给你非常快的反馈,而不需要建立整全部完整的微服务。
Spring Cloud Contract Verifier特性:

  • 确保HTTP/消息传递桩(在开发客户端时使用)正在执行实际服务器端实现将完成的任务。
  • 推广验收测试驱动开发的方法和Microservices 体系结构风格。
  • 提供一种发布通信双方立即可见的契约更改的方法。
  • 生成服务器端使用的样板测试代码。

3、Spring Boot Config

要获得非常详细的一步的指南,请查看

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值