JMeter GUI测试IBM MQ正常但CLI报错且结果异常求助
JMeter CLI执行IBM MQ测试异常排查指南
问题梳理
JMeter 5.6.2 GUI运行IBM MQ Docker测试计划正常,但CLI执行时出现错误,聚合报告显示接收消息数多于发送数(疑似重试导致),相关信息如下:
执行命令
jmeter.bat -n -t "C:\Users\alex\Desktop\all jmeter stuff\jmeter test plan jmx files\MQ-Sender-Receiver-Plan.jmx" -l "C:\Users\alex\Desktop\all jmeter stuff\jmeter test plan jmx files\results.jtl" -j "C:\Users\alex\Desktop\all jmeter stuff\jmeter test plan jmx files\log.jtl"
部分CLI日志
2023-07-12 18:28:32,787 INFO o.a.j.u.JMeterUtils: Setting Locale to en_EN 2023-07-12 18:28:32,799 INFO o.a.j.JMeter: Loading user properties from: user.properties ... 2023-07-12 18:30:35,049 INFO o.a.j.r.Summariser: summary = 11956 in 00:02:02 = 98.3/s Avg: 7 Min: 1 Max: 5031 Err: 12 (0.10%)
排查步骤
验证环境一致性
- 执行
jmeter.bat -v确认CLI使用的JMeter版本为5.6.2,与GUI版本完全一致 - 对比GUI与CLI的配置文件:GUI可通过「选项→系统属性」查看加载的配置项,CLI默认加载
user.properties,检查是否存在MQ客户端版本、连接超时、SSL配置等差异
- 执行
分析完整错误日志
- 建议将日志文件后缀改为
.log(避免与结果文件results.jtl混淆),查看完整错误栈信息,定位具体错误类型(如MQ连接断开、消息确认失败、权限不足等) - 0.10%的错误率可能触发了JMeter的重试机制,导致重复发送消息,进而出现接收数多于发送数的情况
- 建议将日志文件后缀改为
检查MQ测试计划配置
- 查看MQ Sampler的「Retry on error」选项是否开启,若开启则错误时会自动重试,需确认是否符合业务预期
- 核对线程组的「线程数」「循环次数」是否与GUI配置一致,避免CLI执行时因配置文件覆盖或参数传递导致循环次数异常
- 检查消息接收逻辑:确认是否正确配置了消息确认机制(自动确认/手动确认),是否存在未确认消息被重复消费的情况
检查IBM MQ Docker状态
- 执行
docker logs <容器ID>查看MQ容器日志,确认CLI测试期间是否有连接异常、消息堆积、队列属性变更等情况 - 检查MQ队列属性:是否开启消息持久化、是否设置了消息过期时间、死信队列是否存在异常消息堆积
- 执行
修正CLI命令参数
- 将日志文件后缀改为
.log,例如:-j "C:\Users\alex\Desktop\all jmeter stuff\jmeter test plan jmx files\log.log" - 执行CLI测试前删除旧的
results.jtl文件,或使用-o参数指定新的结果目录,防止旧数据干扰统计结果
- 将日志文件后缀改为
内容的提问来源于stack exchange,提问作者JL007
相关产品推荐
相关产品推荐

