我正在使用HTTP POST请求将数据发布到REST API。 jmeter设置是单线程。当我拨打20万个帖子时,我想在需要时暂停运行,并在需要时恢复运行。
NOTE: i am running the jmeter in NON GUI mode on Linux server, which will not have a GUI for anything.
Other important thing is i can't program it before the run starts because i'm not sure when to pause the suit or when to resume it.
答案 0 :(得分:1)
JMeter特定的解决方案将使用Beanshell Server和Constant Throughput Timer的组合。
将恒定吞吐量计时器添加到您的测试计划中,并以每分钟的请求数设置所需的吞吐量。如果您不想限制JMeter,请使用__P() function
将其设置为很高的值${__P(throughput,10000000)}
通过在 user.properties 文件中添加以下两行来启用Beanshell服务器:
beanshell.server.port=9000
beanshell.server.file=../extras/startup.bsh
创建2个脚本,如
suspend.bsh
包含下一行:
setprop(throughput, 0);
和resume.bsh
包含下一行:
setprop(throughput, 10000000);
无论何时需要暂停测试,请从JMeter安装的“ lib”文件夹中调用以下命令:
java -jar bshclient.jar localhost 9000 /path/to/your/suspend.bsh
查看How to Change JMeter´s Load During Runtime文章以了解更多详细信息。
特定于Linux的解决方案将使用kill
command,例如:
暂停:kill -SIGSTOP JMETER_JAVA_PID
继续:kill -SIGCONT JMETER_JAVA_PID
其中JMETER_JAVA_PID
是运行JMeter的JVM的进程ID,您可以使用jps
command