Jmeter之集合点(Synchronizing timer 同步定时器)

时间:2023-03-08 16:06:54
Jmeter之集合点(Synchronizing timer 同步定时器)

1.集合点介绍

LR中集合点可以设置多个虚拟用户等待到一个点,同时触发一个事务,以达到模拟真实环境下多个用户同时操作,实现性能测试的最终目的。
jmeter中使用Synchronizing Timer实现Lr中集合点的功能,模拟多用户并发测试,即多个线程在同一时刻并发请求。
jmeter中使用集合点的方法:Synchronizing Timer。

2.集合点参数介绍

  • 启动方法

Jmeter之集合点(Synchronizing timer 同步定时器)

  • 参数介绍

Jmeter之集合点(Synchronizing timer 同步定时器)

模拟用户组的数量(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,点击运行

Jmeter之集合点(Synchronizing timer 同步定时器)

  • 关闭定时器,发送前期都是零零散散的

Jmeter之集合点(Synchronizing timer 同步定时器)

3.2 定时器位置是否影响结果

定时器移动到sampler1,结果与3.1一样,如下图所示,所以,不管移动到什么位置,发现只要在该线程组下,都是作用于该线程组下所有请求线程

Jmeter之集合点(Synchronizing timer 同步定时器)

3.3 移动到子节点下面是什么情况呢,从下面的数据发现是作用于该父类节点的sampler

定时器仅仅对sampler1起作用,即仅在sampler1执行前执行定时器,和sampler2及sampler3无关

Jmeter之集合点(Synchronizing timer 同步定时器)

注意点:

-----集合点的位置一定要在Sample(采样器)之前才能生效吗???”
   在Jmeter中,timer是在sampler之前执行的。不管这个定时器的位置放在sampler之后,还是之前。当然,如果有多个timer的时候,在相同作用域下,会按上下顺序执行timer,这个就需要慎重放置timer的顺序;不过,为了更好的可读性,还是建议将timer放在对应的sampler前面 或 子节点中