JMeter中的循环计数和逐渐增加时间

4
我已经创建了一个测试集,但是在循环计数和逐渐增加时感到困惑。 我有一个具有以下参数的测试集。
Threads        =  30
Ramp Up Period =  30
Loop Count     =  100

根据quora页面。
我猜测: 在此输入图片描述
a) If Loop count is Zero, then each of the 30 threads will be starting every second. As per the shared the web page, I guess 30/30 * 100 ie 100 threads/requests will be hitting the server every second. Please correct me if I am wrong.  

b) As per the above parameters, there will be a total of 30 * 100 threads/requests. Does this mean all the 3000 threads/requests will be sent within 30 seconds [ Ramp Up period ]
2个回答

8

假设您有30个用户和30秒的ramp-up时间

  1. JMeter将每秒启动一个虚拟用户
  2. 每个虚拟用户将从头到尾(或根据逻辑控制器执行)开始执行样本器,尽可能快地(如果您不使用定时器),因此交付的负载可以是大于或小于30个请求/秒,这取决于JMeter执行请求的速度以及您的应用程序响应时间,因为JMeter将在开始新的样本器之前等待先前样本器的响应
  3. 当虚拟用户完成执行测试计划中定义的所有样本器后,它将重新开始并进行99次迭代的第2点
  4. 当虚拟用户没有更多的样本器要执行和循环要迭代时,它将关闭

一些提示:

  • 您可以使用服务器每秒点击量监听器来查看您的测试计划配置下实际进行的每秒请求数
  • 您可以通过恒定吞吐量计时器控制每秒请求数量
  • 考虑升级到JMeter 3.2,因为较新的JMeter版本通常包含新功能、性能改进和错误修复。

1
根据JMeter手册,ramp up是指:

JMeter启动所有线程所需的时间。 如果有10个线程和100秒的ramp up时间,则每个线程将在前一个线程开始后10秒开始, 总共需要100秒的时间才能完全达到测试速度。

因此,如果你的目标是在30秒内达到3000个请求,上述方法可能不够,具体取决于发送的请求完成所需的时间。

如果你想要吞吐量,可以添加聚合报告监听器来计算吞吐量, 并根据结果配置线程属性以达到你的目标。

参考资料: JMeter用户手册


这是否意味着在第一秒将会启动100个线程/请求?第二个循环是否等待第一组100个线程完全发送? - Roshan r
这并不意味着在30秒后所有线程都已启动,但它不会影响迭代,因此第一个线程可能在第10个线程启动之前开始并进入下一个迭代。换句话说,第一个线程将在1秒后开始(根据您的配置),然后启动第二个线程,再过一秒启动第三个线程,依此类推,但每个线程将独立于其他线程继续运行。 - ararar
我很困惑,循环计数是迭代正确的吗?为了澄清我的困惑,一个线程将启动并进行100次迭代(可能在第二个线程之前完成),第二个线程开始,依此类推?? - kapperkp
是的,循环计数是每个线程的迭代次数,不确定您在第二部分中询问的是什么。 - ararar

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接