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