暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

【测试开发之路】--MockServer详细设计(二)

嘎嘎软件测试 2021-11-28
600

             关注上方嘎嘎软件测试,您的支持是我们最大的动力!



1 前言最重要的详细设计

上期咱们把需求分析完了,E-R图也画了,今天我们将详细设计给写出来,详细设计就相当于你在造房子的设计图纸,是非常重要、也是非常能够看出人能力水平的一个东西。


因为MockServer主要是给测试、开发人员使用协助测试的工具,它的使用场景没有高并发、高性能、高可用诉求,所以咱们这次的详细设计会比较简单一些。但还是要说明,如果你也开始计划开发一个平台,那么请一定要写详细设计,这是整个开发过程中最重要的环节,请一定不要放过它,甚至你可以去花大量时间去反复琢磨,并给公司经验丰富的开发、架构去完善你的详细设计。

2 详细设计

接下来我将这次开发的MockServer的详细设计分享给大家,肯定有一些不足之处,但还是希望给大家一个引导和启发。


关于本次的详细设计,主要是做了核心流程说明、重要接口说明、数据库设计,另外关于详细设计还会有性能设计、灰度设计、监控设计等等,我们在最开始设计的时候要进行通篇考虑(找一个涵盖所有设计范围的详细设计模板去开始构思你的详细设计),在实际写详细设计的时候,根据实际情况来做合适的设计。


下面是本次的MockServer的详细设计说明:




1. 总体设计

1.1 总体说明

因现有EASY-MOCK无法满足现有的MOCK功能需要,故需要自建Mock能力,编写Mock平台功能,整体业务核心功能如下:

  • 增删改查MOCK接口

  • 接口支持固定延时/随机延时

  • 接口支持加解密

  • 支持动态响应、支持随机响应

  • 支持返回http协议状态码


1.2 核心流程设计

1.2.1 核心业务N流程设计

业务需求描述,简明扼要描述功能的用途加上泳道图展现

2.功能性设计

本次需求涉及的必须实现的功能,以模块划分逐一描述实现方案

2.1 模块(功能)N设计

通过接口、数据库描述功能如何实现,如有其它实现方式自行添加

2.1.1 重要接口设计

2.1.1.1 查询响应接口



接口名称查询响应接口
接口描述查询响应接口
变更类型新增、修改(注意前后的兼容性)、删除
请求路径接口的完整路径
接口业务逻辑

详细描述接口内逻辑步骤:


1.  拦截所有/mock开头的请求

2.  检查入参url;

3.  将该url进行解析,查询到对应的接口;

4.  根据查询结果来匹配接口响应(*:*为默认),优先匹配kv模式的响应,也就是根据请求数据来返回响应,匹配不到kv则取默认响应;

5.  存在多个默认响应则随机取出一个默认响应;

6.  返回接口响应

错误码

2.2 数据库设计

2.2.1 数据库设计概览




Schema用途

project_info记录项目信息表
mock_http_infoMock接口信息表

http_response响应信息表

project_http_mapping项目接口映射表

mock_response_mapping接口响应映射表

2.2.2 数据表详细设计

详细描述各个表的设计或以E-R图代替









表名project_info


字段名数据类型可空是否唯一描述
idvarcharNY主键
project_namevarcharNN项目名称
project_codevarcharNY项目编码
project_base_urlvarcharNY项目基础url
project_descvarcharYN项目描述
create_datetimedatetimeNN
update_datetimedatetimeNN
created_byvarcharNN
updated_byvarcharNN





表名mock_http_info


字段名数据类型可空是否唯一描述
idvarcharNYproject_info_id + mock_http_url联合唯一
project_info_idvarcharNN
mock_http_methodvarcharNN接口方法
mock_http_urlvarcharNN接口URL(非全URL)
mock_http_descvarcharYN接口描述
mock_http_decrypt_typeintNN请求解密方式(枚举),当为N时,不做解密操作
mock_http_encrypt_typeintNN请求加密方式(枚举),当为N时,不做加密操作
create_datetimedatetimeNN
update_datetimedatetimeNN
created_byvarcharNN
updated_byvarcharNN





表名http_response


字段名数据类型可空是否唯一描述
idvarcharNY
mock_http_info_idvarcharNNmock_http_info_id + http_resp_kv 联合唯一
http_resp_bodyvarcharNN响应体
http_resp_kvvarcharNN匹配键值对
mock_http_resp_time_startintNN接口响应时间段
mock_http_resp_time_endintNN接口响应时间段
create_datetimedatetimeNN
update_datetimedatetimeNN
created_byvarcharNN
updated_byvarcharNN

3 小结

上述我们将详细设计给写完了,接下来就要开始正式编码之旅了,下一篇手把手带你开始MockServer编码之旅,在此之前,请多看看详细设计文档,看看自家开发的设计文档。


喜欢的话,记得点“赞”“在看”                        

文章转载自嘎嘎软件测试,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论