news 2026/4/30 20:27:43

JMeter 实现 MQTT 协议压力测试 !

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
JMeter 实现 MQTT 协议压力测试 !

1. 下载jmeter,解压

https://jmeter.apache.org/download_jmeter.cgi

以 5.4.3 为例,下载地址:

https://dlcdn.apache.org//jmeter/binaries/apache-jmeter-5.4.3.zip

linux下解压:

unzip apache-jmeter-5.4.3.zip

2. 下载mqtt-jmeter插件

下载地址:

https://github.com/emqx/mqtt-jmeter/releases

https://github.com/emqx/mqtt-jmeter/releases/download/v2.0.2/mqtt-xmeter-2.0.2-jar-with-dependencies.jar

3. 将插件放置于jmeter的lib/ext目录下

windows/linux同样操作

4. 本文先在windows下生成的jmx脚本,然后传至linux下使用

新建两个线程组

  • 第一个仅包含一个 MQTT DisConnect,执行一次

  • 第二个里面包含具体的压测,开启1000个线程,1s内将线程创建完毕,无限循环。创建两个计数器,pub_counter用来技术发布消息数,thread_counter用来线程计数

事先创建1000个设备,名称为cosmoiottest000001 - cosmoiottest000001000(可自己定义)。添加一次性控制器(mqtt连接一次,后续pub消息),写上配置信息。

添加循环控制器,循环一次。包含固定定时器,休眠1000ms,一个发布MQTT Pub Sampler,即每个线程进来执行一次发布消息然后休眠1000ms进入下一次循环。每个消息包含100个点位(根据自己需要设置),每个点位随机生成一个整数。

添加观察结果树、汇总报告、聚合报告等,可在windows下面查看结果

配置截图如下:

  • 循环执行线程

  • pub_counter计数器

  • thread_counter计数器

  • mqtt connect设置:

  • MQTT发布消息:

5. linux压测命令:(需要先将bin/jmeter添加可执行权限)

  1. chmod +x bin/jmeter

  2. ./bin/jmeter -n -t mqtt_test.jmx -l result.jtl

6. 将结果jtl生成可视化报告,放置于result目录

  1. mkdir result

  2. ./bin/jmeter -g result.jtl -o result

将结果目录拉下来,点开即可查看图形化结果

注意可能遇到问题:

  • 执行jmeter压测后,进程不退出,编辑 jmeter.properties,打开配置

jmeterengine.force.system.exit=true

jmx文件传到linux后可能出错,建议英文环境下生成jmx文件,语言控制jmeter.properties

#language=en (默认英文,切换为中文为:zh_CN)
  • mqtt-jmeter 的jar包需要传至lib/ext目录,否则不可用

    生成报告时报错:

Consumer failed with message :Begin size 0 is not equal to fixed size 5

将jdk换成8版本

  • jtl结果文件,也可拉到windows,使用jmeter直接查看,新建线程组->聚合报告,选择jtl文件

感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!有需要的小伙伴可以点击下方小卡片领取

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/18 17:33:18

运用大语言模型实现暗网情报自动化采集与分析

运用大语言模型实现暗网情报自动化 在我的上一篇博客中,我们讨论了TOR(地下网络:Tor与匿名技术),包括它是什么、如何工作以及实际使用方法。随着人工智能几乎融入各个领域,我最近发现了一些利用AI来浏览暗…

作者头像 李华
网站建设 2026/4/30 20:29:00

Z-Image-Turbo GPU优化实战:提升图像生成效率50%以上

Z-Image-Turbo GPU优化实战:提升图像生成效率50%以上 你是否还在为图像生成速度慢、显存占用高而烦恼?尤其是在使用Stable Diffusion类模型时,等待一张高清图生成的时间动辄几十秒甚至更久。今天要介绍的 Z-Image-Turbo,正是为此…

作者头像 李华
网站建设 2026/5/1 4:45:42

32F103ZET6相机

目录STM32F103ZET6 概述相机相关功能硬件连接软件配置图像处理典型应用场景注意事项源码文档获取/同行可拿货,招校园代理 :文章底部获取博主联系方式!STM32F103ZET6 概述 STM32F103ZET6 是意法半导体(STMicroelectronics)推出的基…

作者头像 李华
网站建设 2026/5/1 4:49:00

PHP 8.4发布在即:5大性能飞跃揭秘,旧版本用户必须升级的3个理由

第一章:PHP 8.4 性能对比旧版本提升概览 PHP 8.4 作为 PHP 语言的最新迭代版本,在性能优化方面带来了显著改进。相比 PHP 7.4 和 PHP 8.0,新版本通过优化 Zend 引擎、增强 OPcache 预加载机制以及引入更高效的类型推断系统,实现了…

作者头像 李华
网站建设 2026/5/1 4:44:42

实时检测延迟高?FSMN-VAD性能优化三步法

实时检测延迟高?FSMN-VAD性能优化三步法 1. 问题背景:为什么你的VAD检测总是卡顿? 你有没有遇到过这种情况:在做语音识别预处理时,明明音频不长,但系统却要等好几秒才出结果?或者用麦克风实时…

作者头像 李华