使用JMeter模擬裝置通過MQTT傳送資料
highlight: arduino-light
本文正在參加「金石計劃 . 瓜分6萬現金大獎」
需求: 需要一個工具能夠支援MQTT協議傳送各種不同的資料。
目的: 模擬小型溫室裝置反饋,搭建一個測試環境,根據測試的資料顯示硬體的狀態和數值。
工具:JMeter
環境:需要配置Java執行環境。
操作步驟:
1. 下載JMeter執行包
下載地址:https://jmeter.apache.org/download_jmeter.cgi,下載後可以解壓到任意目錄
2. 安裝JDK,配置Java的執行環境(請自行用谷歌或必應搜尋)
3. 啟動jmeter的執行程式
開啟解壓檔案的bin目錄,執行命令:sh jmeter
開啟後如下圖,在新增測試計劃的具體事例時,我們是找不到MQTT協議的。所以我們還需要安裝MQTT的外掛包
4. 安裝MQTT外掛
- 從 GitHub 上下載最新版本外掛 mqtt-xmeter-2.0.2-jar-with-dependencies.jar,該外掛支援 JMeter 3.2 及以上版本。
- 將外掛 jar 包拷貝到 JMeter 的外掛目錄:$JMETER_HOME/lib/ext
- 重新啟動 JMeter。
這時候在去建立測試事例,就能看到支援MQTT協議的測試入口了
5. 切換到中文
預設是英文,可以手動切換成中文。
如果想修改預設的語言配置,開啟bin目錄下的jmeter.properties檔案,搜尋language,把#language=en 改成language=zh_CH
重啟後,預設開啟就是中文了。接下來我們開始建立一個MQTT的測試。
6. 建立測試用例
a. 建立執行緒組
主要設定執行緒數、Ramp-Up時間和迴圈次數。下面表示的1秒鐘內啟動2個執行緒,傳送1次請求資料。如果迴圈次數勾選永遠,就會一直髮送。
b. 建立MQTT連線
- 先建立一個Connect連線MQTT
注意超時時間,這裡預設的是10毫秒,如果MQTT服務不穩定,可能會出現偶爾連不上的問題,建議1000毫秒
- 建立MQTT pub Sampler錄入要傳送MQTT的topic,如果需要傳送不同資料,可以建立一個CVS,從表裡獲取資料。這時候在Pub sampler 裡就需要使用${}來獲取資料,字串要加“”。
如果想要重複獲取資料,在遇到檔案結束符再次迴圈要選true,停止執行緒那裡要選false。
- 最好設定一個定時器,控制傳送的頻率。比如設定10毫秒一次,相當於1個執行緒1秒傳送100次資料
最後,建立一個檢視結果數,可以檢視傳送的明細。看彙總就建立一個彙總報告。
如果要模擬多個裝置,那就建立多個執行緒組即可。如果想要測試MQTT服務能承受多大的併發, 可以根據需要設定執行緒數和間隔時間,不過這個數量如果特別大的話,併發量會不精準,但總體上還是可以達到我們的測試目的。
本文正在參加「金石計劃 . 瓜分6萬現金大獎」
- ChatGPT:時代賦予的機遇
- 2022年終總結:今年學完的付費課程
- 使用JMeter模擬裝置通過MQTT傳送資料
- 學習力是這個時代的終極競爭力
- 2022年終總結:一年讀完的40本書
- 盤點入職時,那些常見但不合規的操作
- 使用docsify搭建幫助中心
- 要不要開通個人養老金賬戶?
- 公司沒錢了,工資發不出來,作為員工怎麼辦?
- 如何管理職場新人?
- 程式設計師成長第二十四篇:如何與下屬溝通?
- 如何應對老闆需求?
- 公司應該如何招人?
- 員工犯錯,就應該受懲罰嗎?
- 提高工作效率的三種方法
- 程式設計師成長第二十篇:剛晉升管理者,有哪些方面要注意?
- 如何提高開會效率?
- 程式設計師成長第十八篇:專案上線
- 程式設計師成長第十九篇:要不要轉管理崗?
- 專案管理中常見的十個問題