
MQTT JMeter 插件安装指南手把手让 JMeter 压测 MQTT 协议【免费下载链接】mqtt-jmeterMQTT JMeter Plugin项目地址: https://gitcode.com/gh_mirrors/mq/mqtt-jmeterMQTT JMeter 插件 安装只需要把一个 JAR 包放进 JMeter 的 lib/ext 目录并重启。之后你就能在 Sampler 菜单里用 Connect、Pub、Sub、DisConnect 四个采样器对 MQTT 服务器做压测配置方式和普通 HTTP 采样器类似。本指南按检查环境 → 安装插件 → 配置脚本 → 验证排错的顺序带你走完全流程并附上常见卡点的排查方法。mqtt-jmeter 是什么JMeter 压测 MQTT 协议的标准做法Apache JMeter 原生采样器不覆盖 MQTT 这类 IoT 协议想要测量 broker 的吞吐量和消息延迟时缺少现成手段。mqtt-jmeter 是一个标准的 JMeter 插件它在 JMeter 的 Sampler 菜单里补齐了 MQTT 连接、发布、订阅、断开四个采样器让你像配置 HTTP 请求一样配置 MQTT 压测脚本。它已被用于 EMQX 服务器的性能基准测试适合需要做 MQTT 吞吐量、消息延迟、海量后台连接压测的开发者。项目快照说明开发语言Java源码按 Java 8 编译核心技术/框架Apache JMeter 插件体系内置 Fuse 与 HiveMQ 两套 MQTT 客户端版本要求JMeter 3.2构建基于 JMeter 5.5推荐 5.x一句话定位让 JMeter 像测 HTTP 一样压测 MQTT 协议安装前检查 Java 与 JMeter 两个环境☑️ JDK 8 或更高版本插件按 Java 8 编译在终端执行java -version能看到 1.8 及以上即满足☑️ JMeter 3.2 或更高版本README 推荐 3.2而构建实际基于 JMeter 5.5使用 5.x 更稳妥启动 JMeter 后在标题栏即可看到当前版本☑️ 一台可访问的 MQTT 服务器本机起一个 EMQX 即可TCP 默认 1883 端口SSL 默认 8883 端口☑️ 可选Maven仅当你要从源码构建插件时才需要三步装好 MQTT JMeter 插件第 1 步获取插件 JAR 包插件以 jar-with-dependencies 胖包形式发布仓库 Download 目录按版本归档了各期产物当前最新版为 2.0.2对应文件是Download/v2.0.2/mqtt-xmeter-2.0.2-jar-with-dependencies.jar如果你的 JMeter 版本较老可选历史版本v1.13.0、v1.0.12.0.2 目录里还有一个-fuse后缀的变体包常规安装选不带后缀的即可这一步完成后你应该在下载位置看到一个以-jar-with-dependencies.jar结尾的完整插件包。第 2 步把 JAR 复制到 JMeter 的 lib/ext 目录打开 JMeter 安装目录进入lib/ext文件夹把第 1 步拿到的 JAR 文件复制进去与其他插件包并列存放即可无需改名这一步完成后你应该在lib/ext目录下看到新增的 mqtt-xmeter-*.jar 文件。第 3 步重启 JMeter 让插件生效完全退出 JMeter不要只关窗口重新启动 JMeter这一步完成后在任意线程组上右键 → 添加 → 采样器你应该能看到四个 MQTT 采样器截图见验证一节。可选从源码构建插件克隆仓库git clone https://gitcode.com/gh_mirrors/mq/mqtt-jmeter进入仓库根目录执行mvn installMaven 会先下载 JMeter 相关依赖耗时取决于网络这一步完成后你应该在mqtt_jmeter/target/下看到名为mqtt-xmeter-版本号-jar-with-dependencies.jar的产物用它替换手动下载的包即可。创建第一个 MQTT 压测脚本并配置四个采样器搭建 Connect 采样器配置 MQTT 连接参数右键线程组 → 添加 → 采样器 → MQTT Connect 采样器核心配置项如下配置项说明Server name or IP被测 MQTT 服务器地址默认 127.0.0.1⚠️ 不要加tcp://等协议前缀Port numberTCP 常用 1883SSL 常用 8883MQTT version默认 3.1部分服务器如 Azure IoT Hub要求选 3.1.1协议支持 TCP、SSL、WS、WSSSSL/WSS 可勾选双向证书认证User name / PasswordBroker 开启账号密码认证时填写ClientId客户端标识可勾选追加随机后缀避免压测时 ID 冲突Keep alive(s)心跳间隔秒数默认 300Clean session置为 false 可在多次会话间保留状态连接参数界面如下配置 Pub 采样器主题、QoS 与消息体Pub 采样器复用 Connect 采样器建立的连接来发消息连接未就绪会立即失败所以要排在 Connect 之后。QoS level0最多一次、1至少一次、2恰好一次Retained messages勾选后 Broker 会保留该主题的最后一条消息Topic name消息要发布的主题Payload支持普通字符串、十六进制串、固定长度随机串三种也可用 JMeter 变量可勾选在消息体前加时间戳配合 Sub 采样器计算延迟配置 Sub 采样器订阅主题与采样方式QoS level订阅服务质量等级Topic name(s)逗号分隔的多个主题Sample on按时间汇总默认 1000ms 采样一次或按收到消息条数两种模式Debug response调试脚本时建议勾选响应里会直接打印收到的消息用 DisConnect 采样器收尾并启动首次压测DisConnect 采样器只负责清掉当前连接方便下一轮 Connect 重新建连当前没有连接时它会立即失败属正常现象。四个采样器按 Connect → Pub/Sub → DisConnect 排好顺序后保存测试计划点击运行即可开始压测。不想从零画脚本的话仓库 SampleScripts/ 目录提供三份现成 .jmx后台海量连接、单向发布订阅、设备与手机双向互发可直接打开参考结构验证 MQTT 插件安装成功并排查常见卡点验证方法重启后的 JMeter 里右键线程组 → 添加 → 采样器若能看到 MQTT Connect、Pub、Sub、DisConnect 四个采样器说明 MQTT JMeter 插件安装成功如果你遇到重启后菜单里没有 MQTT 采样器通常是 JAR 没放进 lib/ext、放的不是 jar-with-dependencies 完整包或 JMeter 版本低于 3.2如果你遇到 Connect 采样器连不上服务器通常是地址栏误加了tcp://前缀该插件不接受协议前缀、端口与协议不匹配1883 对应 TCP、8883 对应 SSL或服务器要求 MQTT 3.1.1如果你遇到 Pub/Sub 采样器一执行就失败通常是 Connect 还没建立连接——它们复用已有连接必须排在 Connect 成功之后如果你遇到 SSL 双向认证连接失败通常是 keystore 里没导全 CA、服务器、客户端三类证书——以 EMQTT 为例可从其etc/certs目录取出证书用 keytool 导入 keystore再在采样器的 SSL 配置区指定 keystore 与口令到这里MQTT JMeter 插件 安装与首次压测已经跑通你掌握了从环境检查、插件部署到四个采样器配置的完整链路。下一步可以打开 插件采样器源码目录 了解各采样器实现或直接基于 SampleScripts 示例脚本 改造出你自己的 MQTT 压测用例。【免费下载链接】mqtt-jmeterMQTT JMeter Plugin项目地址: https://gitcode.com/gh_mirrors/mq/mqtt-jmeter创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考