概述
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个请求。
最后
以上就是老迟到心情为你收集整理的Ramp-Up Period 与 Think time的全部内容,希望文章能够帮你解决Ramp-Up Period 与 Think time所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复