乐趣区

关于软件测试:软件测试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 的应用流程哦。

退出移动版