#Thread: 20, ramp: 10s, Loop Count: 1000
20线程将启动并运行10秒(2线程= 1秒间隔)。那么一旦20个线程完成,下一个循环再次开始20个线程在10秒内启动?下一个循环x1,在10秒内再次打开,关闭下一个循环x2, 20再次在10秒内打开,关闭…..下一个loopx1000,20在10秒内打开。
所以1000个循环,10秒x 1000 = 10,000秒/60 = 167分钟JMeter将完成但是我的节目完成了13分钟。
我猜20个线程,有些提前完成,所以这是否意味着在循环1中可能有7个线程仍在运行,但我们已经进入循环2启动完成的线程?这就是它提前完成的原因吗?
以下内容摘自Apache JMeter官方网站
Ramup-up时期
加速周期告诉JMeter需要多长时间才能"加速"。到所选线程的全部数目。如果使用了10个线程,并且上升周期为100秒,那么JMeter将花费100秒来启动并运行所有10个线程。每个线程将在前一个线程启动后10(100/10)秒启动。如果有30个线程,上升周期为120秒,那么每个连续的线程将延迟4秒。
在具有20个线程和10秒上升周期的场景中
时间 | 线程数 | 0 | 2 | 1
---|---|
4 | |
6 | |
3 | 8 |
10 | |
12 | |
14 | |
16 | |
18 | |
9 | 20 |
不,不,不,不。
Thread: 20, ramp: 10s, Loop Count: 1000意味着:
- JMeter将在10秒内启动20个线程,即每秒2个线程,10秒后所有20个线程将启动并运行
- 一旦启动,每个线程将开始执行颠倒的采样器(或根据逻辑控制器)
- 当没有更多的采样器执行线程开始下一次迭代,它将不会等待其他线程,除非你显式地告诉它使用同步定时器
- 当没有更多的循环迭代线程被关闭
- 当最后一个线程在最后一次迭代中执行最后一个Sampler时,测试结束
总测试持续时间取决于采样器的响应时间,您无法事先精确计算