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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值