3 分钟全面了解 API Moke

news2024/9/20 18:41:25

一、什么是密闭服务?

Google 测试团队的博客中,有一篇博文介绍的正是《Hermetic Servers(密闭服务)》。如下图所示,当被测试系统依赖了 Another Backend,这种依赖即产生了 “不可控” 因素。
在这里插入图片描述
怎么定义密闭服务呢?

如果可以在一台没有网络的机器上启动整个服务并且服务可以按照预期的工作,那么这就称为是一个密闭服务。
但是,图中关系中 Another Backend 服务会依赖其他的服务、中间件… ,最终会形成一个庞大的调用网络,如何解决这个问题呢?答案是:通过 Mock Server。
在这里插入图片描述

二、为什么需要 API Moke?

2.1 服务规模庞大且复杂
当前在各研发团队中普遍存在的一个问题是服务依赖和接口数量规模越来越大。造成这样一个现状的原因有三个:
● 业务场景复杂度越来越高,如:双十一各大电商平台的玩法越来越复杂。
● 大单体服务 —> 微服务的演进,服务模块之间的调用变成了微服务之间调用。
● 云原生基础设施使得创建服务变得很简单,研发团队缺少 “克制”。
2.2 挑战&解决办法
一个集群几十个微服务非常普遍,这使得上述中的 “密闭服务” 越来约困难也给开发/测试工作带来很多挑战。这种挑战主要体现在以下几个方面:
● Web 前端依赖复杂联调困难
● 后台开发无法在本地启动服务,无法直接本地开发调试
● 自动化测试活动开展困难
通过 API Mock 帮助构建密闭服务解决以上三个挑战:
● 通过 Mock 解决联调困难问题
在这里插入图片描述
前端同事的应用访问 Mock Server,通过合理配置访问 Mock 规则 或者透传到后台服务。
● 自动化测试困难
在这里插入图片描述
自动化测试开展困难的,通常主要原因是依赖服务是第三方服务不可控,如:第三方支付接口… ,通过构建 Mock Server 来构建测试密闭环境,解决此问题。

三、实践
3.1 通过接口管理快速导入 API 文档
规范化的 API 管理能力是构建 Mock 的基础,笔者所在团队 HTTP 接口使用 Swagger 统一管理,优测接口管理提供完善的接口托管能力(见下图)。
在这里插入图片描述
通过上传导入的形式可以对接口进行统一的管理和版本的管控。同时,接口管理的能力支持对接 git 代码仓库和流水线,实现服务和接口管理自动化同步。
同时,优测接口管理支持 RPC 协议托管,包括:PB、tars(腾讯内部 IDL)、Dubbo 等协议接口文档托管能力。
3.2 接口文档基础上构建 Mock 能力
在这里插入图片描述
通过构建 Mock 能力可以解决 2.2 中的挑战问题。

四、总结
云原生、微服务为服务研发及运维工作带来了很多便捷,同时也带来了诸多挑战。本文从密闭服务概念开始讲起,通过构建 Mock Server 能力解决服务之间依赖问题,提升前端和后台开发者效率。通过优测接口管理和 Mock 的能力构建基础 Mock 能力解决研发、测试过程中环境的 “不可控” 问题。

优测接口测试平台简介:

优测接口测试是一款在线云原生 API 测试管理平台,简单易⽤的 API 管理平台,⽀持多版本管理、Swagger 导⼊、在线调试, 协助研发团队规范管理 API ⽂档、提升前后台联调效率。欢迎大家登录优测官网免费体验!
在这里插入图片描述
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/821020.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

ECharts:一款超实用的基于JavaScript的数据可视化图表库

一、ECharts的简单介绍 ECharts是一款基于JavaScript的数据可视化图表库,提供直观,生动,可交互,可个性化定制的数据可视化图表。ECharts最初由百度团队开源,并于2018年初捐赠给Apache基金会,成为ASF孵化级…

MapBox 做聚合图点位聚合效果实现教程

最近收到一个需求,要对 5000的点位进行展示。直接展示的话满屏幕都是点,效果太丑,于是想到了聚合,聚合有很多种方案。首先你可以手动的些代码来计算某个范围内的点的数量然后再把聚合的结果展示在这个范围的某个位置。这针对于简单…

使用java.io.BufferedReader的readLine()函数读入一行文本

说明 可以使用java.io.BufferedReader的readLine()函数读入一行文本,返回的字符串不包含回车和换行字符。 https://docs.oracle.com/en/java/javase/19/docs/api/java.base/java/io/BufferedReader.html#readLine() 代码示例 读取控制台的输入 使用下面的代码来验…

TSINGSEE青犀视频汇聚平台EasyCVR多种视频流播放协议介绍

众所周知,TSINGSEE青犀视频汇聚平台EasyCVR可支持多协议方式接入,包括主流标准协议GB28181、RTSP/Onvif、RTMP等,以及厂家私有协议与SDK接入,包括海康Ehome、海大宇等设备的SDK等。今天我们来说一说,EasyCVR平台支持分…

年度最强大模型顶会来袭!喊话中国数百万AI开发者,速来!

能硬核 生态共创”“产业共振 智能涌现”“产教融合 人才共育”“携手飞桨 创新加速”2023年全球AI浪潮迭起,大语言模型热度空前,生成式人工智能为千行百业高质量发展带来更多想象空间。作为前沿科技风向标、汇聚全球开发者的顶级盛会,WAVE S…

Java on VS Code 7 月更新|反编译器支持升级、代码补全性能提升、AI 相关更新及更多

作者:Nick Zhu 排版:Alan Wang 大家好,欢迎来到 Visual Studio Code for Java 的7月更新!在这篇博客中,我们将为您提供有关反编译器支持的重要更新。此外,我们将分享更多最近代码补全性能提升的进展&#x…

B079-项目实战--支付模块 定时任务 项目总结

目录 概述示例jar包配置类任务详情 项目应用封装的工具类QuartzUtils封装IQuartzSrvice和QuartzServiceImpl封装参数QuartzJobInfo编写任务逻辑MainJob调用第三方支付前添加定时任务异步回调后移除定时任务 订单支付整体流程 概述 优势:Tmer不支持持久化&#xff0…

亚马逊水基灭火器UL8测试报告ISO17025实验室办理

在跨境电商平台上销售的境外电商,在美国市场中需要提供相关的安全规范报告。其中,美国相关部门要求,如果商家未能提交UL(Underwriters Laboratories)标准的检测报告,将会被责令停止销售。而为了在亚马逊、T…

【论文精读】用于多文档摘要生成的层次Transformer方法

前言 论文分享 来自2019ACL的多文档摘要生成方法论文,作者来自英国爱丁堡大学,引用数310 Hierarchical Transformers for Multi-Document Summarization 代码地址hiersumm 多文档摘要抽取的难点在于没有合适的数据集,同时过长的文档文本也导…

Makefile模板和工程模板(消息队列和共享内存)的使用

一、 Makefile模板 #指定生成的文件名 OJB_OUT test#指定每一个c文件对应的.o文件 OBJS a.o b.o main.o#指定编译器 CC gcc#指定需要的库 ULDFLAGS ########################################### #以下的内容不需要修改 ########################################### all:…

行业追踪,2023-08-01

自动复盘 2023-08-01 凡所有相,皆是虚妄。若见诸相非相,即见如来。 k 线图是最好的老师,每天持续发布板块的rps排名,追踪板块,板块来开仓,板块去清仓,丢弃自以为是的想法,板块去留让…

leetcode-143-重排链表

题意描述: 给定一个单链表 L 的头节点 head ,单链表 L 表示为: L0 → L1 → … → Ln - 1 → Ln 请将其重新排列后变为: L0 → Ln → L1 → Ln - 1 → L2 → Ln - 2 → … 不能只是单纯的改变节点内部的值,而是需要…

cmake+pybind11打包c++库成python wheel安装包

目录 写在前面准备1、pybind11获取源码编译安装 2、conda demo官方源码修改CMakeLists.txt编译生成安装测试 参考完 写在前面 1、本文内容 有时候我们需要用c代码,供python调用,本文提供将c库封装成python接口的方法,并将库打包成可通过pip安…

Apikit 自学日记:API 异常监控-创建 API 监控

如何在apikit中,创建 API 监控呢? 创建并开启监控API 一、手动创建监控API Eolink API 网络监控平台支持从 Eolink API Management(API管理产品)中导入API信息,或者手动创建监控API。 进入API监控页面,点击…

23款奔驰S450 4MATIC升级原厂流星雨智能数字大灯,让智能照亮您前行的路

凭借智能数字大灯 (DIGITAL LIGHT),您可体验根据其他道路使用者和周围环境进行优化调节的理想照明条件。这款包含130万像素模块大灯,进一步扩展了几何多光束 LED 大灯的功能。其高分辨率的照明可有针对性地点亮各个区域。解锁车辆时,大灯将通…

快速制作美容行业预约小程序

随着科技的不断进步,移动互联网的快速发展,小程序成为了很多行业迅速发展的利器。对于美容行业来说,一款美容预约小程序不仅可以方便用户进行预约,还可以提升美容店铺的服务质量和管理效率。下面,我们来介绍一下如何快…

23 设计模式(详细介绍附DEMO)

设计模式在Java中的应用与实现 🚀🚀🚀1.创建型模式1. 工厂方法模式(Factory Pattern)2.抽象工厂模式(Abstract Factory Pattern)3. 单例模式(Singleton Pattern)4.原型模…

rfid资产盘点管理系统软件

很多企业开始规划固定资产的总结,或者现在开始总结资产。面对众多不同种类的固定资产,总结已经成为一项工程量大、耗时长的任务。采用轻松的RFID固定资产管理系统后,可以大大提高这种总结工作的效率,获得比过去更清晰的资产清单和…

三菱plcCCLINK转profinet与西门子PLC通讯案例分析

用三菱PLC的控制系统需要和西门子的PLC控制系统交互数据,捷米JM-PN-CCLK 是自主研发的一款 PROFINET 从站功能的通讯网关。该产品主要功能是将各种 CCLINK 总线和 PROFINET 网络连接起来。 捷米JM-PN-CCLK总线中做为从站使用,连接到 CCLINK 总线中做为…

【C++】基于多设计模式下的同步异步日志系统

✍作者:阿润021 📖专栏:C 文章目录 一、项目介绍二、项目实现准备工作1.日志系统技术实现策略2.相关技术知识补充2.1 不定参函数设计2.2 设计模式 三、日志项目框架设计1.模块划分2.各模块关系图 四、详细代码实现1.实用工具类设计2.日志等级…