
从 0 到 EMQX 压测MQTT JMeter插件的 6 个上手动作【免费下载链接】mqtt-jmeterMQTT JMeter Plugin项目地址: https://gitcode.com/gh_mirrors/mq/mqtt-jmeterEMQX 上线前怎么证明它扛得住十万台设备在线光看监控曲线不行得让真实客户端把连接和收发打满。MQTT JMeter插件就是把 JMeter 变成 MQTT 压测台的扩展装好后线程组里直接多出四个采样器物联网性能测试不用再手写协议代码。环境快速自检开工前花十秒确认三样东西能省掉后面大半为什么连不上。检查项要求备注Java8 或更高版本源码构建需要完整 JDKJMeter3.2 或更高版本版本过老会出现兼容问题网络客户端能直连 Broker1883TCP/ 8883SSL需放行安装插件两条路选一条装插件本身不复杂纠结的只是用现成 JAR 还是自己编译两条路殊途同归。走预编译路线的话仓库 Download 目录里按版本分好了 JAR推荐 v2.0.2主体是 mqtt-xmeter-2.0.2-jar-with-dependencies.jar若你想用 fusesource 客户端实现再带上可选的 mqtt-xmeter-fuse-2.0.2-jar-with-dependencies.jar。把它们放进 JMeter 的 lib/ext 目录cp Download/v2.0.2/mqtt-xmeter-2.0.2-jar-with-dependencies.jar $JMETER_HOME/lib/ext/走源码构建更直接clone 下来交给 Mavengit clone https://gitcode.com/gh_mirrors/mq/mqtt-jmeter cd mqtt-jmeter mvn install产物在 target 目录同样拷进 lib/ext。第一个连接跑起来装完别急着加压先用最小配置把一条连接打通这是后面所有压测的地基。重启 JMeter新建测试计划在线程组上右键 → 添加 → Sampler菜单里应多出 MQTT Connect、MQTT DisConnect、MQTT Pub Sampler、MQTT Sub Sampler 四项——看到它们说明安装成功了。接着配置连接参数。这里最容易翻车的是服务器地址带了协议前缀插件只收纯 IP 或域名。参数说明建议值服务器地址Broker 的 IP 或域名不要加 tcp:// 之类前缀127.0.0.1端口TCP 默认 1883SSL 默认 88831883MQTT 版本3.1 或 3.1.1对接云 IoT 平台建议 3.1.13.1.1客户端 ID连接唯一标识勾选随机后缀避免撞 IDconn_ 随机串Keep Alive心跳包间隔单位秒300协议TCP、SSL、WS、WSS 四选一按 Broker 开放端口选跑一次结果树里响应码为 0 就算连通再拖一个 DisConnect 收尾这条最小链路就是后续 MQTT 连接测试的模板。发消息与收消息连接只是开场真正的负载要靠发布和订阅打出来。发布端把消息送出去Pub 采样器复用 Connect 建立的连接连接没好它直接报错所以测试计划里的顺序不能乱。QoS 三档一句话带过0 是至多一次1 是至少一次2 是恰好一次做 MQTT Broker 基准测试时别忽略这层开销差异。消息类型有三种普通字符串可写 JMeter 变量、十六进制字符串、固定长度随机串默认 1024即 1KB——要模拟不同报文大小就用最后一种。另外两个开关值得留意保留消息会让 Broker 留住该主题上的最后一条报文负载加时间戳后订阅端才能反算出时延。订阅端把消息收回来Sub 采样器同样复用已有连接主题支持逗号分隔、一次订多个。多久采样一次有两种模式按时间间隔默认 1000ms窗口内收到的消息汇总成一条结果或按收到消息条数。若负载里带时间戳它会顺手算出消息延迟——注意发布机和订阅机时钟不一致时这个数值只能作参考。上生产前必须处理的事 测试环境跑通不等于能上生产SSL、报文大小、线程模型这三块是重灾区。SSL/TLS 认证生产环境建议走 8883 端口。EMQX 自带的 PEM 证书cacert.pem、client-cert.pem 等要先用 keytool 转成 JKS 才能被插件使用keytool -import -alias cacert -keystore emqtt.jks -file cacert.pem -storepass 你的密码 keytool -import -alias client -keystore emqtt.jks -file client-cert.pem -storepass 你的密码勾选双向 SSL 认证后把 keystore 路径和密码填进采样器即可。报文大小别默认 1KB 就压到底按真实业务报文调整压出来的曲线才有参考价值。线程模型线程数 × 循环次数就是总连接规模建议阶梯式加压同时盯住 Broker 侧的连接数和心跳开销。翻车现场速查 ✅九成故障都能归进下面三类照着排查能省不少时间。Sampler 装完不显示先确认 JAR 放在 lib/ext 而不是 lib 根目录且 JMeter 版本不低于 3.2然后完整退出再启动——只刷新窗口是没用的。连接失败、一直超时用 nc 或 telnet 手动确认端口可达再看服务器地址有没有误加协议前缀最后确认 Broker 进程本身在运行。SSL 握手报错多半是 keystore 问题JKS 密码填错、PEM 忘了转换、服务端要求双向认证而插件里没勾选。按证书链一项项核对。还不会搭测试计划打开 SampleScripts 目录背景连接、单向收发、双向通信各有一个 .jmx改好地址和主题就能跑。压测报告记得附上 QoS 和报文大小两个变量不然下次没法复现。【免费下载链接】mqtt-jmeterMQTT JMeter Plugin项目地址: https://gitcode.com/gh_mirrors/mq/mqtt-jmeter创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考