如何在Jmeter分布式测试中为每个从站提供序列号?

时间:2018-04-13 09:25:21

标签: jmeter load-testing distributed-testing

我想运行jmeter分布式设置,但由于某种原因我需要识别每个带有序列号的从站,如何将序列号提供给所有从站,例如一个从站有序列号1,另一个是2,依此类推。

jmeter中有什么功能吗?给出用户输入文件不是我设置的可行解决方案。认为只有我可以访问主系统。

2 个答案:

答案 0 :(得分:1)

当你启动那些从属时,你必须使用-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 bash:

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;

答案 1 :(得分:0)

如果您只能访问主系统,则无法“设置”任何内容,您只能使用__machineName()和/或__machineIP()功能来区分测试计划的位置运行并使用这些功能,即在If Controller中,即在不同的从站上运行测试计划的不同分支,或识别哪个从站产生了这个或那个结果。