大家好,我是爱学习的了不起!
当前互联网服务现状是调用关系复杂,服务模块多,流量复杂,业务复杂,对于测试团队构造请求成本比较高,如果还按照传统的人工构造请求参数,相对目前复杂业务场景来说太单一了。
今天了不起给大家分享一个线上流量录制 和流量回放平台 – MoonBox。
项目简介
Moonbox(月光宝盒)是一个无侵入的线上流量录制 和流量回放平台。
简单介绍一下什么是流量录制与回放?
流量录制回放就是通过记录线上流量,在测试环境回放,来发现系统是否能够正常运行,降低代码变动带来的风险。
流量录制把一次请求的入参、出参、下游RPC 等存储起来,流量回放是把录制数据还原,重新发起请求。
项目优势
通过流量录制可以很容易形成丰富的测试用例
回放线上流量更真实,人工编写的测试用例可能会有考虑不周的地方
回放线上流量可以复现生成环境中问题,完美解决了本地好使的,线上问题不知道怎么产生的。
没有代码侵入,通过代理对流量录制和回放的增强
可视化调用链路
定时录制和回放,减少人工操作
接口维度的流量管理
详细展示流量详情,包括请求的参数、响应参数 和 该请求的 子调用详情
项目原理
月光宝盒平台由 moonbox-agent 和 moonbox-server组成。
moonbox-agent
agent(基于动态字节码增强技术实现)动态代理到目标进程上,提供流量录制和回放的增强。
moonbox-server
server 主要是做后台配置,保持录制的数据,同时为 agent提供接口。
流量录制
通过JVM-Sandbox的BEFORE、RETRUN、THROW事件机制拦截关键调用位置获取流量入参、出参,实现流量录制。
流量回放
agent 启动后从服务端 拉取流量去分发到对应接口做回放。
快速体验
下载完代码后,在工程下的docker文件夹 下,执行如下命令:
1 | # x86架构下 |
启动后,在浏览器输入 http://127.0.0.1:9999/ ,即可访问月光宝盒平台。
配置流量录制
流量回放
在录制处回放
更多操作细节参考官网文档,这里了不起就不过多赘述了~
项目地址
1 | https://github.com/vivo/MoonBox |
写在最后
欢迎加我微信,邀请加入 交流群,目前群里都在讨论整理更多GPT玩法,教你如何更好的调教使用GPT,提升效率,甚至如何使用GPT赚钱等等,欢迎围观~
问君能有几多愁,开源项目解千愁,我们下期再见!
大家的点赞、收藏和评论对了不起非常重要,如文章对你有帮助还请转发支持下,谢谢!