如何暂停在Linux服务器中以非GUI模式运行的Jmeter

时间:2018-12-03 06:49:30

标签: testing jmeter performance-testing load-testing

我正在使用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.

1 个答案:

答案 0 :(得分:1)

JMeter特定的解决方案将使用Beanshell ServerConstant Throughput Timer的组合。

  1. 将恒定吞吐量计时器添加到您的测试计划中,并以每分钟的请求数设置所需的吞吐量。如果您不想限制JMeter,请使用__P() function

    将其设置为很高的值
    ${__P(throughput,10000000)}
    
  2. 通过在 user.properties 文件中添加以下两行来启用Beanshell服务器:

    beanshell.server.port=9000
    beanshell.server.file=../extras/startup.bsh
    
  3. 创建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

找到它。