JMeter分布式测试执行完成后无法获取从节点结果如何排查
JMeter分布式测试主控端无法接收从节点结果排查方案
同环境下其他测试脚本可正常获取从节点结果,说明主从节点网络连通性、RMI配置、JMeter版本一致性、端口开放这些全局基础配置无异常,问题全部出在异常测试脚本本身,按以下优先级排查:
- 检查脚本结果收集配置
打开异常脚本,核对所有监听器、结果收集器配置:- 确认没有开启Save response data、Save request data全量留存选项,这类配置会导致单条结果体积过大,超过RMI默认传输包大小限制后从节点会静默丢弃回传数据,主控端无明显报错。可在主从节点的
jmeter.properties中新增配置sun.rmi.transport.tcp.responseTimeout=60000、rmi.socket.maximumPacketSize=104857600,重启节点后验证是否恢复。 - 确认结果收集器没有配置错误的样本过滤规则,比如正则匹配逻辑错误导致所有执行样本被过滤,无有效结果可回传。
- 确认没有给监听器勾选Run only on local host(仅在本地运行)选项,分布式模式下该配置会导致从节点不回传对应监听器的结果。
- 确认没有开启Save response data、Save request data全量留存选项,这类配置会导致单条结果体积过大,超过RMI默认传输包大小限制后从节点会静默丢弃回传数据,主控端无明显报错。可在主从节点的
- 检查脚本逻辑控制器配置
核对脚本内事务控制器、条件控制器配置:如果事务控制器下嵌套的所有请求被条件判断(如如果控制器、仅一次控制器)判定为不执行,会生成无实际数据的空事务样本,从节点执行完成后无有效结果可回传。 - 检查脚本硬编码运行参数
打开异常脚本的jmx源文件,搜索是否存在硬编码的错误配置:- 硬编码
mode=StrippedDiskStore或mode=Asynch但主控端未配置对应临时存储路径,结果回传后落盘失败,主控端无法展示。 - 硬编码了错误的
remote_hosts地址,导致结果回传目标不是当前主控节点。
- 硬编码
- 快速定位方法
直接将异常脚本放到从节点本地单机启动运行,若本地运行时监听器、结果文件也无法正常展示样本数据,可直接判定为脚本本身的结果收集配置错误,无需排查分布式环境相关配置。
内容的提问来源于stack exchange,提问作者nimmi
相关产品推荐
相关产品推荐

