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

更多技术文章

MockServer 服务框架相关推荐

  1. MockServer 服务框架设计

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

  2. [转载]Surging 分布式微服务框架使用入门

    前言 本文非 Surging 官方教程,只是自己学习的总结.如有哪里不对,还望指正. 我对 surging 的看法 我目前所在的公司采用架构就是类似与Surging的RPC框架,在.NET 4.0框架 ...

  3. python 微服务框架 知乎_序: 我需要一个什么样的微服务框架

    前言 新坑第一篇文章, 做一个开篇的序吧. 开发了很多 python 的 web 微服务, 也使用过很多 web 框架, django, tornado, flask, 等等等等. 不同的 web 框 ...

  4. 分布式服务框架 Zookeeper -- 管理分布式环境中的数据

    2019独角兽企业重金招聘Python工程师标准>>> 转自:http://www.ibm.com/developerworks/cn/opensource/os-cn-zookee ...

  5. go微服务框架go-micro深度学习(一) 整体架构介绍

    产品嘴里的一个小项目,从立项到开发上线,随着时间和需求的不断激增,会越来越复杂,变成一个大项目,如果前期项目架构没设计的不好,代码会越来越臃肿,难以维护,后期的每次产品迭代上线都会牵一发而动全身.项目 ...

  6. Oracle发布开源的轻量级 Java 微服务框架 Helidon

    近日,Oracle推出了一个新的开源框架Helidon,该项目是一个用于创建基于微服务的应用程序的Java库集合.和Payara Micro.Thorntail(之前的WildFly Swarm).O ...

  7. 百变应用场景下,优酷基于图执行引擎的算法服务框架筑造之路!

    作者| 阿里文娱高级专家 随方, 阿里文娱开发专家 轩成 责编 | 屠敏 头图 | CSDN 下载自视觉中国 背景 在阿里的业务中,有广泛的算法应用场景,也沉淀了相关的算法应用平台和工具:基础的算法引 ...

  8. 分布式服务框架-原理与实践:14---流量控制-学习笔记(理论篇)

    2019独角兽企业重金招聘Python工程师标准>>> 上次学了灰度发布,这次我们学习流控. ============================================ ...

  9. Android Google 服务框架相关问题

    为什么80%的码农都做不了架构师?>>>    两年没发文了~ 先说现象: 1.定制 ROM,打包时在 /system/priv-app 目录下添加了谷歌服务框架相关 apk(Gms ...

  10. 企业级微服务框架落地

    根据康威定律,当互联网公司业务和团队发展到一定规模,微服务架构是一种必然的演化趋势.我们看看唯品会对微服务框架体系的建设及实践. 先来看一下唯品会微服务基础中台架构的设计思路.围绕微服务,唯品会自主研 ...

最新文章

  1. angularjs与后台传值接收值
  2. 计算约化重叠积分氟化氢HF
  3. Acess link
  4. 注入游戏没有焦点_数独游戏 数学之美(三)
  5. VTK:PolyData之HighlightBadCells
  6. 《iOS应用逆向工程(第2版)》高清电子书 PDF
  7. java 内部编码_Java 中文编码分析
  8. 组装台式电脑配置清单_攒机必备!各种价位的台式电脑配置清单!
  9. MIP开发教程(三) 使用MIP-CLI工具调试组件
  10. vue接收索引_前端开发:Vue中findIndex() 方法的使用
  11. idea生成类中序列化id
  12. puppet详解(九)——puppet项目实战
  13. 【渝粤教育】电大中专电商运营实操 (10)作业 题库
  14. vue 读取地址栏参数
  15. Kubernetes部署记录
  16. 【GDAL基础教程】多张二维tif数据转三维tif数据
  17. 英语基础-疑问句概述
  18. windows xp查看缩略图时有缩略图没有文件名
  19. markdown语法下
  20. 3月18日云栖精选夜读 | 开发者必看!探秘阿里云Hi购季开发者分会场:海量学习资源0元起!... 1

热门文章

  1. C++ PostMessage 模拟键盘鼠标
  2. java鼠标点击按钮_Java 模拟鼠标事件 java中控制鼠标点击的方法
  3. dll中封装MFC(VC2012)资源--自定义一个复用的登录界面
  4. 来了!Python 官方发布了整套的中文PDF 文档(共27本)
  5. 浏览器安装fehelper插件,亲测可行
  6. FeHelper下载:(Chrome浏览器)
  7. 影子系统 重启蓝屏 开机蓝屏 安全模式蓝屏 进PE蓝屏 解决方案
  8. ext2文件系统源代码之balloc.c文件解析
  9. HTTP协议抓包分析
  10. 零基础使用pscc 证件照换底色