本人借鉴别人的文章
在压力测试——梯度加压时,设置总线程数是100,但是聚合报告中线程数远远超出100个。为什么梯度加压会有这种情况呢?大家会有很多的疑惑吧?下面来解说一下
场景:
某网站设置梯度加压场景——总线程数为50.每2s增加5个,在1s内增加完成;然后线程保持30秒;再然后每2s停掉5个线程。
要正确理解最终请求数,需要明白每一秒钟线程释放了多少请求
分析:在梯度加压有三个阶段:梯度加压、持续负载、线程释放。
梯度加压:
如果该请求的平均响应时间是100ms,那么1s钟该请求可以迭代10次;
那么1s内如果启动5个线程,这1s内发出的请求数就是5*10=50次;
接着2s后才开始下一波线程,在这2s内,它发出的请求数是2*5*10=100次;
在2s之后,线程又在1s内释放5个请求,并运行2s,在这2s内,它发出的请求数是2*10*10=200次(此时是10个线程在运行)
以此类推,直到50个线程加载完之前,线程释放的请求数是这样的:(2*5*10)+(2*10*10)+(2*15*10)+(2*20*10)+(2*25*10)+....+(2*45*10)=4500次
持续负载:
(注意:为什么最后不是2*50*10呢?因为从50个线程加载完之后,进行的就是30s的持续负载)这30s内,总的请求数是30*50*10=15000次
线程释放: