首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >【测试开发之路】--MockServer详细设计(二)

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

作者头像
用户9913368
发布2022-08-13 15:41:06
发布2022-08-13 15:41:06
6410
举报
文章被收录于专栏:嘎嘎软件测试嘎嘎软件测试

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_info

Mock接口信息表

http_response

响应信息表

project_http_mapping

项目接口映射表

mock_response_mapping

接口响应映射表

2.2.2 数据表详细设计

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

表名

project_info

字段名

数据类型

可空

是否唯一

描述

id

varchar

N

Y

主键

project_name

varchar

N

N

项目名称

project_code

varchar

N

Y

项目编码

project_base_url

varchar

N

Y

项目基础url

project_desc

varchar

Y

N

项目描述

create_datetime

datetime

N

N

update_datetime

datetime

N

N

created_by

varchar

N

N

updated_by

varchar

N

N

表名

mock_http_info

字段名

数据类型

可空

是否唯一

描述

id

varchar

N

Y

project_info_id + mock_http_url联合唯一

project_info_id

varchar

N

N

mock_http_method

varchar

N

N

接口方法

mock_http_url

varchar

N

N

接口URL(非全URL)

mock_http_desc

varchar

Y

N

接口描述

mock_http_decrypt_type

int

N

N

请求解密方式(枚举),当为N时,不做解密操作

mock_http_encrypt_type

int

N

N

请求加密方式(枚举),当为N时,不做加密操作

create_datetime

datetime

N

N

update_datetime

datetime

N

N

created_by

varchar

N

N

updated_by

varchar

N

N

表名

http_response

字段名

数据类型

可空

是否唯一

描述

id

varchar

N

Y

mock_http_info_id

varchar

N

N

mock_http_info_id + http_resp_kv 联合唯一

http_resp_body

varchar

N

N

响应体

http_resp_kv

varchar

N

N

匹配键值对

mock_http_resp_time_start

int

N

N

接口响应时间段

mock_http_resp_time_end

int

N

N

接口响应时间段

create_datetime

datetime

N

N

update_datetime

datetime

N

N

created_by

varchar

N

N

updated_by

varchar

N

N

3 小结

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

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-11-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 嘎嘎软件测试 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1 前言最重要的详细设计
  • 2 详细设计
  • 1. 总体设计
    • 1.1 总体说明
    • 1.2 核心流程设计
      • 1.2.1 核心业务N流程设计
  • 2.功能性设计
    • 2.1 模块(功能)N设计
      • 2.1.1 重要接口设计
    • 2.2 数据库设计
      • 2.2.1 数据库设计概览
      • 2.2.2 数据表详细设计
      • 3 小结
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档