环境问题一直困扰我们各位,缺乏数据或数据管理不善都会导致研发整体效率低下。行业内也有许多 Mock 平台,以集中式服务为主。
Macaca DataHub 能为项目研发全周期提供数据服务,Hub
顾名思义。官网地址
DataHub - Continuous data provider for development, testing, staging and production.
研发期数据缺失,终端同学与服务端根据产品需求,或者已有服务,约定业务交互字段。此时终端同学会根据业务字段创建可以用来 Mock
的数据,数据源需要满足如下几个原则:
在面向复杂场景时,最常讲到的就是场景问题,除富交互编辑器一类的业务外,展示型业务的复杂往往意味着场景多,场景组合情况多,业务流转过程中分支多。组合场景的情况很容易遗漏关键场景,而且不好管理。一旦多人交叉协同时,前后交互字段有调整导致信息流反复,追溯成本变高。
研发期的数据相对好解决,但从研发全环节覆盖的视角看待这个问题时,需要考虑后续
的问题才能从整体上解决。
DataHub 支持从本地开发阶段,到集成测试阶段,以及上线前验证阶段的一系列数据环境需求,研发同学与测试同学直接面向 DataHub 管理数据即可,DataHub 可支持 iOS, Android 和前端工程。
DataHub 采用去中心化设计,本地研发阶段每项实例都拥有一份独立的数据备份,数据为明文,可随当前项目版本管理工具进行版本化归档,使得项目数据能做到随开随用,支持离线开发。
另外,每份数据都可向远端服务推送并同步,满足不同阶段中心化协同的需要。
DataHub 采用单向数据流动的原则,使当前项目下的数据内容及时变更并写入。
DataHub 将数据与字段描述整合处理,自动生成接口文档。使得文档能够与交互字段随时保持一致。
DataHub 采用多场景设计,能够根据场景名称进行数据分组,同时提供了场景数据编辑功能,可以通过 DataHub 的面板界面进行操作。
DataHub 兼备代理功能,会将最近请求的实时响应保存下来,便于归档。也就是说你可以通过已归档的快照随时复现和追溯当时的场景。
DataHub 提供命令行客户端,可以在任何时间拥有完整服务,Web 工程接入可以直接使用 Webpack 中间件无缝集成,与 Vue, React 等页面构建框架配合完成研发、测试以及覆盖率统计。客户端工程只需适配网络库即可接入。
为满足自动化测试随时对场景组合的要求,DataHub 提供了多语言客户端,开放的 API 可以完成更多定制化的操作和集成方式。目前支持 Node.js, Java 和 Python 三个技术栈。
接下来我们来体验 DataHub。
1 通过 NPM 全局安装
$ npm i macaca-datahub -g
2 启动 DataHub 服务
$ macaca-datahub server
可以看到如下的提示,可以看到 DataHub 面板启动在 9200
端口,socket 启动在 9300
端口。
DataHub server start at: http://127.0.0.1:9200
websocket server start at: 9300
如果你习惯使用 Docker,那部署就更方便了,一个命令就可以搞定。DataHub 可以随时一键部署到你的研发系统中。
$ docker run -it -p 9200:9200 -p 9300:9300 macacajs/macaca-datahub
接下来就可以通过官方文档来创建 Hub 和 API 接口,上手文档。
欢迎共同探讨。
微博: http://weibo.com/xudafeng
Github: https://github.com/xudafeng