MQTT壓力測試工具之JMeter插件教程


基於Jmeter的MQTT測試插件-上

1. Jmeter插件簡介

Apache JMeter是Apache組織開發的基於Java的壓力測試工具。下載 
用於對軟件做壓力測試,它最初被設計用於Web應用測試,但后來擴展到其他測試領域。

這里我們主要使用的基於Jmeter開發的,測試MQTT協議的插件工具,從github上找到了幾個歪果人寫的插件,主要有以下幾個:

這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 Session
mqtt_publisher=MQTT Publisher
mqtt_itertions=Number of samples to aggregate
mqtt_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:連續發送的消息之間,等待的毫秒數
  • 添加監聽器 
    圖像,表格都行 
    這里寫圖片描述


免責聲明!

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



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