芯片|减少连调、高效集成,试试这个神器

芯片|减少连调、高效集成,试试这个神器


\">
我是一个着迷于产品和运营的技术人 , 乐于跨界的终身学习者 。 欢迎关注我哟~
每周五12点 按时送达~
我的第「217」篇原创敬上
大家好 , 我是Z哥 。
最近在工作中学习到一个我觉得很有价值的小工具 , 在这里与大家分享一下 。
这个小工具需要自己稍作开发 , 并不存在什么第三方的现成工具供你使用 , 因为这个工具的核心关键是「数据」 , 而「数据」这个东西对于不同的项目天然是不同的 。
可能有的小伙伴已经猜到了 , 我今天要聊的就是一个mock工具(暂且叫这个名字吧 , 它的能力其实不仅仅只是mock数据) 。
多团队协作中 , 很多功能的实现需要依赖于其它的子系统 。 这不但影响开发进度 , 还会导致测试工作开展不太顺利 。 这个问题在涉及多团队协作的分布式系统中尤其突出 。
如果每个子系统都能够内置一个mock工具(模块) , 通过数据的自动生成 , 导入和导出 , 可以灵活地在不同环境上快速地让系统run起来 , 哪怕自己还没有真正地完成内部的业务逻辑代码编写 。
可能你会觉得说 , 现在很多工具都支持根据定义的API自动生成mock数据啊 , postman、apifox、yapi等等 , 为啥还要自己搞呢 。
最大的价值在于以下几点:
  1. 这种方式支持在不同环境提供一份相同的数据(如唯一id等等) , 便于对相关的上下游系统屏蔽掉环境不同的影响 。 而使用上面提到的工具很难实现这点 。
  2. 【芯片|减少连调、高效集成,试试这个神器】导入和导出功能可以作为在没有打通上下游系统之前的手动关联上下游系统的一种方式 。
  3. 自动生成的数据可以针对多个API进行共享使用 , 以模拟“上下文”的感觉 , 让mock这件事变得更加贴近真实 , 而不是很假 , 不管输入的参数是什么 , 都只能固定返回某个数据 。
  4. 基于上面第3点 , 我们可以再通过某种语法 , 串联起多个API的调用 , 快速验证mock出来的数据是否符合预期 。 并且这个串联调用的case可以保存下来 , 在真实的业务逻辑实现后再运行一下 , 快速验证自己的真实实现是不是存在什么bug 。 相当于同时编写了一个针对该项目定制的自动化测试工具 。
  5. 基于上面第4点 , 可以不断地丰富case , 以提高case所覆盖的场景 。 这不但丰富了数据样本 , 也提高了使用该工具进行自动化测试的效果 。
总体来看 , 这样一个工具我们在实现的时候需要具备以下这些能力 。
  • 自动生成mock数据
  • 清除数据
  • 导入数据
  • 导出数据
  • mock开关
  • mock数据的条件匹配
  • mock外部依赖数据
下面我们一个个展开说说 。
/01 自动生成mock数据/自动生成mock数据是这个工具的最核心功能 。 但在这之前还有一件更加重要的事情要做 , 就是:需要提前确定对外提供API 契约 , 如此才能得到相应的输入和输出参数 。 然后我们再考虑如何生成mock数据的事情 。
当然 , 生成的数据必须要符合契约定义中的标准 。 比如 ,