我在JMeter脚本中实现了PerfMon Metrics Collector(侦听器)。这些侦听器具有HOST和PORT字段。我已经在测试计划中为这些变量定义了变量并在监听器中使用它们。
我在非分布式模式下测试了这些脚本,它运行良好。
现在,我将脚本转换为分布式模式。除了抛出以下错误消息的PerfMon侦听器之外,一切正常:
2016/02/29 09:06:35错误 - kg.apc.jmeter.perfmon.PerfMonCollector:Perfmon插件错误:java.net.ConnectException:connect:本地机器上的地址无效,或者端口无效远程机器
此错误似乎与无效值有关(可能这些侦听器在分布式模式下不处理{} $等特殊字符!!)。因此,我删除了HOST / PORT的变量,而是使用了硬编码值,并且工作正常。
显然,这些侦听器在分布式模式下无法正常工作(IF与变量一起使用)。
是否有针对此问题的解决方法,因为我的设置中有大量的PerfMon侦听器,并且手动更改它们都将是一项繁琐的工作。
答案 0 :(得分:1)
转到JMeter属性而不是JMeter变量,例如:
${HOST}
${__P(HOST,)}
${PORT}
${__P(PORT,)}
在JMeter 主一侧传递HOST
和PORT
属性值,如:
jmeter -GHOST=target_hostname_or_IP -GPORT=target_port -s -n -t ....
您可以在不同的从属服务器上使用不同的值,在这种情况下,在 user.properties 文件中指定属性(它位于JMeter安装的/ bin文件夹下),如:
HOST=10.20.30.40
PORT=1234
请记住在编辑任何配置文件后重新启动JMeter。
参考文献: