1.背景
在准备开发一个项目或者项目中的一个模块的时候,除了系统本身的设计,还有一个非常重要的设计
测试的设计或者说生成模拟数据的设计也是非常重要的,否则在开发中去手动配置数据是非常耗时麻烦的,而且也不准确
2.场景假设
假设项目组要开发一个类似某宝的电商系统,
主要应用有:
微信小程序端,即用户端
后端管理系统,即运营端
三方产品获取服务,即拉取供货商的产品的服务
发货服务
查询服务
订单同步服务
等等....
假设你负责开发微信小程序端的个人中心
大体需要开发如下接口:
1.获取微信openid
2.查询用户信息
3.查询订单
等
在开发的时候你会发现数据库的数据都是空的,你很难验证你写的接口是否正确,
如果前端对接你的接口时,发现获取到的订单接口数据全是空的,也不方便开发调整界面样式
通常查询出来的订单列表,还有点击列表查看订单详情数据,如果列表数据都是返回空,那么详情页面就更加不方便开发
通常的做法是我们自己在数据去配置几条订单数据,
配置了订单数据后你会发现订单通常是和产品关联查询的,结果你又要去配置产品数据...
产品通常与分类,品牌等数据关联.......
最终你会发现...配置一条完整的订单数据需要很长时间,而且有时候前后还不一致,
比如:订单上你配置的订单金额是100,而产品上配置的确是90,支付流水记录上配置的是80....
后面做统计报表的时候你会发现很多地方数据都有问题,你就会疑问到底是代码有bug呢,还是数据配置的问题呢?
如果是对接的购买功能就更麻烦了,每次测试要么你把产品价格修改为0.01实际完成支付,把流程走完
要么你就要去改数据库的支付状态等.....
还有就是通常一个项目有多人开发,就有很多人去数据库配置数据,有时候别人配置的数据会影响到你的数据,
开发接口的时候查询数据还是好好的,前端一对接就出问题,你急忙的查看日志半天,结果才发现是数据库数据的问题...
更有甚者,你好不容易配置好的数据突然就被其他人误删了......这时候你的老毛病都要急翻...
总之,要弄一个完整的业务流程,你会感觉非常痛苦,而且非常耗时....时间都花在配置数据上了;
3.模拟数据设计
那么这个我们在设计项目或在开发的时候,就必须思考:
如何模拟批量的生成产品?
如何自动下单,生成订单?
如何配置模拟支付模块?
如何模拟支付通知?
如何模拟发货物流?
....
等等
这些都是很重且必要的
欢迎大家在评论区留言,说说你们在实际开发中模拟数据怎么来的,或者说测试环境数据怎么来的?