一、误区:
开始前咱们先说说误区吧,如下图所示经常有人以为图中这样就是1秒20次的请求,其实不然,下面我们具体分析下。
1.我们就如图设置跑起来看下每个线程的时间:(由于排版问题,我就挑选几个典型的时间大家看下)
从上图可以看出,20个线程跑完其实是跨越了21:15:31–21:15:32这个时间段,说明了线程是在1s内完成的,也就是说one by one的进行的,那么这就不是严格意义上的大并发了。
二、解决办法:
误区说完了,那么我们来讲讲怎么实现大并发呢,这里可以通过同步计时器完成,具体方法如图。
添加完同步计时器后,我们再来试试这次的结果是不是20个并发再同一时间段发生。
经过查看,20个并发均是同一个时间点,为了排除偶然性,我这里增加到更多并发试试。
如图,50个并发也是在同一个时间点发生的,所以,这才是真正的大并发。
三、附加
说到这里大家应该懂了,那么这里再解释下线程组和Ramp-up时间的关系。
最理想的设置:大并发数量*Ramp-up时间=线程数。
四、实际运用中遇到的问题
- 持续压测xx分钟怎么设置:
—按照上文描述的,我们直接设置循环多次可以吗?我之前也觉得可以,但是我发现一旦循环次数不是1之后,我们的大并发直接就失效了,所以,持续时间可以通过Ramp-up时间控制,即公式更新下:大并发数量*Ramp-up时间(持续压测时间)=总线程数。
五、样例分享
压测2分钟,大并发设置10,如图
测试结果: