软件测试|MockServer 服务框架
2023-06-13 09:16:31 时间
大部分现有的 mock 工具只能满足 HTTP 协议下简单业务场景的使用。但是面对一些复杂的业务场景就显得捉襟见肘,比如对 socket 协议的应用进行 mock,或者对于支付接口的失败重试的定制化 mock 场景。
为解决上述问题,霍格沃兹测试学院设计并研发了 CSRMockServer 在下面的文章中简称 mock server。
mock server 相较于这些 mock 工具,具有规则更灵活、定制化更强、支持拓展多协议的特点。在本章节将会从架构设计介绍如何实现以上的特点,而在实战章节,会针对具体的测试场景,演示不同的解决方案。
框架设计
若想实现上述特点,一定要有一个合理的架构设计。
mock server 架构设计:
框架的设计主要分为五个部分:
客户端
- 客户端主要负责与 mock 服务的交互,由测试人员制定 mock 的请求响应规则,以及启动/停止 mock 服务。
代理
- 负责请求和响应的收发,接收到请求后,先转发给 Mock 引擎,mock 引擎收到请求响应数据进行处理后,再返回给代理响应信息,代理给服务器返回模拟的响应值。协议(protocol)
- 不同的协议的请求、响应数据格式往往不相同,既有标准的 json 结构体,也有二进制或十六进制的数据类型。这部分数据需要在协议层进行处理之后,才好进行相关的逻辑处理。所以协议层(protocol)主要负责和协议相关的数据处理。Mock引擎
- protocol 还具备很强的很拓展性,如果一个系统涉及到了多协议的 mock,测试人员可以给不同的协议指定不同的规则,以此达到多协议 mock 的作用。具体的使用会在后面的章节进行演示。
- mock 逻辑的驱动引擎,根据不同功能模块的请求,分发给 mock 服务的对应的实现接口。后台服务
- 提供与 mock 服务交互的对外接口。设计优点
- 提供了后台服务接口,测试人员添加规则、控制 mock 服务更加灵活
- 定制化更强,内置支持根据索引、消耗、mock 后添加动作等操作
- 通过切换不同的 protocol 与代理服务,即可实现多协议的支持,扩展性强 mock server 框架就先介绍这些,后面将会演示 mock server 的使用流程哦。
相关文章
- 国内最强微服务框架,没有之一!
- 浅说API网关与微服务框架(下)——微服务的黑长直初恋故事
- linux重启syslog服务命令_win7到正在启动进不去
- GitHub上惊现阿里大佬手记,这是真把微服务、容器和K8S讲清楚了
- 《ArchSummit:从珍爱微服务框架看架构演进》
- [go-kratos-1]Golang微服务框架kratos安装和使用
- Spring Boot 系列四:Springboot 启动原理和微服务主流框架
- 字节微服务HTTP框架Hertz使用与源码分析|拥抱开源
- 我的 Serverless 实战 — 云函数与触发器的创建与使用 ( 开通腾讯云 “ 云开发 “ 服务 | 创建云函数 | 创建触发器 | 测试触发器 )
- 甲骨文新微服务框架 Helidon Níma:使用虚拟线程实现高性能
- golang实现国标GB28181流媒体点播预览服务方案的框架流程
- OracleOraDb10g_home1TNSListener服务无法启动怎么解决
- Java微服务框架一览详解架构师
- 微服务框架—搭建 go-micro环境详解编程语言
- Instagram为账户有被盗风险的用户推出安全检查服务
- 器步骤深入浅出Linux Mail服务器快速搭建(linuxmail服务)
- 如何使用 firewall-cmd 管理网络服务
- 器Linux服务器:掌控数字世界的核心力量(linux系统 服务)
- Linux重启日志服务:重启上线新手指引(linux 重启日志服务)
- 改善省市区缓存 Redis 服务体验(省市区缓存redis)
- MySQL服务始终无法启动(mysql一直无法启动)
- 服务基于SPB和Redis的轻量级服务框架(spb redis)
- Oracle主外建视频快速了解构建和管理服务(oracle主外建视频)
- Redis自动续约,让缓存服务更持久(redis自动续约)
- 如何在Oracle 10中创建新的服务(oracle10新建服务)
- 使用Spring框架实现远程服务暴露与调用
- 《软件架构模式》-第四章 微服务框架模式(上)