1、在性能测试工具:loadrunner和jmeter都有集合点的设置,locust当然也有集合点的设置
2、什么是集合点:
比如想完全并发1000个用户提交订单的 *** 作,如果不设置集合点的情况下,前面500个用户可能先登录成功后就去提交订单了,而后面的500个用户还在登录中,这样就没法完全达到1000个用户同时去提交订单
设置集合点后,前面500个登录完成后不进行提交订单 *** 作,直接等待到1000个用户都登录成功后,1000个人同时去提交订单 *** 作
运行设置20个用户并发
查看输出日志:
可看出20个用户全部都登录完成后才开始执行任务
另:在一般性能测试中需不需要设置集合点呢:
如果是对一些业务场景进行压力测试、稳定性测试时,可以不必设置集合点。如果想验证单独某一个接口对大并发的处理能力时,设置集合点就很有必要了。
jmeter 中使用同步定时器 Synchronizing Timer实现 LoadRunner 中集合点的功能。
模拟多用户并发测试,即多个线程在同一时刻并发请求。
在未使用同步定时器 Synchronizing Timer时
添加-线程组。
添加-取样器-http请求
添加-监听器-用表格查看结果。
将设置线程数为5,可以看出发出的5个请求并未在同一时间开始。
通过使用同步定时器 Synchronizing Timer,可以帮助我们实现并发请求。
添加-定时器-Synchronizing Timer
同步定时器页面参数配置说明:
模拟用户组的数量(Number of Simulated Users to Group by) :就是并发数,集合多少请求后一起发出去。
超时时间以毫秒为单位(Timeout in milliseconds) :指定人数多少秒没集合到算超时,默认为0,会一直等。如果设置1000毫秒的,在1000毫秒内没有凑齐并发数,就会发出去。
可以看到有3个请求是同时发出去的(不会绝对,只会更接近3个),剩下的两个请求没有等到3个,在超过设置的1000ms后同时发出。
第一个选项:当所有 Vuser 中的 X% 到达集合点时释放 Vuser(注意,一般不选择第一个策略,如果选择此选项,场景将不按计划运行)第二个选项:仅当场景中正在运行的指定百分比用户到达集合点后才释放 Vuser。
第三个选项:场景中正在运行的用户的50%到达集合点后,才释放 Vuser,并继续执行场景。
最后一个选项指:在“Vuser 之间的超时值”框中输入一个超时值。每个 Vuser 到达集合点之后,LoadRunner 都会等待下一个 Vuser 到达,等待的最长时间为您设置的超时间隔。如果下一个 Vuser 在超时间隔内还没到达,Controller 就会从集合中释放所有的 Vuser。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)