天天時訊:JMeter 擴展開發:自定義 JMeter 插件的調試

2022-12-15 12:05:31 來源:51CTO博客

前言

在本系列專題??之前的文章??中,我們已經介紹了 JMeter 擴展開發的一些方法。但是在開發過程中還有一個需要處理的環節,是對編寫的代碼進行調試。一種方式是將開發的擴展與 JMeter 源碼放在一起進行調試。但是這種方法的缺點是需要將整個 JMeter 的源碼都放在工作空間,如果新開發的擴展只是一個小插件的話,這樣做就會有點過于重量級。

本文將介紹另一種比較輕量級的方式:利用 Java 遠程調試(Remote Java Application)來完成對自己開發的 JMeter 擴展的調試。

過程

我們首先回憶一下開發好的 ??JMeter 擴展??是如何部署到 JMeter 中的:首先將擴展代碼編譯生成 jar 包,拷貝到 JMeter 擴展目錄 $JMETER_HOME/lib/ext 下面,然后重新啟動 JMeter,就會發現新加入的擴展插件。


(相關資料圖)

為了支持 JMeter 的 Java 遠程調試,先要修改下 JMeter 啟動時的 JVM 參數。

用文本編輯器打開 $JMETER_HOME/bin/jmeter.sh(如果是 Windows 操作系統的話,打開jmeter.bat);在 ??jmeter.sh?? 中定位到 JMeter 啟動的位置(該位置通常在最后),并在該位置之前加入一行,在指定的端口上開啟遠程調試功能。下面的參考配置就是在端口 12345 上開啟:
JVM_ARGS="$JVM_ARGS -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=12345"

重啟 JMeter,如果配置正確的話,在 JMeter 啟動的控制臺上會打印出類似于下面的語句:

Listening for transport dt_socket at address: 12345

切換到開發 JMeter 擴展的 IDE 工作空間,以 Eclipse 為例,選中該擴展的項目,然后右鍵打開“調試配置(Debug Configurations)”,選中“Remote Java Application”,新建一個遠程調試配置,并配置好 JMeter 運行所在的機器的 Host 和端口號,如下圖所示,配置的是本地運行的 12345 端口

創建好配置后,點擊上圖對話框中的 Debug 按鈕,然后在 Debug 透視圖中能看到類似于如下截圖的內容,表示已經成功通過端口連接到本地 JMeter 的 JVM 上。

在代碼中需要調試的位置打好斷點,在 JMeter 上進行相應操作后,即可在 Eclipse 中看到相關的調試內容,如下所示:

總結

利用 Java 提供的遠程調試的功能對 JMeter 擴展插件進行調試,可以比較方便地掌控 JMeter 插件在實際運行過程中的狀況,更好地協助開發人員完成擴展的開發。不過也需要注意的是,這種方式有個缺點:每次開發中改了代碼后再次調試,需要將更新后的 JMeter 擴展重新編譯、打包、部署,并重啟 JMeter。如果調試過程中頻繁改動代碼的話,這種調試方式稍顯麻煩。讀者可根據自己的實際情況選擇更合適的調試方式。

版權聲明: 本文為 EMQ 原創,轉載請注明出處。

原文鏈接:??https://www.emqx.com/zh/blog/custom-jmeter-plug-in??

標簽: 工作空間 開發人員 還有一個

上一篇:期末復習二
下一篇:Linux學習系列:centos7筆記本合上屏幕不休眠