MockServer 服务框架设计

简介: MockServer 服务框架设计

大部分现有的 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 的使用流程哦。


相关文章
|
运维 前端开发 搜索推荐
大象转身-平台架构如何拥抱业务创新
如果你正在负责一个超大复杂型平台(比如电商、支付、物流)的架构师,且面临各种技术负债(比如架构复杂性、团队协同复杂性),同时业务又面临从平台服务,到场景化创新的转型。那么这篇文章也许对你有收获。
112851 25
|
API 开发工具 Android开发
AppsFlyer 研究(一)AppsFlyer SDK 集成(1)
AppsFlyer 研究(一)AppsFlyer SDK 集成
2070 0
|
2月前
|
Java 项目管理 Maven
Maven项目管理与构建自动化完全指南
Maven彻底改变了Java项目管理方式,通过POM模型、依赖管理和标准化构建流程,大幅提升开发效率。本文深入解析其核心概念、多模块管理、私服搭建及与Spring Boot、Docker等现代技术栈的集成实践,助力开发者实现高效、规范的项目构建与团队协作。
Maven项目管理与构建自动化完全指南
|
机器学习/深度学习 人工智能 自然语言处理
自然语言处理(Natural Language Processing,简称NLP)
自然语言处理(NLP)是人工智能的分支,旨在让计算机理解、解释和生成人类语言。NLP的关键技术和应用包括语言模型、词嵌入、文本分类、命名实体识别、机器翻译、文本摘要、问答系统、情感分析、对话系统、文本生成和知识图谱等。随着深度学习的发展,NLP的应用日益广泛且效果不断提升。
871 4
|
存储 API 数据安全/隐私保护
​邮箱收不到验证码邮件是什么原因
在互联网应用中,未收到验证码邮件常令人困扰。原因包括邮件误入垃圾箱、邮箱设置不当、发件服务器故障、地址输入错误及ISP拦截。解决策略有检查垃圾邮件、清理邮箱、修正设置、确认地址准确及更换邮箱服务。推荐使用AOKSend提升邮件送达率,其优势在于高送达率、实时监测与易集成,通过注册、获取API、配置SMTP及测试,可有效解决验证码邮件送达问题,优化用户体验。
|
Ubuntu Linux Shell
Linux Crontab 定时任务 及 Ubuntu 中cron指令使用
本文是博主学习linux定时任务的记录,希望对大家有所帮助
1050 0
Linux Crontab 定时任务 及 Ubuntu 中cron指令使用
|
存储 弹性计算 固态存储
阿里云服务器4核32G配置多少钱?我们应该如何选择?
阿里云服务器4核32G配置有多达十几种实例规格可选,不同实例规格的收费标准不一样,本文介绍了4核32G配置可选实例规格和最新收费标准及活动价格,可供大家了解阿里云服务器4核32G配置多少钱以及选择建议。
阿里云服务器4核32G配置多少钱?我们应该如何选择?
|
机器学习/深度学习 人工智能 安全
Azure Databricks实战:在云上轻松进行大数据分析与AI开发
【4月更文挑战第8天】Databricks在大数据分析和AI开发中表现出色,简化流程并提高效率。文中列举了三个应用场景:数据湖分析、实时流处理和AI机器学习,并阐述了Databricks的一体化平台、云原生弹性及企业级安全优势。博主认为,Databricks提升了研发效能,无缝集成Azure生态,并具有持续创新潜力,是应对大数据挑战和加速AI创新的理想工具。
1404 1
|
分布式计算
MapReduce中的Shuffle过程是什么?为什么它在性能上很关键?
MapReduce中的Shuffle过程是什么?为什么它在性能上很关键?
504 0
|
安全 算法 Go
有向图的强联通分量(SCC)Tarjan算法
有向图的强联通分量(SCC)Tarjan算法
595 0