【问题标题】:jmeter threads and rampup understandingjmeter 线程和加速理解
【发布时间】:2016-05-27 03:03:16
【问题描述】:

我刚刚开始使用 Jmeter 进行性能/负载测试,尽管阅读了官方文档,但仍有一个基本问题。如果有人验证我对线程和加速时间的理解会很有帮助。

示例 1:

Threads: 4
RampupTime: 0.1
No of requests (test cases): 1000

上面的线程分布是怎么发生的?

示例 2:

Threads: 4
RampupTime: 1
No of requests (test cases): 1000

上面的线程分布是怎么发生的?

在这种情况下,我的理解是 Jmeter 需要 1 秒来启动 4 个线程。并且碰巧在一秒钟后运行的测试(假设从测试用例 10 开始)4 个并发线程将遇到 4 个不同的测试? (即在 4 个并发批次中)这是正确的吗?

请帮忙。我对上述 3 个参数之间的相关性有点困惑。任何插图将不胜感激。谢谢。

【问题讨论】:

标签: jmeter performance-testing


【解决方案1】:

所以对于第一个问题,没有任何小于 1 的加速时间。

为什么?

因为 rampupTime 是 int 任何小于 1 的都被认为是 0。

http://svn.apache.org/viewvc/jmeter/branches/doc-v2_3_1/src/core/org/apache/jmeter/threads/ThreadGroup.java?revision=1196285&view=markup#l227

  public void setRampUp(int rampUp) {
                    setProperty(new IntegerProperty(RAMP_TIME, rampUp));
                }

对于第二个问题,每 250 毫秒产生一个线程,一秒钟后您将运行 4 个线程。

http://svn.apache.org/viewvc/jmeter/branches/doc-v2_3_1/src/core/org/apache/jmeter/engine/StandardJMeterEngine.java?revision=1196285&view=markup#l399

int rampUp = group.getRampUp();
                            float perThreadDelay = ((float) (rampUp * 1000) / (float) numThreads);

回到您对并发批处理的理解。不,不是这样,每个线程都将独立运行,例如,如果由于某种未知原因其中一个线程挂起,其他三个线程仍将运行。并不是他们会等待第一个线程完成来启动第二批请求。

【讨论】:

  • 太棒了。感谢您的解释。我是否正确地说,在我的第二个示例中,1 秒后 Jmeter 将确保始终有 4 个活动线程划分和征服测试用例。
  • 是的,将有 4 个活动线程通过一系列测试并行运行
猜你喜欢
  • 2013-06-21
  • 2018-05-13
  • 1970-01-01
  • 1970-01-01
  • 2021-06-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多