场景:需要模拟第三方响应,POST 内容为 json,相应内容需要包含 POST 内容中的 ID 信息。
思路:我的想法是,能够通过 req.content 类的方法 +json_path 把 ID 值取出来赋值变量 A,然后在 Response 模板中使用变量 A 作为返回值 JSON 的一部分内容。
问题:
看了一些 MOCK 工具,如 easy_mock、zmock 暂时不支持;
moco 的说明文档太简单,支持 req.content 和 json_path,但貌似只能返回这个单独的值,不能把获取的变量作为 Response 模板的一部分;
AnyProxy 感觉更灵活,扩展性更强,但依然没研究明白这个该如何写。
请各位大佬帮忙解答一下这个 mock 场景的实现方法,能详细一点最好,谢谢。
在此基础上,最好能满足:
1.可动态编辑接口模拟配置,不需要重启
2.可以只代理部分接口,不用取代所有接口
3.可以获取当前日期等系统信息作为变量使用
非常感谢!!
http://www.cnblogs.com/fengyca/p/8629937.html
看看这个是不是你想要的?可以结合任一网络代理拦截那个请求并重定向到这个平台就 ok 了。不用代理全部接口,数据存放到 mysql 中,配置后无需重启代理,可以添加内置方法生成你想要的数据。
@jackyroc https://github.com/zhangzhao4444/Apimock 看这么满足吗?动态 mock
谢谢帮助,这个框架确实很轻量,就是说明比较简单,不明白如何加载报文模板,如何配置同时代理多个接口地址
谢谢帮助,启动的时候报错了,“Error: Please install sqlite3 package manually”,macaca-datahub 重装过,sqlite3 也手动安装过,都不行
谢谢,之前装的 node8.6,说版本太低,装了最新的 node9.9 就报了那个错,现在装 node8.10 可以了
不过在接口编辑,添加了字段描述,没有作用,报文体是空的,只有报文头编辑有效果;另外,这个该如何关联 POST 请求的 JSON 内容,谢谢
题主 你这个需求和我现在开发的工具有点相似,
我这边是 :
数据管理暂时用的是 json 文件,支持请求重定向 ,post 请求参数修改,响应参数修改,不会影响其他业务的正常通信。
我之前也有这个需求,用 Django 搭的服务,挺方便的
照着 Django 教程就可以,如果你们这边有存数据可以直接连你们的数据库,然后根据需要写返回逻辑就行了,和三方合作没有 mock 确实十分难受
@jackyroc apimock 简单用目前支持 2 种
1.对某一个接口轮询触发 mock 一种 fuzz。每次触发这个接口时更换一种 fuzz。当所有 fuzz 都应用过后再 mock 下一个新的接口
2.自定义注入一种 mock fuzz 如
python proxy.py -a /api/user/get -k re:name="H1 \u266a@\u5c0f\u8776\u6c42\u5b88\u62a4"
对 api/user/get 接口 正则找 name 字段的值替换为 H1 \u266a@\u5c0f\u8776\u6c42\u5b88\u62a4,其余内容不变
不同的注入可以动态添加 无需重启 mockserver
@jackyroc 定义指定 mock 某些域名 通过修改 fiddlerjs/fiddler.js 种的 filterUrl="panda.tv“ 即可
在 Ubuntu 上启动 DataHub,报这个错 “Error: Please install sqlite3 package manually”,node 版本 8.10,错误信息如下:
/usr/local/lib/node_modules/macaca-datahub/node_modules/sequelize/lib/dialects/sqlite/connection-manager.js:31
throw new Error('Please install sqlite3 package manually');
^
Error: Please install sqlite3 package manually
at new ConnectionManager (/usr/local/lib/node_modules/macaca-datahub/node_modules/sequelize/lib/dialects/sqlite/connection-manager.js:31:15)
at new SqliteDialect (/usr/local/lib/node_modules/macaca-datahub/node_modules/sequelize/lib/dialects/sqlite/index.js:14:30)
at new Sequelize (/usr/local/lib/node_modules/macaca-datahub/node_modules/sequelize/lib/sequelize.js:239:20)
哪位同学能帮忙解决下