1.集合点介绍
LR中集合点可以设置多个虚拟用户等待到一个点,同时触发一个事务,以达到模拟真实环境下多个用户同时操作,实现性能测试的最终目的。
jmeter中使用Synchronizing Timer实现Lr中集合点的功能,模拟多用户并发测试,即多个线程在同一时刻并发请求。
jmeter中使用集合点的方法:Synchronizing Timer。
2.集合点参数介绍
- 启动方法
- 参数介绍
模拟用户组的数量(Number of Simulated Users to Group by):集合多少人后再执行请求(也就是执行的线程数)
注意:等同于设置为线程租中的线程数,一定要确保设置的值不大于它所在线程组包含的用户数。
超时时间以毫秒为单位(Timeout in milliseconds):指定人数 多少秒没集合到算超时(设置延迟时间以毫秒为单位)
注意:如果设置Timeout in milliseconds为0,表示无超时时间,会一直等下去。
线程数量无法达到"Number of Simultaneous Users to Group by"中设置的值,那么Test将无限等待,除非手动终止。
3.场景介绍
下面以三个sampler为列
3.1 场景一:设置定时器与不设置定时器区别
- 线程数设置为10,集合点为10,超时为1000,点击运行
- 关闭定时器,发送前期都是零零散散的
3.2 定时器位置是否影响结果
定时器移动到sampler1,结果与3.1一样,如下图所示,所以,不管移动到什么位置,发现只要在该线程组下,都是作用于该线程组下所有请求线程
3.3 移动到子节点下面是什么情况呢,从下面的数据发现是作用于该父类节点的sampler
定时器仅仅对sampler1起作用,即仅在sampler1执行前执行定时器,和sampler2及sampler3无关
注意点:
-----集合点的位置一定要在Sample(采样器)之前才能生效吗???”
在Jmeter中,timer是在sampler之前执行的。不管这个定时器的位置放在sampler之后,还是之前。当然,如果有多个timer的时候,在相同作用域下,会按上下顺序执行timer,这个就需要慎重放置timer的顺序;不过,为了更好的可读性,还是建议将timer放在对应的sampler前面 或 子节点中