testing - 如何在 linux 服务器中暂停以非 gui 模式运行的 Jmeter

标签 testing jmeter performance-testing load-testing

我正在使用 HTTP POST 请求将数据发布到 REST API。 jmeter 设置是单线程的。当我进行 200,000 次后调用时,我想在需要时暂停运行,并在需要时恢复运行。

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.

最佳答案

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

  1. 将 Constant Throughput Timer 添加到您的测试计划中,并以每分钟请求数为单位设置所需的吞吐量。如果您不想限制 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 找到它

关于testing - 如何在 linux 服务器中暂停以非 gui 模式运行的 Jmeter,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53588775/

相关文章:

支持 HTTP PATCH 的 REST 测试工具?

testing - 寻找英文文本以测试用户可能的输入

java - 如何判断一个java方法是否可以在另一个方法中调用

jmeter - 使用 3.0 JMeter 读取 3.1 jmx JMeter 文件

performance - 如何在 Scrapy 蜘蛛上运行 cProfiler

macos - 性能分析 KEXT

hibernate - 如何在自动化单元或系统测试期间模拟 Hibernate 错误?

javascript - 使用 Jmeter/Blazemeter 时出现错误 org.openqa.selenium.NoSuchElementException : Unable to locate element:

java - 当我尝试保存测试计划时,为什么会收到 NoClassDefFound 错误?

c# - 有什么办法可以改善 TCP 连接时间吗?