1. 程式人生 > >基於Jmeter的MQTT測試外掛-上

基於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:連續傳送的訊息之間,等待的毫秒數
  • 新增監聽器
    影象,表格都行
    這裡寫圖片描述