JMeter中循环次数和线程数之间迷惑的地方(翻译)
JMeter中循环次数和线程数之间迷惑的地方
人们经常对JMeter循环次数和线程数的用法感到困惑,更重要的是,它如何影响他们的负载测试。你知道答案吗?这是两种情况:
- 方案1:如果线程数为10,则加速时间为10,循环数为1。
- 方案2:如果线程数为1,加速时间为1,循环数为10。
两种情况之间有什么区别,会对性能产生类似的影响吗?场景2中的请求之间的延迟将是多少?在方案2中,所有线程是否仍然有效?
大多数人都知道线程模拟用户这一事实,而循环次数是指线程发出请求的次数。
让我们来看一下差异,在方案1中,使用了10个线程,加速周期为10秒,因此JMeter将花费10秒来启动和运行所有10个线程。每个线程将在前一个线程开始后1秒(10除以10)开始。
这是JMeter线程组用户手册中的另一个示例:
如果有30个线程,启动周期为120秒,则每个连续线程将延迟4秒。
在方案2中,JMeter将运行1个线程,并在完成一个线程之后,将启动下一个线程,依此类推10次。
这里有很大的不同!它将对性能产生不同的影响。
查看此JMeter线程组指南以获取有关JMeter循环次数和JMeter线程计数的更多信息。
让我们搞清楚一些细节。在这两种情况下,将创建10个线程。在方案2中,当新线程启动时,旧线程保持活动状态。不同之处在于,在方案1中,线程可以并行工作,而在方案2中,每个线程在前一个线程停止之后启动。除非您指定线程,否则线程之间没有延迟。
因此,最终在方案2中只有一个1线程保持活动状态,而在方案1中所有线程仍保持活动状态。
原文地址:https://www.redline13.com/blog/2019/05/jmeter-thread-count/
以下非原文
实验一
实验二
总结:如果要评估服务器的极限吞吐值,需要调整适合的测试参数