title: 几款MOCK工具
date: 2019-09-07 00:00:00
categories:

  • 工具
    tags:
  • MOCK

引子

日常开发中之所以使用数据mock工具生成数据,大致有以下几种原因,直接把假数据写入代码中(所谓开发侵入),数据写死,不便于修改。还有团队协作,没有约定,前后端不能准确描述接口长什么样。还有就是手写假数据没有规则,就不能批量生成大量数据,靠手工肯定不行。或者不单单是开发使用,也可以测试,或者其他用到数据的地方。下面有些工具,简单聊一下,具体使用看文档就可以了。

YApi

官网

GitHub

来自去哪网,基于mock.js语法规则,也可自定义规则,功能强大,适合团队协作使用,出现比较晚,吸收了Nei、Easy-mock、RAP的优点。

EasyMock

官网

GitHub

来自大搜车,基于mock.js语法规则,能满足大部分使用需求,不能定制复杂接口,生成规则不能可视化修改。

RAP

GitHub-RAP2
RAP2官网

来自阿里妈妈,基于mock.js语法规则,mock.js的作者参与开发。界面直接简介明了,生成规则可以可视化编辑。

Nei

官网

GitHub

来自网易,功能也比较全,支持mock.js规则,也可自定义规则。

eolinker

官网

接口测试、监控、定制高级接口方面比较好,有权限验证等功能,但是开源版已经不维护了,私有化部署需要收费。

易文档

官网

基本需求可以满足,文档编写比较方便,私有化部署收费。

EasyAPI

官网

除了接口mock,还有服务市场(天气、城市等等),不能私有化部署。

APIStub

官网

不能私有化部署

CrapApi

CrapApi

server-mock

npm地址
GitHub地址

puer-mock

GitHub地址

简单对比

可能需要有一下几个方面需要考虑:

  1. 图形化的界面管理:能不能通过简单的页面配置接口和接口数据
  2. 团队成员管理:支不支持团队协作使用,能不能成员之间进行权限控制
  3. 数据导入导出:数据导入导出是不是支持主流工具和格式(Swagger、postman等等)
  4. 集成测试:是不是可以集成测试部分
  5. 支持接口的灵活性:各种请求方法,各种请求参数携带,请求头部,请求体自定义,支持其他网络协议吗(如WebSocket)、各种请求响应、是否可以设置其他响应状态,能不能设置响应时间等高级定制功能。
  6. 支持数据的灵活性:可以生成各种类型的数据(常见的字符串、数字、日期、对象、数组、或者复杂结构数据等等)
  7. 是否易学易用
  8. 文档管理
  9. Mock server:是否支持平台化的部署
  10. 是否开源
  11. 是否容易部署

这些工具有些功能全面,但是可能就是适合团队使用,大家约定规则,可以最为日常开发的一环,甚至一个数据层,但是学习成本肯定要更高一点。有的功能简单,但是便捷易用,学习成本也低,就适合配合快速开发。所以具体选用,还是要选择适合自己的,工具型的软件,适合自己适合项目才是最主要的,由需求看配置

这些工具中,有的是集成在前端项目中,可以随项目迁移,快速生成数据,适合数据一次生成、后期不会频繁改动的情况,这种使用方便,但是灵活性比较差,也不能用于前后端开发联调,只能前端单独使用。也有的是直接部署在服务器上一个独立服务应用,前端通过Ajax像请求数据接口,这种比较适合数据后期有变动,或者想要一个统一的mock数据管理平台,或者作为前后端联调的约束参考,作为独立的一个mock数据层来用。

还需要注意一点,如果你的项目只需要mock数据,也就是根本不需要真实的数据,就是为了做一个展示页,上线运行就直接用mock出的假数据就够了。像Yapi、Easy-mock这种工具,你都可以直接在官网注册账号使用,但是在上线的时候,还是推荐你使用官网的源码自己部署一份,不要使用官网在上线了的项目中,因为官方提供的接口有时候也会挂掉,自己部署是较为保险的做法。

如果前端项目集成插件类型的那些工具没有找到适合自己的,也可以使用mock.js自己简单开发,可以直接集成在前端工程中,也可以开发一个服务端平台工具,只是规则语法都需要遵循mock.js,这里有mock.js官网的🚪传送门