架构模式: 服务集成契约测试

架构模式: 服务集成契约测试

上下文

您已应用微服务架构模式。该应用程序包含许多服务。服务通常会调用其他服务。您必须编写自动化测试,以验证服务是否正常运行。

问题

如何轻松测试服务是否提供了客户期望的API?

要点

  • 端到端测试(即启动多个服务的测试)是困难,缓慢,脆弱和昂贵的。

结论

服务的测试套件,由使用它的另一个服务的开发人员编写。测试套件验证服务是否满足消费者服务的期望。

例子

Spring Cloud Contract是一个支持这种测试方式的开源项目。

结果上下文

这种模式具有以下好处:

  • 单独测试服务更容易,更快速,更可靠,更便宜

这种模式有以下缺点:

  • 测试可能会通过,但应用程序将在生产中失败

此模式存在以下问题:

  • 如何确保消费者提供的测试与消费者实际需要的测试相匹配?

原文地址:https://www.cnblogs.com/paxlyf/p/11293749.html

时间: 2024-11-07 11:52:27

架构模式: 服务集成契约测试的相关文章

架构模式: 服务实例与容器一一对应

架构模式: 服务实例与容器一一对应 上下文 您已应用微服务架构模式并将系统架构为一组服务.每个服务都部署为一组服务实例,以实现吞吐量和可用性. 问题 如何打包和部署服务? 要点 服务使用各种语言,框架和框架版本 编写每个服务包含多个服务实例 用于吞吐量和可用性服务必须是可独立部署的 可扩展的服务实例需要彼此隔离 您需要能够快速构建和部署服务 您需要能够约束服务所消耗的资源(CPU和内存) 您需要监视每个服务实例的行为 您希望部署可靠 您必须尽可能经济高效地部署应用程序 解决方案 将服务打包为(D

MicroService 微服务架构模式简述

原文是 Martin Flower 于 2014 年 3 月 25 日写的<Microservices>. 本文内容 微服务 微服务风格的特性 组件化(Componentization )与服务(Services) 围绕业务功能的组织 产品不是项目 强化终端及弱化通道 分散治理 分散数据管理 基础设施自动化 容错性设计 设计改进 微服务是未来吗 其它 微服务系统多大 微服务与SOA 多语言多选择 实践标准和强制标准 让做对事更容易 断路器circuit breaker和产品中现有的代码 同步是

微服务架构模式简介

转自 http://blog.jobbole.com/96948/ 在2014年,Sam Newman,Martin Fowler在ThoughtWorks的一位同事,出版了一本新书<Building Microservices>.该书描述了如何按照Microservice架构模式设计及搭建一个具有良好扩展性并可持续开发的系统.除此之外,该书还将基于该模式的系统演化流程与Continuous Delivery等当前甚为流行的开发流程结合在了一起,使得Microservice架构模式看起来非常具

【转】微服务架构模式简介

在2014年,Sam Newman,Martin Fowler在ThoughtWorks的一位同事,出版了一本新书<Building Microservices>.该书描述了如何按照Microservice架构模式设计及搭建一个具有良好扩展性并可持续开发的系统.除此之外,该书还将基于该模式的系统演化流程与Continuous Delivery等当前甚为流行的开发流程结合在了一起,使得Microservice架构模式看起来非常具有吸引力.基于这些原因,该架构模式迅速被业界所熟知,并在多个产品中被

微服务测试之接口测试和契约测试

日常开发过程中,项目的接口通常由服务提供方约定和提供,微服务模式下接口被多个消费者调用更是常态,那么提供方接口的变更如何快速.高效.无遗漏的通知给消费者呢?另外,当一个service同时被多个使用者调用,如何保证对service的修改可以让其它所有使用者造成的影响都能被感知到?这些问题契约测试可以给你答案.另外,微服务模式下,接口测试是非常重要的测试手段,它在实际的项目中帮助验证微服务之间的协同和交互,大幅降低测试成本和提高测试效率方面提供了很大帮助,可以说接口测试是业务功能测试前置的助推器.因

Spring Cloud Contract 微服务契约测试框架

简介 使用场景 主要用于在微服务架构下做CDC(消费者驱动契约)测试.下图展示了多个微服务的调用,如果我们更改了一个模块要如何进行测试呢? 传统的两种测试思路 模拟生产环境部署所有的微服务,然后进行测试 优点 测试结果可信度高 缺点 测试成本太大,装一整套环境耗时,耗力,耗机器 Mock其他微服务做端到端的测试 优点 不用装整套产品了,测的也方便快捷 缺点 需要写很多服务的Mock,要维护一大堆不同版本用途的simulate(模拟器),同样耗时耗力 Spring Cloud Contrct解决思

大型网站架构模式

一.前言 为了解决大型网站面临的高并发访问.海量数据处理.高可靠运行等一系列问题与挑战,大型互联网公司在时间中提出了许多解决方案,以实现网站高性能.高可用.易伸缩性.可扩展.安全等各种技术架构目标. 二.分层 最常见的架构模式,将系统在横向维度上切分成几个部分,每个部分单一职责.然后通过上层对下层的依赖和调用组成一个完成的系统.网站一般分为三个层次:应用层.服务层和数据层,其具体结构如下图所示: 通过分层,一个庞大系统切分成不同部分,便于分工合作和维护.各层之间具有一定的独立性,只要维持调用接口

《企业应用架构模式中文版》学习笔记(转)

本书先介绍了一些企业应用开发的基础知识,比如分层架构.WEB表现.业务逻辑.数据库映射.并发.会话.分布策略等等.通过使用场景.解决方案.UML等手段详细介绍了设计模式(包括一些常用的设计模式GOF23和本书上新创的设计模式).了解书中这些模式是干什么的.它们解决什么问题.它们是如何解决问题的.这样,如果你碰到类似的问题,就可以从书中找到相应的模式.可以为你节约成本.缩短项目周期时间.避免风险,以确保项目能够完美的完成. 一.三个基本层次:表现层.领域层.数据源层 层次 职责 表现层 提供服务,

熟悉基于JSP和Servlet的Java Web开发,对Servlet和JSP的工作原理和生命周期有深入了解,熟练的使用JSTL和EL编写无脚本动态页面,有使用监听器、过滤器等Web组件以及MVC架构模式进行Java Web项目开发的经验。

熟悉基于JSP和Servlet的Java Web开发,对Servlet和JSP的工作原理和生命周期有深入了解,熟练的使用JSTL和EL编写无脚本动态页面,有使用监听器.过滤器等Web组件以及MVC架构模式进行Java Web项目开发的经验. 1.说一说Servlet生命周期(非常重要) Servlet生命周期包括三部分: 初始化:Web容器加载servlet,调用init()方法 只执行一次 处理请求:当请求到达时,运行其service()方法.service()自动调用与请求相对应的doXXX