• Jvm-Sandbox-Repeater 拉取配置详解


    今日分享主题:

    Jvm-Sandbox-Repeater 项目中当 sandbox 和 repeater 启动时,是如何来从 console 服务端来拉取配置的。

    今天的分享是基于之前发布的有关 Jvm-Sandbox-Repeater 2篇文章之上的,还没来得及看的同学,可以先补补功课,有助于更好的理解今天分享的内容。

    《Jvm-Sandbox-Repeater的部署》

    《Jvm-Sandbox-Repeater 新增配置详解》

    Step1:挂载沙箱触发 sandbox & repeater两个模块启动(repeater 注入到被测的应用上)

    sh ~/sandbox/bin/sandbox.sh -p `ps -ef | grep "console" | grep -v grep | awk '{print $2}'` -P 12250

    挂载后,sandbox.log 如下图所示:

    Sandbox 主要作用:

    • 在jvm里面启动了 sandbox-mgr-module.jar 包
    • 在jvm里面启动了 sandbox-core.jar 包
    • 在jvm里面启动了 sandbox-agent.jar 包
    • 在jvm里面启动了 repeater-module.jar 包
    • 在jvm里面启动了 repeater-bootstrap.jar 包
    • 拦截录制到的路由,执行 event=BEFORE,RETURN,THROWS 事件处理
    • 会监听到 module_config 配置信息的推送

    挂载后,repeater.log 如下图所示:

    Repeater 主要作用:

    • 是用来拉取 repeater.properties 文件中的配置信息
    • plugin 插件的加载,用于录制及回放规则获取
    • broadcast 广播消息,用于录制或回放触发
    • 通知各个模块的当前状态,是否是激活或冻结
    • 会监听到 onConfigChange 配置信息的推送

    备注:sandbox 启动后是如何带着 repeater 模块启动的?是因为sandbox 的配置文件中指向了 repeater 模块目录,如下图所示:

     ./sandbox-module 目录结构如下:

    包含了 repeater-module 模块,配置文件及 plugins 的jar 包。

    Step2:repeater 启动后拉取配置

    首先判断是单机还是非单机模式

     查看 repeater.properties 配置如下

     其次发起 http.get 请求拉配置

    注意事项:

    1. 配置值都为“unknown”,上一篇文章特地说到此处:

     this.appName=getSystemPropertyOrDefault("app.name", "unknown");
     this.environment=getSystemPropertyOrDefault("app.env", "unknown");

      2.请求的接口为:

    public static final String DEFAULT_CONFIG_DATASOURCE = "repeat.config.url";

    见 repeater.properties 配置截图。

    最后看Console 提供的接口处理

    查询数据库:

     

    上一篇文章讲到了 JPA 的实现,这里就框架来完成自动查询 module_config表中的数据。

    最终的提取console 返回的配置对象数据:

     Repeater.log日志文件中有如下记录【如上图日志输出代码】:

    2021-10-21 13:05:29 INFO  pull repeater config success,config={sampleRate=10000, plugin=[http, java-entrance, java-subInvoke]}

    欢迎关注【无量测试之道】公众号,回复【领取资源】
    Python编程学习资源干货、
    Python+Appium框架APP的UI自动化、
    Python+Selenium框架Web的UI自动化、
    Python+Unittest框架API自动化、
    资源和代码 免费送啦~
    文章下方有公众号二维码,可直接微信扫一扫关注即可。

    备注:我的个人公众号已正式开通,致力于测试技术的分享,包含:大数据测试、功能测试,测试开发,API接口自动化、测试运维、UI自动化测试等,微信搜索公众号:“无量测试之道”,或扫描下方二维码:

    添加关注,让我们一起共同成长!

  • 相关阅读:
    Flutter实战视频-移动电商-35.列表页_上拉加载更多制作
    Flutter实战视频-移动电商-34.列表页_小BUG的修复
    Flutter实战视频-移动电商-33.列表页_子类和商品列表交互效果
    Flutter实战视频-移动电商-32.列表页_小类高亮交互效果制作
    Flutter实战视频-移动电商-31.列表页_列表切换交互制作
    Flutter实战视频-移动电商-30.列表页_商品列表UI界面布局
    Flutter实战视频-移动电商-29.列表页_商品列表数据模型建立
    Flutter实战视频-移动电商-28.列表页_商品列表后台接口调试
    Flutter实战视频-移动电商-27.列表页_现有Bug修复和完善
    Flutter实战视频-移动电商-26.列表页_使用Provide控制子类-2
  • 原文地址:https://www.cnblogs.com/Wu13241454771/p/15439644.html
Copyright © 2020-2023  润新知