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:連續發送的消息之間,等待的毫秒數 - 添加監聽器
圖像,表格都行
