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 的使用流程哦。

最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你! 

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

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

相关文章

零基础学编程怎么入手,中文编程工具构件箱之多页面板构件用法教程,系统化的编程视频教程上线

零基础学编程怎么入手,中文编程工具构件箱之多页面板构件用法教程,系统化的编程视频教程上线 一、前言 今天给大家分享的中文编程开发语言工具资料如下: 编程入门视频教程链接 http://​ https://edu.csdn.net/course/detail/39036 ​ …

回乡后发现大家的消费水平都在升级

今天大年初四,来湖南第7天。 大年初四走亲戚,到城里姨妈家做客,我惊讶地发现,这里的消费风向正在发生一场悄然的变革。 以往,我认为大城市的消费水平代表着潮流和品质,然而这次我却发现小城市的消费观念正在…

re:从0开始的CSS之旅 14. 显示模式的切换

1. 两个属性 display 属性可以用于转换元素的显示模式 可选值: block 转换为块元素 inline 转换为行内元素 inline-block 转换为行内块元素 none 不显示元素,并且不占用元素的位置 visibility 属性用于设置元素是否显示 可选值: visible 显示…

文档类图像的智能识别,文档分类自定义分类器

文档类图像的智能识别是利用人工智能技术对文档图像进行自动识别和信息提取的过程。在实际应用中,文档分类是文档类图像识别的一个重要环节,而自定义分类器则可以提高文档分类的准确性和适应性。本文将介绍文档分类自定义分类器的相关概念和方法。 …

springboot/ssm知名作家信息管理系统Java文学作品展示管理系统

springboot/ssm知名作家信息管理系统Java文学作品展示管理系统 开发语言:Java 框架:springboot(可改ssm) vue JDK版本:JDK1.8(或11) 服务器:tomcat 数据库:mysql 5.…

下一代块存储重新定义任务关键型存储架构

HPE 宣布全面推出基于 HPE Alletra Storage MP 构建的 HPE GreenLake for Block Storage 第 3 版,提供业界首款分解式横向扩展块存储,并提供 100% 数据可用性保证。这种独特的块存储产品由共享一切存储架构提供支持,并通过 HPE GreenLake 云平…

智能门锁代码实现之连接硬件的步骤

准备硬件和开发环境:确保你拥有所需的硬件(如微控制器、门锁控制电路、通信接口等),并设置好 C 语言的开发环境。对于 Arduino 等开源硬件平台,你可能需要安装特定的 IDE(集成开发环境)和驱动程…

(算法3)二分查找

朴素二分查找 最直接的二分查找,有序,查找数组中的某个元素 这种方法是有局限性的:只可以查找升序的数组,且要查找的元素是一个 注意:mid(中点)的计算应该是:left(right-left)/2 (个数是偶数时…

接口测试06 -- pytest接口自动化封装Loggin实战

1. 接口关键字封装 1.1 基本概念 接口关键字封装是指:将接口测试过程中常用的操作、验证封装成可复用的关键字(或称为函数、方法),以提高测试代码的可维护性和可复用性。 1.2 常见的接口关键字封装方式 1. 发送请求:封装一个函数,接受参数如请求方法、URL、请求头、请求…

Sketch 99.1 for macOS

Sketch 99.1 for macOS 概述 这个程序是对矢量绘图的创新性和焕然一新的看法。它特意采用了极简主义的设计,基于一个大小无限、图层自由的绘图空间,没有调色板、面板、菜单、窗口和控件。 此外,它提供了强大的矢量绘图和文本工具,…

django通过指定用户手机号查询外键所关联的数据,倒序查询

django通过指定用户手机号查询外键所关联的数据 在Django中,可以通过使用filter方法和双下划线语法来查询外键所关联的数据。以下是一种常见的方法: from your_app.models import User, ForeignKeyModel# 假设User模型有一个名为phone的字段&#xff…

基于Spring Boot的美容院管理系统设计与实现,计算机毕业设计(带源码+论文)

源码获取地址: 码呢-一个专注于技术分享的博客平台一个专注于技术分享的博客平台,大家以共同学习,乐于分享,拥抱开源的价值观进行学习交流http://www.xmbiao.cn/resource-details/1757434902285987841

洛谷数组P1319压缩技术

做题思路: 这里表示输入的第一个数字N为N*N的方阵,后面的数字表示连续输入几个1或者0,定义result表示实际输出的数字0或1(result输出0或1,可以用绝对值abs我们初始化result为0,我们将它-1后再取绝对值就可以…

二、ClickHouse简介

ClickHouse简介 前言一、行式存储二、DBMS功能三、多样化引擎四、高吞吐写入能力五、数据分区与线程级并行六、场景七、特定版本 前言 ClickHouse 是俄罗斯的 Yandex 于 2016 年开源的列式存储数据库(DBMS),使用 C 语言编写,主要…

[NSSCTF]-Web:[SWPUCTF 2021 新生赛]easyrce解析

先看网页 代码审计: error_reporting(0); :关闭报错,代码的错误将不会显示 highlight_file(__FILE__); :将当前文件的源代码显示出来 eval($_GET[url]); :将url的值作为php代码执行 解题: 题目既然允许…

速盾:cdn集群防御空间dns服务器

在当今数字化时代,网络安全和性能成为了企业关注的焦点。速盾的CDN集群防御空间DNS服务器技术为网站提供了更高水平的安全性和性能优化。本文将深入探讨这一技术的关键特点和优势。 1. 集群防御: 速盾的CDN集群防御通过分布在全球的节点集群,…

c++恶魔轮盘制造第1期输赢

小常识&#xff0c;恶魔叫DEALER&#xff0c;上帝叫God. 赢了很简单 void sheng() { cout<<"你获胜了&#xff01;";MessageBox(NULL,TEXT("你的钱~~~~~~给你"),TEXT("DEALER"),MB_OK);system("pause");system("cls"…

P5732 【深基5.习7】杨辉三角 python解法

# 【深基5.习7】杨辉三角 ## 题目描述 给出 n<20&#xff0c;输出杨辉三角的前 n 行。 如果你不知道什么是杨辉三角&#xff0c;可以观察样例找找规律。 ## 输入格式 ## 输出格式 ## 样例 #1 ### 样例输入 #1 6 ### 样例输出 #1 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5…

片上网络NoC(4)——直连拓扑

目录 一、前言 二、直连拓扑 三、总结 一、前言 本文中&#xff0c;我们将继续介绍片上网络中拓扑相关的内容&#xff0c;主要介绍直连拓扑&#xff0c;在此之前&#xff0c;我们已经介绍过了拓扑的指标&#xff0c;这将是继续阅读本文的基础&#xff0c;还没有了解相关内容…

算法刷题:盛水最多的容器

盛水最多的容器 .习题链接题目题目解析算法原理我的答案 . 习题链接 盛水最多的容器 题目 题目解析 VH*W h为左右两边低的一边,w为左右两边之间的距离 算法原理 定义两个指针 left0,rightn-1; left从左往右对数组进行遍历,right从右往左进行遍历 遍历的过程中,每一次都需要…