当前位置: 首页 > 工具软件 > ThinkUp > 使用案例 >

Ramp-Up Period 与 Think time

淳于升
2023-12-01

Ramp-Up Period是指线程的创建时间,如果有100个线程、Ramp-Up Period=1s,那就表示100个线程在1s时间内创建起来,也就是说每隔0.01s会增加一个线程,直到100个线程全部建立,之后所有的线程就分别独立地向系统发送请求了,它们之间互不影响。

Think time是指对于单一的一个线程来讲,每隔多长时间向系统发送一次请求,如果设Think time=2s,那就表示线程在第1s向系统发送一次请求,第2s什么都不做,第3s又向系统发送请求,依次类推。

当Ramp-up Period与Think time两个参数都设置时,Jmeter的多个线程之间又是如何向系统发送请求的呢?

当Ramp-up Period < Think time时

我们还是假设有100个线程,Ramp-up Period = 1s,每个线程都是定时向系统发送同样的http请求,Think time=2s。由于每2个线程之间的时间间隔为0.01s,所以Jmeter实际上是100个线程每隔0.01s发送一次请求,

在第1s内共向系统发送了100个请求,第2s内所有线程等待,第3sJmeter又向系统发送了100个请求,第4s等待……依次执行下去。

当Ramp-up Period = Think time时

假设有100个线程,Ramp-up Period =1s && Think time = 1s。那么Jmeter是每隔0.01s向系统发送一次请求,在第1s内有100个线程向系统发送了请求,第2s也有100个线程向系统发送了请求,第3s同样是100个线程向系统发送请求……如此看来,当Ramp-up Period = Think time = 1s时,Jmeter是以固定的频率向系统发送请求的,任意两次请求之间的时间间隔都是0.01s。

当Ramp-up Period > Think time时

假设有100个线程,Ramp-up Period = 2s, Think time = 1s。那么Jmeter是每隔0.02s向系统发送一次请求,在第1s内有50个线程向系统发送了请求,在第2s剩余的50个线程也逐渐创建起来了,每隔0.02s Jmeter向系统发送2个请求,在第3s以及之后的时间内,都是每隔0.02s Jmeter向系统发送2个请求。注意:这里的“每隔0.02s 发送2个请求”与“每隔0.01s发送1个请求”是两个不同的概念,前者表示每隔一定时间有两个线程“同时”向系统发送了请求,也就是“瞬时并发”,而后者中任意两个相邻线程之间的时间间隔都是0.01s,不存在“瞬时并发”的场景。

还有一种特殊情况,当Ramp-up Period > Think time且Ramp-up Period不是Think time的整数倍时,不同时间段内Jmeter发送的请求数是不同的。例如90个并发线程,Ramp-up Period = 3s && Think time =2s,那么Jmeter在第1s内发送了30个请求,第2s内发送30个请求,第3s内发送60个请求,第4s发送30个请求,第5s发送60个请求,也就是从第3s开始,奇数秒内发送60个请求,偶数秒内发送30个请求。

 类似资料: