|减少连调、高效集成,试试这个神器
\">大家好 , 我是Z哥 。
我是一个着迷于产品和运营的技术人 , 乐于跨界的终身学习者 。 欢迎关注我哟~
每周五12点 按时送达~
我的第「217」篇原创敬上
最近在工作中学习到一个我觉得很有价值的小工具 , 在这里与大家分享一下 。
这个小工具需要自己稍作开发 , 并不存在什么第三方的现成工具供你使用 , 因为这个工具的核心关键是「数据」 , 而「数据」这个东西对于不同的项目天然是不同的 。
可能有的小伙伴已经猜到了 , 我今天要聊的就是一个mock工具(暂且叫这个名字吧 , 它的能力其实不仅仅只是mock数据) 。
多团队协作中 , 很多功能的实现需要依赖于其它的子系统 。 这不但影响开发进度 , 还会导致测试工作开展不太顺利 。 这个问题在涉及多团队协作的分布式系统中尤其突出 。
如果每个子系统都能够内置一个mock工具(模块) , 通过数据的自动生成 , 导入和导出 , 可以灵活地在不同环境上快速地让系统run起来 , 哪怕自己还没有真正地完成内部的业务逻辑代码编写 。
可能你会觉得说 , 现在很多工具都支持根据定义的API自动生成mock数据啊 , postman、apifox、yapi等等 , 为啥还要自己搞呢 。
最大的价值在于以下几点:
- 这种方式支持在不同环境提供一份相同的数据(如唯一id等等) , 便于对相关的上下游系统屏蔽掉环境不同的影响 。 而使用上面提到的工具很难实现这点 。
- 导入和导出功能可以作为在没有打通上下游系统之前的手动关联上下游系统的一种方式 。
- 自动生成的数据可以针对多个API进行共享使用 , 以模拟“上下文”的感觉 , 让mock这件事变得更加贴近真实 , 而不是很假 , 不管输入的参数是什么 , 都只能固定返回某个数据 。
- 基于上面第3点 , 我们可以再通过某种语法 , 串联起多个API的调用 , 快速验证mock出来的数据是否符合预期 。 并且这个串联调用的case可以保存下来 , 在真实的业务逻辑实现后再运行一下 , 快速验证自己的真实实现是不是存在什么bug 。 相当于同时编写了一个针对该项目定制的自动化测试工具 。
- 基于上面第4点 , 可以不断地丰富case , 以提高case所覆盖的场景 。 这不但丰富了数据样本 , 也提高了使用该工具进行自动化测试的效果 。
- 自动生成mock数据
- 清除数据
- 导入数据
- 导出数据
- mock开关
- mock数据的条件匹配
- mock外部依赖数据
/01 自动生成mock数据/自动生成mock数据是这个工具的最核心功能 。 但在这之前还有一件更加重要的事情要做 , 就是:需要提前确定对外提供
当然 , 生成的数据必须要符合契约定义中的标准 。 比如 ,
- 字段的格式 。 int32还是int64?字符串的格式等等 。
- 入参和出参的相关性 , 比如输入参数中传入的单据号 , 应该与输出参数中的单据号保持一致 , 以体现输入和输出之间的相关性 。
- ……
另外 , 生成的mock数据中如果存在一些依赖于外部系统的唯一ID , 允许传入一个ID生成器的hook , 确保生成的Mock数据中的唯一ID在指定范围内 。
然后 , 生成的mock数据需要持久化到硬盘上 , 以提供长期使用 。
最后 , 可以指定生成某个API相关的mock数据 , 而非全部数据 。
/02 清除数据/可以通过清除数据 , 重置mock数据回到初始状态 , 以清理不符合当前API标准的垃圾数据 。 实现这个功能主要有两个点:
- 清除数据时需要考虑数据间的关联关系 , 比如清除单据类数据时 , 也应当清除与该单据相关的明细数据 。
- 可以指定清除某个指定API的mock数据 , 而非全部数据 。
- 智能|经纬、高瓴联合领投,机器视觉传感器公司深视智能完成数亿元B+轮融资
- 软件|想换手机,内存选择128G、256G还是512G?内行人建议这么选!
- CPU|Intel要推CPU氪金:花钱解锁额外功能、Linux内核率先支持
- iphone11|网友买二手iPhone翻车,躲过了网络锁、ID锁,却没躲过配置锁!
- 中国科学网|圆心科技贡献保险智慧与力量,驱动普惠健康险实现强保障、优服务
- ipad air|南孚电池遇“危机”?小米、飞利浦双双登场,成本不足1元有效期10年
- realme|三星、苹果远远落后,国产黑马量产新技术,150W快充刷新行业纪录
- 红米手机|红米 k40、iQOO Neo5和真我GT2Pro之间,买哪款更好?
- 红米手机|AMG联名、四扬立体声、512GB存储,Redmi K50G配置拉满!
- iPad Pro|2022年最佳Win笔记本电脑有哪些?微软占首榜,华为、小米未上榜