JMeter學習-028-JMeter默認jmx腳本分發目錄(路徑)定制


我們在分布式執行參數化腳本時,為盡可能多的利用Slave資源,盡可能將參數文件配置為相對路徑,以更好的去適配Slave環境。與此同時,每台Slave的服務jmeter -s 啟動的路徑可能不盡相同,同一台也可能因不同的操作人員啟動時導致其 user.dir 進行了變化,從而參數文件不易管理分發。通常,我們大多采用shell腳本的形式,在固定的路徑啟動JMeter服務,並在執行測試前將相應的參數文件的分發至Slave對應的路徑。

那么,有什么方法可以更好地解決這個問題呢?

我們可通過對JMeter進行定制來解決。

 

通過查看 JMeter 源碼可知,設置路徑的方法在 FileServer.java 中,其對應的構件名為:ApacheJMeter_core.jar,對應的源碼路徑是 apache-jmeter-3.0\src\core\org\apache\jmeter\services\FileServer.java。

對應的兩個主要設置 base(路徑)方法如下所示:

public synchronized void setBase(File jmxBase)

 

public synchronized void setBasedir(String basedir)

通過修改如上兩個方法,將 base 重新修改為自己定制的路徑(例如獲取系統 JMETER_HOME 的路徑,或者讀取配置文件配置的路徑)即可。

 

具體操作步驟如下所示:

1、解壓 ApacheJMeter_core.jar 至 ApacheJMeter_core 目錄

2、修改 FileServer.java,定制所需路徑

3、編譯 FileServer.java,生成字節碼文件(各構件與 FileServer.java 放在同一目錄)

     javac -classpath ApacheJMeter_core.jar;commons-collections-3.2.2.jar;jorphan.jar;logkit-2.0.jar FileServer.java

4、將生成的字節碼文件拷貝至目錄 ApacheJMeter_core\org\apache\jmeter\services\ 下覆蓋源文件

5、重新打包 ApacheJMeter_core.jar

    ApacheJMeter_core>jar -cvf ApacheJMeter_core.jar *

6、將新打包的 core 構件放到 JMETER_HOME\lib\ext\ 目錄下,覆蓋原文件即可

7、重新執行命令 jmeter -s 啟動 JMeter 服務

 

若是對重新打包依然有疑問,請參閱之前的文章 Java學習-039-源碼 jar 包的二次開發擴展實例(源碼修改),謝謝!

 

至此,此文順利完結,希望此文能夠給初學 JMeter 的您一份參考。

最后,非常感謝親的駐足,希望此文能對親有所幫助。熱烈歡迎親一起探討,共同進步。非常感謝! ^_^

 


免責聲明!

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



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