我想运行 jmeter 分布式设置,但由于某种原因,我需要用序列号识别每个从站,如何将序列号提供给所有从站,例如一个从站的序列号为 1,另一个为 2,依此类推。
jmeter有什么功能吗?提供用户输入文件不是我设置的可行解决方案。认为只有我可以访问主系统。
我想运行 jmeter 分布式设置,但由于某种原因,我需要用序列号识别每个从站,如何将序列号提供给所有从站,例如一个从站的序列号为 1,另一个为 2,依此类推。
jmeter有什么功能吗?提供用户输入文件不是我设置的可行解决方案。认为只有我可以访问主系统。
当您启动这些从属服务器时,您必须使用 -J 参数传递变量,如下所示:
for slave in slaves:
serial_index += 1
run_jmeter_server_cmd = 'nohup java -jar "/bin/ApacheJMeter.jar" "-Djava.rmi.server.hostname={0}" -Dserver_port={1} -Jserial_index={3} > /dev/null 2>&1 '.format(hostname, port, serial_index)
并且 serial_index 必须在测试计划中的用户定义变量中: serial_index: ${__P(serial_index)} Windows 批处理:
for /l %x in (1, 1, 100) do (
echo %x
jmeter -n -t C:\User\Scriptname.jmx -Jusers=0 -Jserial_number=%x
)
Linux 重击:
for i in {1..5}
cd $JMETER_DIR/bin/
DIRNAME=`dirname $0`
nohup java $JVM_ARGS -jar "$JMETER_DIR/bin/ApacheJMeter.jar" "$@" "-Djava.rmi.server.hostname=$host" -Dserver_port=\$port -s -Jpoll=\$i > /dev/null 2>&1 &
done;
如果您只能访问主系统,您将无法“设置”任何内容,您只能使用__machineName()和/或__machineIP()函数来区分您的测试计划在哪里运行并使用这些函数,即如果控制器,即在不同的从站上运行测试计划的不同分支或识别哪个从站产生了这个或那个结果。