基于Jmeter壓測IoT物聯網平台的性能
原始連結
https://mp.weixin.qq.com/s/p2zYb5g4buoQwpnT-cBXPQ
背景
MQTT 是超輕量級消息協定,用于連接配接移動端與雲服務雙向通信,廣泛應用于物聯網(IoT)領域,如裝置向雲端上報狀态、雲端向裝置推送消息、裝置端A向裝置端B發送消息等場景。
本文以充電寶機櫃上報狀态場景為例介紹如何使用 MQTT 插件和 JMeter 腳本壓測IoT物聯網平台的 MQTT 服務性能。
準備工作
開通IoT物聯網裝置接入服務。
https://www.aliyun.com/product/iot-deviceconnect安裝JMeter 5.1.1版本 版本
https://jmeter.apache.org壓測實戰
1.建立産品和注冊裝置
我們在IoT物聯網平台裝置管理中,建立一個充電寶産品,并注冊10個裝置,獲得身份三元組。
2.準備裝置身份資訊CSV檔案
每個裝置和IoT物聯網平台建立連接配接時,需要提供UserName 、 Password 、 ClientId 這 3個身份資訊,上報狀态資料時需要知道自身的productKey和deviceName來确定通信Topic。
依照IoT物聯網平台身份認證文檔,我們把三元組轉換成UserName 、 Password 、 ClientId,存儲到client.csv檔案中。示例如下:
3.下載下傳 Jmeter ,安裝 MQTT 插件
下載下傳 mqtt-jmeter 插件最新版本 JAR 包:mqtt-xmeter-2.0.2-jar-with-dependencies.jar 。下載下傳位址:
https://github.com/emqx/mqtt-jmeter拷貝插件 JAR 包到 JMeter 安裝目錄的
lib/ext/
子目錄下。操作過程如下:
4.編輯 JMeter 腳本
我們以 JMeter 5.1.1 英文圖形界面為例。
4.1 配置用戶端 CSV 資料檔案
- 打開 JMeter,并建立腳本。
- 在 JMeter 左側檔案目錄中右鍵單擊 Test Plan ,選擇 Add > Threads (Users) > Thread Group。
- 在 JMeter 左側檔案目錄中右鍵單擊 Test Plan ,選擇 Add > Listener > > View Results Tree ,添加 View Results Tree 監聽器,友善本地調試測試腳本。
- 在 Test Plan 區域右鍵單擊 Thread Group ,選擇 Add > Logic Controller > Once Only Controller。JMeter 中一個線程模拟一個 MQTT 用戶端裝置,使用 Once Only Controller 保證一個線程僅讀取一次用戶端 CSV 資料檔案,綁定一條用戶端資訊。
- 在 Test Plan 區域右鍵單擊 Once Only Controller , 選擇 Add > Config Element > CSV Data Set Config。并在 CSV Data Set Config 對話框中配置以下資訊。
Filename :用戶端資訊 CSV 檔案路徑
client.csv
。
File encoding:CSV 檔案編碼格式,本示例使用
UTF-8
Delimiter:這裡我們輸入
#
Recycle on EOF:是否循環讀取檔案。選擇
False
。
4.2 建立 MQTT 連接配接
我們使用 Once Only Controller 控制一個用戶端隻需執行一次建連操作。
- 在 Test Plan 區域右鍵單擊 Once Only Controller,選擇 Add > Sampler > MQTT Connect。
- 在 MQTT Connect 對話框中配置以下資訊。
4.3 配置釋出消息
- 在 Test Plan 區域右鍵單擊 Thread Group,選擇 Add > Sampler > MQTT Pub Sampler
- 在 MQTT Pub Sampler 對話框中配置以下資訊。
QoS Level:用戶端向伺服器釋出消息的服務品質。本示例中選擇
,即隻發送一次,丢失不重發,可按需選擇其他級别。
Topic name:消息 topic 。MQTT topic 支援層次結構,使用 / 分割,類似檔案路徑,如
pts_test/jmeter
等。
Add timestamp in payload:是否添加消息頭添加發送時間戳。一般勾選此項,友善測試時檢查消息延遲。
Payloads:消息體。本示例中填寫
this message is from jmeter ${clientId}!
,即在消息體中添加用戶端 ID,友善測試和調試檢查。
4.4 啟動壓測腳本
- 在 Test Plan 區域單擊 Thread Group,配置 Loop Count 為 10(循環執行 10 次)。
- 在 JMeter 頁面左上角單擊儲存,然後執行腳本。
- 在 View Results Tree 頁面檢視腳本執行結果:
- 在Summary Report 頁面檢視腳本執行結果:
- 在Graph Results 頁面檢視腳本執行結果:
4.5 IoT物聯網平台控制台日志