Jmeter并发测试 - 设置集合点

Posted 青春无限坑!

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Jmeter并发测试 - 设置集合点相关的知识,希望对你有一定的参考价值。

场景:要压1000个用户针对于某个接口并发情况,当然这只是个小量并发,有以下两种方案

1)考虑线程组设置1000,用户思考时间ramp-up设为0

2)考虑添加个集合点,集合达到的线程数设置为1000,超时时间设置为0,这两方案应该怎么选择?

 

先使用第一种方案:线程组里面设置启动时间为0

这里使用10个用户进行演示

Ramp-Up Period 设置0,立马开启发送请求,如果要模拟在一瞬间高并发的时候,很耗测试机器性能,无法支持较大的并发数
如果Ramp-Up Period 设置1,代表1秒钟启动10个线程,0.5秒钟启动5个,也不算真正的同时10个并发

这种情况下,应该设置集合点,达到仿真高并发测试

 

同步定时器-设置集合点(Synchronizing Timer

集合点:让所有请求在不满足条件的时候处于等待状态。

引用虫师的话“红军排长说:等一等!集结了所有战友后,大家再一起冲啊!这样给敌人的压力是最大的。

如:我集合点设置为50,那么不满足50个请求的时候,这些请求都会集合在一起,处于等待状态,当达到50的时候,就一起执行,从而达到并发的效果。

Number  of Simulated Users to Group by(模拟用户组的数量):每集合够多少个用户(线程)后发送请求,确保设置的值不大于它所在线程组包含的用户数(线程数)

>设置为0,等同于设置为线程组中的线程数
>设置为非0,代表达到设置的用户(线程)后,并发执行后续操作

timeout in milliseconds(超时时间以毫秒为单位):Timout的意思是等待请求多久后,不管线程数有没有到达设置的并发数量都开始运行测试。

>设置为0,Timer将等待线程数直到达到了Number  of....设置的值后才执行,不够则一直等待,表示死等
>设置为非0,如果超过了所设置的最大等待时间后,还没有达到Number of..设置的值,Timer将不再等待

 

 

场景一:线程数为10,集合点设置中都设置了0

10个用户分为一组启动,启动时间基本上同时

 

场景二:线程数为10,集合点设置设置了最大的线程数,超时时间为0

10个用户分为一组启动,启动时间基本上同时

场景三:线程数为10,集合点设置5,超时时间为3000

可以看到有10个结果,此处分成了2组进行并发,每次是5个用户。

 

场景四:线程数为10,集合点设置11,超时时间为0

发现没有执行请求,需要手动stop。原因:不够并发数且超时为0

场景五:线程数为10,集合点设置6,超时时间为0

发现只有6个请求,然后一直都没有停止,需要手动stop。

原因:第一组够集合点,一起并发,第二组只有4个,不够集合点。然后等待时间设置了0,表示死等,就会导致一直停止不了,要手动stop

场景六:线程数为10,集合点设置为6,超时为5000(5秒),点击运行。

分2组,发现先有6个请求,为第一组,5秒后,出现后4个请求,为第二组,共4个

结论:

集合点,设置为0,等同于设置为线程组中的线程数
集合点,设置为非0,代表达到设置的用户(线程)后,并发执行后续操作

等待时间,设置为0,等待线程数直到达到了Number  of....设置的值后才执行,不够则一直等待,表示死等
等待时间,设置为非0,如果超过了所设置的最大等待时间后,还没有达到Number of..设置的值,Timer将不再等

 

以上是关于Jmeter并发测试 - 设置集合点的主要内容,如果未能解决你的问题,请参考以下文章

Jmeter并发测试 - 设置集合点

Jmeter并发测试 - 设置集合点

Jmeter设置集合点(并发测试)

JMeter 定时器(Synchronizing Timer)之集合点应用

Jmeter之仿真高并发测试(集合点)

JMeter集合点