JMeter測試EMQ集羣

Jmeter是一個由Apache基金會推出、基於Java的通用測試軟件,可以在圖形化界面中很方便地制定test plan然後執行它。

一、測試環境說明

       我在Linux搭建了EMQ集羣,用兩臺機器搭建的,然後現在準備在那兩個機器上也安裝JMeter,然後進行批量測試,但是由於直接使用JMeter比較麻煩,所以準備在本地Windows上也安裝一個JMeter,然後生成.jmx測試計劃,然後上次到服務器,用服務器上的JMeter運行測試計劃。我用的是jmeter3.1

       前提:JMeter是基於java的,因此必須安裝jdk,無論是哪個環境的JMeter,只要使用了就得安裝jdk,最新版本的jmeter5要求jdk1.8+,因此最好安裝jdk1.8+,至於jdk環境變量的配置,這裏就不說了,幾乎所有的java開發都會,不會的百度一下吧。這個是必須要有的!!!!

如果需要jmeter3.1的,請自行下載:jmeter3.1,已經集成了MQTT插件了。

二、Linux服務器上安裝jmeter

2.1、官網下載JMeter

        jemeter官網下載zip文件,http://jmeter.apache.org/download_jmeter

2.2、解壓zip文件,unzip apache-jmeter-3.1.zip

2.3、配置profile文件,vim /etc/profile

        在vim文件中加上:

       

      記得路徑換成你的自己的路徑!!!

2.4、jmeter加上測試MQTT的插件

       由於jmeter原生中沒有測試MQTT,因此必須加相關的插件jar包,訪問:https://github.com/emqx/mqtt-jmeter,將Download/v1.0.1目錄下的mqtt-xmeter-1.0.1-jar-with-dependencies.jar下載下來然後放在jmeter文件夾lib/ext下。

       爲了防止gitHub上該jar對應的項目哪天停止使用了,我上傳該jar到我的CSDN了,需要的可以自己下載:mqtt-xmeter-1.0.1-jar-with-dependencies.jar

三、windows上安裝JMeter

3.1、官網下載JMeter

        jemeter官網下載zip文件,http://jmeter.apache.org/download_jmeter

3.2、解壓,然後根據2.4的步驟,下載MQTT插件,然後放在你本地的jmeter的lib/ext下

四、開始測EMQ集羣

    4.1、添加線程組

 

   4.2、添加MQTT連接測試

   4.3、生成jmx測試文件

4.4、上傳jmx文件到Linux上,並執行下面任何一個命令即可

 jmeter -n -t /home/cesec/jmeter/test9.jmx 執行測試計劃

jmeter -n -t /home/cesec/jmeter/test9.jmx -l /home/cesec/jmeter/test9.jtl執行測試計劃並生成聚合報告(執行結果報告)

   4.5、若生成了聚合報告,使用windows下的jmeter查看

     可以使用xftp將生成的jtl文件下載到本地,然後通過jmeter查看,添加--》監聽器--》Aggregate Graph

 各個參數什麼意思,可以百度

   4.6、查看EMQ集羣是否生效了

    直接登錄haproxy的管理頁面查看即可

五、如果有需要可以對JMeter測試服務器的優化

  5.1、修改服務器參數

cat << EOF >> /etc/sysctl.conf
fs.file-max = 2097152
fs.nr_open = 2097152

### backlog - Socket 監聽隊列長度:
net.core.somaxconn=32768
net.ipv4.tcp_max_syn_backlog=16384
net.core.netdev_max_backlog=16384

## 可用知名端口範圍:
net.ipv4.ip_local_port_range=1000 65535

## TCP Socket 讀寫 Buffer 設置:
net.core.rmem_default=262144
net.core.wmem_default=262144
net.core.rmem_max=16777216
net.core.wmem_max=16777216
net.core.optmem_max=16777216

#sysctl -w net.ipv4.tcp_mem='16777216 16777216 16777216'
net.ipv4.tcp_rmem=1024 4096 16777216
net.ipv4.tcp_wmem=1024 4096 16777216

## TCP 連接追蹤設置:
net.nf_conntrack_max=1000000
net.netfilter.nf_conntrack_max=1000000
net.netfilter.nf_conntrack_tcp_timeout_time_wait=30

## FIN-WAIT-2 Socket 超時設置:
net.ipv4.tcp_fin_timeout = 15
## TIME-WAIT Socket 最大數量、回收與重用設置:
net.ipv4.tcp_max_tw_buckets=1048576
EOF
cat << EOF >>/etc/security/limits.conf
*      soft   nofile      1048576
*      hard   nofile      1048576
EOF

修改完畢通過sysctl –p 生效

5.2、修改jmeter配置文件

  修改bin/jmeter 文件:
  HEAP="-Xms4096m -Xmx8192m" #根據內存情況,可以適當調大

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章