minix

minix

别烦我,正在追查宇宙大爆炸的嫌疑犯!

linux通用http mock测试工具

工作过程需要验证微服务的基本功能是否正常,但是因为 SE 设计的比较烂,微服务耦合的比较严重,无法单独构造测试场景,所以需要进行接口级别的 mock. 以前是自己写个微服务,模拟对端微服务返回,但是这样比较麻烦,所以构思了下面的工具.

通过 iptables 进行 nat, 然后使用 mitmproxy 对码流进行拦截和篡改,达到 mock 服务的目的,目前支持 restful 接口的 mock

# 架构#

没有 naughtymonkey 时候:

服务 A (1.1.1.1) --> 服务 B (2.2.2.2:8888) 接收请求

服务 A (1.1.1.1) <-- 服务 B (2.2.2.2:8888) 返回响应

使用 naughtymonkey 时候:

服务 A (1.1.1.1) --> 服务 B 网卡 (iptables) --> naughtymonkey (3.3.3.3:8080) --> 服务 B (2.2.2.2:8888)

服务 A (1.1.1.1) <-- 服务 B 网卡 (iptables) <-- naughtymonkey (3.3.3.3:8080) 此处可以篡改响应 <-- 服务 B (2.2.2.2:8888) 返回响应

1 在服务 B 上面执行 monkeyagent.sh 配置 iptables 规则,把服务 A 请求的码流都透传到 naughtymonkey

2 在 naughtymonkey 的界面配置拦截的 URL 地址,只有匹配到 URL 才会进行拦截操作

3 在 naughtymonkey 的界面配置拦截和篡改任务,当匹配到条件的请求过来后就按照任务中的码流进行返回

# 依赖#

1 naughtymonkey 依赖 mongodb, 所以需要部署 mongodb 2 python3, 同时依赖的包很多,懒的梳理了,哪个没有自己添加吧

github 地址: https://github.com/flyfire100/naughtymonkey

加载中...
此文章数据所有权由区块链加密技术和智能合约保障仅归创作者所有。