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并发测试 - 设置集合点的主要内容,如果未能解决你的问题,请参考以下文章