作者简介
Chris Xia,携程资深前端开发工程师,关注前端技术更新和研发效率提升。
前言
本文描述的是2020年携程IBU机票研发团队基于业务痛点所研发的轻量级前端Mock解决方案(目前正与集团另一Mock中台融合,从中台的赋能中探寻更多拓展)。希望可以借此文为有类似前端Mock需求,正在寻找解决方案的团队/个人提供一种思路。
一、背景
在实际开发场景中,有很多前端需求是需要和后端基于契约进行并行开发的。因此不论是开发阶段,如何让开发和测试更简便地覆盖业务场景,提升开发质量,还是在产品验收阶段,如何在出现问题时精确、快速的定位,都是前端开发需要解决的痛点。
因此,拥有一个稳定、灵活、易用的数据Mock平台是保证前端开发和排查问题效率的重要前提。
总结前端在开发、调试、验收等各阶段需要Mock平台具备的能力后,我们整理出了Mock平台需要具备的核心功能:
1)实时请求数据可视化(抓包);
2)简单易用的Mock报文管理,支持设备维度的个性化Mock;
3)满足设备多接口不同环境的支持(复杂业务下不同接口不同团队开发,发布在不同环境的测试服务器上);
4)模拟延时,支持前端模拟不同业务场景下的展现;
在明确了主要需求后,我们开始调研公司内已有的和市面上主流的Mock工具和平台。
二、调研
公司内:
公司内已有一个功能集成较高的Mock效率平台,但是其主要的功能设计为面向服务端和测试,对上述单个设备维度及多测试环境的前端Mock需求支持度不够高。
市场调研:
外部市场Mock工具大致分为以下三类:
1)数据本地管理
该方法是将Mock数据存储在本地-代码或本地存储中,前端在业务代码中使用假数据或通过配置读取数据。这种做法会导致测试代码与业务代码耦合,提交代码和发布前必须删除测试代码或修改配置,容易造成生产事故。即使结合运行环境控制还是存在维护效率低、成本高的问题。
2)Mock平台:如Rap\YApi
开源的一些企业级Mock平台,提供了接口文档管理,接口数据模拟,接口调试等功能。但这些平台都是围绕接口的契约文档为核心对数据进行mock和管理,对于已经接入过接口管理框架(如Swagger)的组织来说,会存在接口文档同