如何用JMeter测试EMQ集群?

发表于:2019-8-15 10:03

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:请叫我小叶子    来源:CSDN

#
Jmeter
  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" #根据内存情况,可以适当调大
  
      上文内容不用于商业目的,如涉及知识产权问题,请权利人联系博为峰小编(021-64471599-8017),我们将立即处理


《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号