標籤:
基於Jmeter的MQTT測試外掛程式-上
1. Jmeter外掛程式簡介
Apache JMeter是Apache組織開發的基於Java的壓力測試工具。下載
用於對軟體做壓力測試,它最初被設計用於Web應用測試,但後來擴充到其他測試領域。
這裡我們主要使用的基於Jmeter開發的,測試MQTT協議的外掛程式工具,從github上找到了幾個歪果人寫的外掛程式,主要有以下幾個:
- tuanhiep/mqtt-jmeter
- hemikak/mqtt-jmeter
- winglet/mqttws-jmeter
這3個外掛程式都很像,
第1個下載的最多,但是我在使用發現存在bug,棄之。
第2個功能比較簡單,只能滿足簡單的單主題發送。
第3個是作者基於第1個來改的,並且把串連MQTT的用戶端換成了最常用的paho java用戶端,正好是我項目中使用的,熟悉,功能上雖然沒有第1個豐富,但是有源碼,改改還是可以適用的。
2. mqttws源碼打包
下載解壓之後,匯入到eclipse中,項目是通過maven構建,
外掛程式的:
下面是具體的構建方法:
在項目上點擊右鍵,Run As
->Maven clean
->Maven install
,在target
目錄下,將生產一個名為mqttws-jmeter.jar
的jar包。
將mqttws-jmeter.jar
複製到Jmeter的\lib\ext
目錄下,再將工程ressource
目錄下的messages.properties
檔案中相關MQTT的內容複寫至Jmeter的\lib\ext
目錄下ApacheJMeter_core.jar
中,
使用解壓縮工具開啟,路徑:ApacheJMeter_core.jar\org\apache\jmeter\resources
注意原作者給出的messages.properties
中包含的索引值並不全,比如:
mqtt_clean_session= Clean Sessionmqtt_publisher=MQTT Publishermqtt_itertions=Number of samples to aggregatemqtt_connection_timeout=Milliseconds to wait for connection
此處沒有全部列出來,請自行添加吧。
3. 外掛程式使用
- 添加線程組:添加->Threads(Users)->線程組
Ramp-Up Period(in seconds)
:設定的虛擬使用者數需要多長時間全部啟動。如果線程數為20 ,準備時間長度為10 ,那麼需要10秒鐘啟動20個線程。也就是每秒
鐘啟動2個線程。如果設定0,為同時啟動。
- 添加發布端:線程組右鍵,添加->Sampler->MQTT Publisher
Provider URL
:MQTT伺服器位址
List Topic
:發布的主題。雖然這裡寫的是list,但是作者並不支援,後面會講修改了一下源碼,支援多主題發布
Number of samples to aggregate
:一個線程發布相同訊息的次數
throttle
:連續發送的訊息之間,等待的毫秒數
- 添加監聽器
映像,表格都行
轉:基於Jmeter的MQTT測試外掛程式