循环计数和线程数以及有关线程寿命的查询之间的混淆

时间:2019-01-11 07:16:58

标签: multithreading jmeter delay loop-counter

以下两种情况之间有什么区别,会对性能产生类似的影响吗? 场景2中的请求之间的延迟将是什么?

在方案2中所有线程是否仍然有效?

我知道线程模拟用户的事实,而循环计数意味着线程将发出请求的次数。

方案1:如果线程数为10,则加速时间为10,循环数为1。

方案2:如果线程数为1,加速时间为1,循环数为10。

2 个答案:

答案 0 :(得分:3)

在方案1中,使用10个线程,加速周期为10秒,那么JMeter将花费10秒来启动和运行所有10个线程。每个线程将在上一个线程开始后1(10/10)秒开始。

用户手册中的另一个示例:

  

如果有30个线程,启动周期为120秒,则每个线程   连续线程将延迟4秒。

在场景2中,JMeter将运行1个线程,一个线程完成后,下一个线程将启动,如此10次。

这样的区别。因此,它将对性能产生不同的影响。

选中Thread Group user manual和此JMeter thread groups guide,以获取更多信息。

答案 1 :(得分:1)

JMeter的工作方式为:

  1. 它开始了加速期范围内的线程数
  2. 一旦启动线程开始颠倒执行Samplers(或根据Logic Controllers
  3. 如果定义了任何循环-线程将重新开始
  4. 如果没有要执行的采样器并且没有要循环的循环-线程正在关闭

始终将最终用户观点应用于您的测试计划,因为行为良好的负载测试应该(甚至必须)尽可能地模仿真实用户,否则负载测试就没有多大意义。您需要将每个模拟虚拟用户与真实用户进行1到1映射,并构建测试计划以考虑该真实用户的预期行为,包括

单个用户重复执行同一组操作10次的情况极不可能发生,因此我不认为这是一个良好/有效的测试方案。