淘先锋技术网

首页 1 2 3 4 5 6 7

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" #根据内存情况,可以适当调大