JMeter 人人都能學會的 Jmeter 測試 MQ 接口方法

檸檬班軟件測試 發佈 2020-05-12T20:37:34+00:00

啟動jmeter,進入 選項 > Plugins Manager > Available Plugins 搜索MQ, 選擇MQTT Portocol Support, 然後安裝並重啟jmeter。

MQTT介紹

MQ(message queue)消息隊列,是基礎數據結構 先進先出 的一種典型數據結構。一般用來解決應用解耦,異步消息,流量削鋒等問題,實現高性能,高可用,可伸縮和最終一致性架構。

MQ主要產品包括:RabbitMQ、ActiveMQ、RocketMQ、ZeroMQ、Kafka

MQTT 是輕量的 (Lightweight)、發布訂閱模式 (PubSub) 的物聯網消息協議

至於現在企業中,特別是電商企業中,喜歡用MQ的原因,可以參考閱讀:https://www.zhihu.com/question/54152397 文章寫的不錯,還挺有趣的

linux機器中MQTT服務搭建

注意: 如果已經有MQTT環境,環境搭建這一章節,可以跳過

安裝

準備一台linux機器(以centos7),搭建國內開源emqx項目,目前該項目最新版本,還未發布centos8版本,所以,如果您的電腦為centos8,centos7均可以執行:

# 安裝必須的依賴
sudo yum install -y yum-utils device-mapper-persistent-data lvm2

# 添加穩定的存儲庫
sudo yum-config-manager --add-repo https://repos.emqx.io/emqx-ce/redhat/centos/7/emqx-ce.repo

# 如果低於cento8,可以直接用這一個命令一鍵安裝,centos8則要執行上面的,再執行這句
curl https://repos.emqx.io/install_emqx.sh | bash

啟動

執行:

# 直接啟動
emqx start

# 或者
sudo systemctl start emqx

# 或者
sudo service emqx start

# 查看運行狀態
emqx_ctl status

# 停止
emqx stop

訪問

MQTT服務採用TCP協議傳輸數據,埠有多個,其中可以外部訪問的埠默認1883。

管理台訪問埠18083,用戶:admin,密碼:public

埠說明1883MQTT / TCP 協議埠,可以被外部訪問11883MQTT / TCP 協議內部埠,只能當前機器自身訪問8883MQTT / SSL 協議埠8083MQTT / WS 協議埠8084MQTT / WSS 協議埠18083MQTT / HTTP協議埠,HTTP管理台訪問埠,用戶admin ,密碼public

配置及日誌

配置文件: /etc/emqx/emqx.conf

listener.tcp.external = 0.0.0.0:1883 # 可以外網訪問的埠

listener.tcp.internal = 127.0.0.1:11883 # 只能本機訪問

log.dir = /var/log/emqx # 日誌文件路徑

log.level = warning # 日誌級別

log.file = emqx.log # 日誌文件,會自動在後面增加數字

日誌文件:/var/log/emqx

  • 參考:https://docs.emqx.io/broker/v3/cn/install.html#https://docs.emqx.io/broker/latest/cn/

Jmeter測試MQTT

方法一:

安裝插件MQTT Protocol Support

啟動jmeter,進入 選項(options) > Plugins Manager > Available Plugins 搜索MQ, 選擇MQTT Portocol Support, 然後安裝並重啟jmeter。



安裝成功後,在jmeter的取樣器中,新增了MQTT Publisher、MQTT Subscriber



其中,MQTT Subscriber 是註冊一個主題,MQTT Publisher是使用主題發送消息。

添加MQTT Subscriber 在 Provider URL地址中,填寫你的伺服器ip,然後點擊右側的 Generate ID 自動生成Client ID,然後再在Topic中,輸入一個主題信息,在Text Message中,填寫要發布的信息。run一下,就成功了。



方法二:

使用websocket插件

在插件管理中,安裝 WebSocket Samplers by Peter Doornbosch



安裝成功後,在取樣器中,添加WebSocket Open Connection, 協議選擇默認的ws, ip填寫你的伺服器ip地址,埠默認為8083,Path根據你的MQ的socket地址填寫。



再添加 WebSocket Single Write Sample, Connection選擇 use existing connection, 在Request data中,填寫要發送的信息,run一下,搞定。




好了, 關於Jmeter如何調用MQ的測試方法,我們就介紹到這。你都掌握了嗎?

關鍵字: