我对JMeter有问题,无法解决。
我在一个线程组中有3个请求。每个请求需要在5分钟内执行5000次,这意味着我需要在5分钟内总共执行15,000个请求。
线程组的设置如下:
Number of threads (users): 50
Ramp-up period: 1
Loop count: forever
Duration (seconds): 300
每个请求都有一个恒定吞吐量计时器:
Target throughput: 1000.0
Calculate Throughput based on: all active threads in current thread group
测试运行完成后的结果大约是2000-3000个请求,这太低了。我不知道哪些设置有误。
在具有Intel Xeon E5-2673 @ 2.3 GHz,16核和32gb RAM的Azure虚拟机上,以非GUI模式运行测试,并且该服务器具有更多的能力来执行更多请求,因为响应时间约为1秒,因此硬件应该不会造成问题。 JMeter堆内存设置为12 GB。
感谢您的帮助!
答案 0 :(得分:0)
我在一个线程组中有3个请求。每个请求需要在5分钟内执行5000次,这意味着我需要在5分钟内总共执行15,000个请求。
这意味着您必须在5分钟内执行线程组5000次=> 300秒。如果您长时间执行线程组,将自动生成15,000个请求。
来自Documentation:-
循环计数执行测试用例的次数。另外,可以选择“永远”,直到测试运行到手动停止为止。
为此设置loop count: forever
或loop count
中的任何值时,这意味着您想要下一组用户(线程)[您现在定义为50],仅当您已经完成了第一组50个用户的请求(每个线程组有150个请求,每个3个请求)。现在,这50个用户的请求可能会花费意外的时间,只有这50个用户完成后,下一组请求才会返回
因此,要解决当前的问题,您应该对线程组进行以下配置:
Number of threads (users): 5000
Ramp-up period: 300
Loop count: 1
因此,这意味着大约每秒17个线程将被加载。
答案 1 :(得分:0)
要获得所需的值,请配置以下
Number of threads (users): 50 / 60
Ramp-up period: 30
Loop count: forever
Duration (seconds): 300
优良作法是增加加速时间。 恒定吞吐量计时器也可以在分钟级别上工作,并且您所需的吞吐量应该是
Target throughput (in minutes): 3000.0
Calculate Throughput based on: all active threads in current thread group
因此,现在,JMeter将在1分钟内尝试发送3000个请求,而在5分钟内,请求计数将在15000左右或多或少。
答案 2 :(得分:0)
以下是应对此类测试的一些建议:
最终线程组和吞吐量整形计时器的组合将使您可以对请求和要实现的RPS进行精细控制。
如下设置Ulitmate线程组和吞吐量整形计时器。
将所有请求放在吞吐量整形计时器下面,您应该能够达到预期的负载。
答案 3 :(得分:0)