jmeter线程和加速理解

时间:2016-05-27 03:03:16

标签: jmeter performance-testing

我刚刚开始使用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个参数之间的相关性有点困惑。任何插图将不胜感激。感谢。

1 个答案:

答案 0 :(得分:3)

因此,对于第一个问题,不会有任何小于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);

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