基於Jmeter的MQTT測試外掛-上
阿新 • • 發佈:2019-02-06
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
:連續傳送的訊息之間,等待的毫秒數 - 新增監聽器
影象,表格都行