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自動化測試等,微信搜索公眾號:“無量測試之道”,或掃描下方二維碼:

添加關注,讓我們一起共同成長!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM