1. 程式人生 > >MQTT壓力測試工具之JMeter插件教程

MQTT壓力測試工具之JMeter插件教程

all 多個 通訊協議 第三方 壓力 聯網 根據 降低成本 money

摘要: MQTT(Message Queuing Telemetry Transport,消息隊列遙測傳輸)主要用於移動Push,移動IM,物聯網M2M,物聯網采集等,這些應用場景的特點是客戶端的連接設備數比較多,那麽如何在系統上線之前驗證系統能否承受預先設計的壓力呢?

MQTT簡介 MQTT(Message Queuing Telemetry Transport,消息隊列遙測傳輸)是IBM開發的一個即時通訊協議,它比較適合於在低帶寬、不可靠的網絡的進行遠程傳感器和控制設備通訊等,正在日益成為物聯網通信協議的重要組成部分。MQTT現在主要用於移動Push,移動IM,物聯網M2M,物聯網采集等,這些應用場景的特點是客戶端的連接設備數比較多,那麽如何在系統上線之前驗證系統能否承受預先設計的壓力呢? JMeter MQTT插件
JMeter作為現在最流行的開源性能測試工具,實現了對各種協議的測試支持,比如HTTP/HTTPS,SOAP/REST,FTP,JDBC等。JMeter提供了靈活的插件機制,允許第三方擴展不支持的協議,網站 https://jmeter-plugins.org/ 中搜集了將近60多個插件,這些插件提供了各種功能,但是該網站並沒有提供測試MQTT的插件。 經過上github上搜索,發現github tuanhiep是一個不錯的插件,基本的MQTT測試功能都已經提供,但是在使用過程中發現有以下問題:
  1. 發現了一些bug:比如腳本中某些值無法保存等
  2. 使用不方便:使用該插件的過程比較麻煩,需要手工解壓/打包JMeter的包,容易出錯
  3. 只支持JMeter2.1版本,現在JMeter官方的最新版本已經到3.1,想使用最新版本的JMeter就會有問題
使用方法 針對於這些問題,我們fork了該項目,並且修復了在使用過程中發現的這些bug,並且讓使用過程變得更加簡單。
  1. 如果之前已經開著JMeter,請先關閉
  2. 從這裏選擇相應版本的插件進行下載
  3. 將下載的2個文件(ApacheJMeter_core.jar, mqtt-jmeter-jar-with-dependencies.jar)拷貝到JMeter的插件目錄:$JMETER_HOME/lib/ext
  4. 重新啟動JMeter
  5. 具體的使用過程可以參考插件的github主頁
高級使用 如果發現有問題,可以直接拉項目代碼進行修改,或者在該項目上創建相應的issue。如果需要重新打包,運行工程下面的repack_jmeter_core.xml腳本就可以了。需要註意的是,在運行之前,請先修改好腳本裏的下面兩行的值。其中第一行是所要打包的JMeter的版本的文件名(不包括擴展名,而且下載的必須是tar文件),第二行是你下載文件所在的目錄。
<property name="jmeter_tar_file_name" value="apache-jmeter-3.0"/>
<property name="jmeter_tar_folder" value="/Users/rockyjin/Downloads"/>
運行成功後會顯示如下所示的內容,並把目錄/mqtt-jmeter/libs/${jmeter_tar_file_name}_new中的兩個jar文件拷貝至$JMETER_HOME/lib/ext目錄下。
Buildfile: /Users/rockyjin/Documents/workspace/rocky_jmeter_mqtt/mqtt-jmeter/repack_jmeter_core.xml
unpack_jmeter:
[delete] Deleting directory /Users/rockyjin/Documents/workspace/rocky_jmeter_mqtt/mqtt-jmeter/libs/apache-jmeter-3.0_new
[echo] Adding MQTT plugin resources...
[untar] Expanding: /Users/rockyjin/Downloads/apache-jmeter-3.0.tgz into /Users/rockyjin/Documents/workspace/rocky_jmeter_mqtt/mqtt-jmeter/libs
repack:
[echo] Unzip original ApacheJMeter_core.jar
[unzip] Expanding: /Users/rockyjin/Documents/workspace/rocky_jmeter_mqtt/mqtt-jmeter/libs/apache-jmeter-3.0/lib/ext/ApacheJMeter_core.jar into /Users/rockyjin/Documents/workspace/rocky_jmeter_mqtt/mqtt-jmeter/libs/apache-jmeter-3.0/work_dir
[echo] Creating new ApacheJMeter_core.jar file
[jar] Building jar: /Users/rockyjin/Documents/workspace/rocky_jmeter_mqtt/mqtt-jmeter/libs/apache-jmeter-3.0_new/ApacheJMeter_core.jar
[copy] Copying 1 file to /Users/rockyjin/Documents/workspace/rocky_jmeter_mqtt/mqtt-jmeter/libs/apache-jmeter-3.0_new
[delete] Deleting directory /Users/rockyjin/Documents/workspace/rocky_jmeter_mqtt/mqtt-jmeter/libs/apache-jmeter-3.0
BUILD SUCCESSFUL
Total time: 2 seconds

大規模MQTT協議測試 – XMeter幫您提高效率,降低成本 針對大規模的MQTT協議測試,可能需要準備大量的測試機器對被測系統進行打壓,這個過程需要大量的準備機器環境,以及管理這些環境的工作,導致工作效率比較低、而且容易出錯。XMeter將這些過程遷移至雲端,用戶只要關註測試腳本的實現過程,而無需關心這些測試環境的管理,而且提供了豐富的測試報告,讓性能問題一目了然。 免費試用 點擊“XMeter性能測試SaaS服務”免費試用,註冊帳戶,並上傳MQTT測試腳本至XMeter, XMeter性能測試SaaS服務 技術分享 XMeter是基於JMeter引擎的性能測試SaaS服務。本服務支持用戶自助的上傳JMeter測試腳本,發起性能測試,並提供實時的性能測試報告。 ¥0/次 技術分享 登錄 控制臺 輸入測試參數,虛擬用戶數和運行時間,提交測試。後臺會根據用戶輸入的測試參數,自動創建相應的VM對目標系統進行打壓. 運行測試
通過測試報告可以查看一些關於測試的信息,比如測試的連接數,持續時間,當前的測試狀態,也可以將測試日誌下載下來進行檢查等 技術分享 測試結果 實時產生的測試報告,允許用戶查看性能測試過程中最關心的性能測試指標。 技術分享 實時測試結果 -實時報告 技術分享 實時測試結果 - 實時圖表 測試歷史記錄都被保存下來,可以隨時進行查看和比較。

MQTT壓力測試工具之JMeter插件教程