MockServer 服务框架设计

简介: 大部分现有的 mock 工具只能满足 HTTP 协议下简单业务场景的使用。但是面对一些复杂的业务场景就显得捉襟见肘,比如对 socket 协议的应用进行 mock,或者对于支付接口的失败重试的定制化 mock 场景。为解决上述问题,霍格沃兹测试学院设计并研发了 CSRMockServer 在下面的文章中简称 mock server。mock server 相较于这些 mock 工具,

大部分现有的 mock 工具只能满足 HTTP 协议下简单业务场景的使用。但是面对一些复杂的业务场景就显得捉襟见肘,比如对 socket 协议的应用进行 mock,或者对于支付接口的失败重试的定制化 mock 场景。

为解决上述问题,霍格沃兹测试学院设计并研发了 CSRMockServer 在下面的文章中简称 mock server。

mock server 相较于这些 mock 工具,具有规则更灵活、定制化更强、支持拓展多协议的特点。在本章节将会从架构设计介绍如何实现以上的特点,而在实战章节,会针对具体的测试场景,演示不同的解决方案。

框架设计

若想实现上述特点,一定要有一个合理的架构设计。
mock server 架构设计:

框架的设计主要分为五个部分:

客户端

  • 客户端主要负责与 mock 服务的交互,由测试人员制定 mock 的请求响应规则,以及启动/停止 mock 服务。

代理

  • 负责请求和响应的收发,接收到请求后,先转发给 Mock 引擎,mock 引擎收到请求响应数据进行处理后,再返回给代理响应信息,代理给服务器返回模拟的响应值。

协议(protocol)

  • 不同的协议的请求、响应数据格式往往不相同,既有标准的 json 结构体,也有二进制或十六进制的数据类型。这部分数据需要在协议层进行处理之后,才好进行相关的逻辑处理。所以协议层(protocol)主要负责和协议相关的数据处理。
  • protocol 还具备很强的很拓展性,如果一个系统涉及到了多协议的 mock,测试人员可以给不同的协议指定不同的规则,以此达到多协议 mock 的作用。具体的使用会在后面的章节进行演示。

Mock引擎

  • mock 逻辑的驱动引擎,根据不同功能模块的请求,分发给 mock 服务的对应的实现接口。

后台服务

  • 提供与 mock 服务交互的对外接口。

设计优点

  • 提供了后台服务接口,测试人员添加规则、控制 mock 服务更加灵活
  • 定制化更强,内置支持根据索引、消耗、mock 后添加动作等操作
  • 通过切换不同的 protocol 与代理服务,即可实现多协议的支持,扩展性强

mock server 框架就先介绍这些,后面将会演示 mock server 的使用流程哦。

⬇️ 点击“阅读原文”,提升测试核心竞争力!

原文链接
更多技术分享:https://qrcode.ceba.ceshiren.com/link?name=article&project_id=qrcode&from=Aliyun&timestamp=1650007321

相关文章
|
12月前
|
存储 C语言
C语言指针与指针变量的区别指针
指针是C语言中的重要概念,用于存储内存地址。指针变量是一种特殊的变量,用于存放其他变量的内存地址,通过指针可以间接访问和修改该变量的值。指针与指针变量的主要区别在于:指针是一个泛指的概念,而指针变量是具体的实现形式。
|
图形学
【unity小技巧】实现没有动画的FPS武器摇摆和摆动效果
【unity小技巧】实现没有动画的FPS武器摇摆和摆动效果
185 0
|
12月前
|
JavaScript 前端开发 测试技术
[新手入门]todolist增删改查:vue3+ts版本!
【10月更文挑战第15天】[新手入门]todolist增删改查:vue3+ts版本!
|
12月前
|
SQL 安全 关系型数据库
SQL错误代码1303解析与解决方案:深入理解并应对权限问题
在数据库管理和开发过程中,遇到错误代码是常见的事情,每个错误代码都代表着一种特定的问题
精准记录:使用 Playwright 实现屏幕截图
Playwright是用于自动化浏览器的库,提供简洁的API进行屏幕截图。要截屏,调用`page.screenshot()`方法,指定保存路径。若需全页截图,设置`full_page=True`。还能捕获图片数据流,不写入文件,以及截取特定元素,如`.header`。Playwright的截图功能比Selenium更强大,便于开发和测试人员分析应用界面。
|
Java 测试技术 UED
在Spring Boot中实现灰度发布的策略
在Spring Boot中实现灰度发布的策略
|
安全 API
Gateway集成Netty服务
Netty是一个异步的,事件驱动的网络应用框架,用以快速开发高可靠、高性能的网络应用程序,提供网络传输能力的管理,支持常见的数据传输协议;
450 0
Gateway集成Netty服务
|
存储
【版本控制】GitHub图床服务Action---自动监视图床仓库的目录下的文件数
【版本控制】GitHub图床服务Action---自动监视图床仓库的目录下的文件数
173 0
|
PyTorch 算法框架/工具 计算机视觉
|
机器学习/深度学习 数据可视化 前端开发
PyTorch中的可视化工具
PyTorch中的可视化工具
377 0