Jmeter 分布式测试:在运行时更改负载吞吐量 (requests/second)

Jmeter Distributed Testing: Change the load throughput (requests/second) in runtime

我已经设置了一个 jmeter 分布式测试设置,其中包含一个主机和多个从机。

在我的测试计划中,我使用了一个具有 5 个线程的线程组、一个 HTTPRequest 采样器和一个目标设置为 - ${__P(throughput, 100)} 对于当前线程组中的所有活动线程。

我想为我的设置更改运行时的预期请求 'throughput' 值。

例如。最初的默认值 requests/minute(吞吐量)= 100。执行 1 小时后,我想将 requests/minute 更改为 6000。

使用 beanshell 脚本更改吞吐量只会更改 jmeter master 上的值,而不会影响 jmeter slave 和总体请求吞吐量。

感谢您的指点和指导。

您可以考虑使用 Beanshell Server,它将启动一个端点,它将在其中侦听命令,因此您可以更改 throughput 属性 值 "on the fly"

  1. 将下一行添加到 user.properties 文件:

    beanshell.server.port=9000
    beanshell.server.file=../extras/startup.bsh
    
  2. 在 JMeter 安装的 "lib" 文件夹中创建一个类似 changeThroughput.bsh 的 Beanshell 文件,内容如下:

    setprop("throughput", args[0]); 
    
  3. 就是这样,现在您应该能够在测试执行期间设置 throughput 属性 值:

    java -jar bshclient.jar localhost 9000 throughput 6000
    

查看 How to Change JMeter´s Load During Runtime 文章了解更多信息。