月光宝盒(vivo流量录制回放平台)正式对外开源

  发布时间:2025-12-07 20:35:18   作者:玩站小弟   我要评论
一、月光宝盒 是什么?Moonbox月光宝盒)是 ​​JVM-Sandbox​​ 生态下的一款流量录制回放产品。所谓流量录制回放是服务端通过挂载agent探针自动注册到服务端,拦 。

一、月光月光宝盒 是宝盒什么 ?

Moonbox(月光宝盒)是 ​​JVM-Sandbox​​ 生态下的一款流量录制回放产品。所谓流量录制回放是流量录制服务端通过挂载agent探针自动注册到服务端 ,拦截服务端调用,回放将所有外部调用依赖的平台内容(如数据库、分布式缓存、正式外部服务响应等)进行完整记录形成录制流量。对外其核心价值是开源通过录制流量数据,将流量数据转化成可复用 、月光可执行的宝盒自动化用例 ,亿华云快速在测试环境中进行回放比对接口返回值和外部调用依参数(见下图)。流量录制Moonbox(月光宝盒)提供了大量的回放常用插件 ,能够对常见的平台中间调用进行录制回放  ,同时也提供了非常可靠、正式高性能的对外数据存储、计算能力。

二 、月光宝盒 有哪些优势  ?

正如开头所说月光宝盒是一款面向测试、研发工程师使用的低门槛、高性能  、更易于使用的源码下载自动化测试工具。这款产品已经在vivo运行了2年多了 ,经过我们持续优化、打磨拥有很多实用、易用功能 。它的优点主要体现在下面几方面:

2.1 全面可视化视操作(部分功能)

(1)基于任务、接口维度的流量管理能力

(2)详细的流量展示细节(请求、响应 、子调用)

(3)基于任务、接口维度的回放数据管理  ,叠加各种维度统计 、查询能力

(4)易于人工分析的模板下载回放比对结果和差异展示

2.2 丰富的插件支持

月光宝盒支持非常多组件录制和回放能力 ,基本上能满足绝大多数人诉求 。

2.3 多种部署方式Docker :这种方式简单 、可靠,让您可以摒弃复杂的环境配置和安装  ,快速在本地体验我们项目。常规方式 :这种方式复杂 、步骤繁琐 ,需要按照步骤创建ES和MySQL数据库,初始化数据表 ,更新好应用配置 ,安装好前端node服务 。

此外月光宝盒是前后端分离项目,服务器租用当您使用该项目需要分别部署前端 、后端 ,非常有助于您后续将项目部署到生产环境。

2.4 性能安全可靠

平台对性能进行了长期优化 ,在vivo内部历经多个高并发系统验证。我们对agent端录制流量进行了一系列安全防护,例如对相同接口同时只能有一个进入采样中,限制并行录制接口数量 。服务端使用了ES储存流量,有效提升了数据储存规模。

三 、月光宝盒 实现原理

3.1 整体架构

月光宝盒平台分为2个部分,分别为moonbox-agent 和 moonbox-server(整体架构如下图所示)

moonbox-agent

使用Java-attach技术(实际的动态字节码增强由JVM-Sandbox实现)动态代理到目标进程上 ,提供流量录制和回放的增强。香港云服务器

moonbox-server

Agent端使用接口 ,提供配置查询 、录制流量保存 、流量查询 、回放结果保存等服务录制任务/回放任务的配置 ,agent任务远程管理能力和管理后台操作界面(前后端分离部署)

3.2 流量录制&回放

流量录制

核心逻辑是将agent分发到用户填写的机器上(本地 、远程机器) ,然后将agent attach到用户填写应用所对应的正确进程上去。然后通过JVM-Sandbox的BEFORE 、RETRUN、THROW事件机制拦截关键调用位置获取流量入参、免费模板出参 。整体流程见下图整体流程见下图:

流量回放

核心逻辑是将agent分发到用户填写的机器上(本地、远程机器),然后将agent attach到用户填写应用所对应的正确进程上去 ,agent启动后从服务端不断拉取流量去分发到对应接口做回放,整体流程见下图:

心跳管理

Agent启动后会单独开启线程固定间隔时间通过http请求给服务端上报心跳

3.3 Agent启动过程

执行脚本将sandbox agent attach到目标java进程上,sandbox 启动jetty服务,加载moonbox module,然后从服务端拉取moonbox配置,加载流量录制和回放插件。

四 、 和 jvm-sandbox-repeater 关系 ?

Moonbox是基于jvm-sandbox-repeater重新开发的一款流量回放平台产品 。在jvm-sandbox-repeater基础上重写了很多模块 ,并提供了更加丰富功能,同时便于线上部署和使用,和jvm-sandbox-repeater差异如下:

五、为什么要开源 ?

流量录制回放技术复杂 ,挑战较高,开源社区虽然有很多类似产品但是在易用性方面都有一些欠缺 ,我们希望通过开源月光宝盒帮助对该方向有兴趣的开发者快速构建自己的自动化工具,同时可以基于我们这款产品制定个性化诉求。此外,月光宝盒本身也借鉴了jvm-sandbox-repeater设计和方案,是开源的受益方,现在我们将自己思考和探索回馈给开源社区,丰富流量回放开源技术生态 。除此之外通过社区中开发者的使用,也可以帮助我们更好的改进我们的工具,获得更多的需求场景输入 ,也能让该工具获得更加长远的发展。

六、Roadmap

月光宝盒已经完成V1.0.0版本开源,初步完成了各项重要功能开源,后续我们会持续性的完成平台性能 、体验优化工作,同时积极收集社区使用反馈的功能需求 ,将一些好的需求纳入我们版本计划里面  。2023年我们规划了一些迭代版本,如下图所示 :

七 、写在最后

今天月光宝盒的开源只是我们迈出的一小步,后续我们会持续按照计划向社区贡献版本和特性  。如果您对月光宝盒有兴趣 ,欢迎体验我们开源产品 。如果您有问题或者更好的方案  ,欢迎向我们开源项目贡献反馈ISSUE和贡献PR,这将是我们莫大的荣幸 。

GItHub项目地址:​​https://github.com/vivo/MoonBox​​

  • Tag:

相关文章

  • 判70年!Twitter 2020 网络攻击案主谋认罪

    一名英国人已就2020年7月盗取众多高知名度账户和诈骗该平台其他用户的推特攻击事件表示认罪。美国司法部DoJ)表示,约瑟夫-詹姆斯-奥康纳Joseph James OConnor)在网上化名为Plug
    2025-12-07
  • win10电源模式最佳性能如何设置详细教程

    在使用笔记本电脑的时候,相信很多的用户们都清楚,电池的使用模式会影响到电脑运行时候的性能,那么我们要怎么设置电池的最佳性能呢,快来看看详细的使用教程吧~win10电源模式最佳性能如何设置详细教程:第一
    2025-12-07
  • win10 1903 DOTA2进游戏闪退

    有部分的用户们将系统更新到1903版本以后,发现自己的游戏会出现闪退的问题,有时是进游戏就会闪退,有时候是游戏玩耍一会就会闪退,导致我们的游戏不能够正常的运行玩耍,这个问题解决起来需要一点操作,快来看
    2025-12-07
  • 电脑系统坏了怎么修复win10

    我们在使用微软操作系统的时候,如果有的小伙伴用的是win10的操作系统,那么当系统出现损坏的时候我们想要将其修复却不知道应该怎么做才好。那么对于win10电脑系统坏了怎么修复这个问题,小编觉得我们可以
    2025-12-07
  • 12种常见的恶意软件类型与防范建议

    自从计算机技术被广泛使用以来,恶意软件就一直以某种形式存在,但其存在的类型在不断发展演变。如今,随着人类社会数字化程度的不断提升,恶意软件已经成为现代企业组织面临的最严重安全威胁之一。为了有效应对恶意
    2025-12-07
  • 新装win10我的电脑在哪

    新装了win10操作系统之后,发现之前的我的电脑找不到了。小编觉得这种情况只要按照步骤设置一下就可以了,大家不要着急。现在就让小编告诉你具体方法吧。2.在主题界面找到桌面图标设置。更多win10我的电
    2025-12-07

最新评论