JMeter 组件详解-Timers 定时器

Metadata

title: JMeter 组件详解-Timers 定时器
date: 2022-12-13 13:20
tags: 
  - 行动阶段/完成
  - 主题场景/工具
  - 笔记空间/KnowladgeSpace/ToolSpace
  - 细化主题/JMeter
  - 细化主题/组件
  - 细化主题/定时器
categories:
  - JMeter
keywords:
  - JMeter
  - 组件
  - 定时器
description: 通过设置属性计时器,可以对随机计时器计算的睡眠延迟应用乘数。

Timer | 定时器

通过设置属性计时器,可以对随机计时器计算的睡眠延迟应用乘数。Factor =float number,其中float number为十进制正数。

JMeter将这个因子乘以计算出来的睡眠延迟。此功能可由:

注意,计时器在它们被发现的范围内的每个采样器之前被处理;如果在同一个作用域中有多个计时器,那么所有的计时器都会在每个采样器之前被处理。

定时器只能与采样器一起处理。与采样器不在同一范围内的计时器根本不会被处理。

若要将计时器应用于单个采样器,请将计时器添加为采样器的子元素。计时器将在采样器执行之前应用。要在采样器之后应用计时器,可以将它添加到下一个采样器,或者将它添加为流量控制动作采样器的子程序。

Constant Timer | 固定定时器

如果您想让每个线程在请求之间暂停相同的时间,可以使用这个计时器。

界面

Gaussian Random Timer | 高斯随机定时器

这个计时器将每个线程请求暂停一段随机的时间,大多数时间间隔发生在某个特定值附近。总延迟是高斯分布值(平均值为0.0,标准差为1.0)乘以指定的偏差值和偏移值的总和。另一种解释方法是,在高斯随机计时器中,恒定偏移量附近的变化具有高斯曲线分布。

界面

参数说明

Attribute Description Required
Name 树中显示的此计时器的描述性名称 No
Deviation 偏差,以毫秒为单位 Yes
Constant Delay Offset 除了随机延迟外,暂停的毫秒数。 Yes

Uniform Random Timer | 统一随机定时器

这个计时器将每个线程请求暂停一段随机的时间,每个时间间隔发生的概率相同。总延迟是随机值和偏移值的总和。

界面

参数说明

Attribute Description Required
Name 树中显示的此计时器的描述性名称 No
Random Delay Maximun 暂停的最大随机毫秒数。 Yes
Constant Delay Offset 除了随机延迟外,暂停的毫秒数。 Yes

Constant Throughput Timer | 常量吞吐计时器

这个计时器引入了可变的暂停,计算的目的是保持总吞吐量(以每分钟的样本为单位)尽可能接近给定的数字。当然,如果服务器不能处理它,或者其他计时器或耗时的测试元素阻止它,那么吞吐量将会更低。

注意:虽然Timer被称为常量吞吐量计时器,但吞吐量值不需要是常量。它可以根据变量或函数调用来定义,并且可以在测试期间更改值。可以通过多种方式改变该值:

  • 使用计数器变量
  • 使用__jexl3__groovy函数提供一个更改值
  • 使用远程BeanShell服务器来更改JMeter属性

注意,在测试期间不应该太频繁地更改吞吐量值—新值需要一段时间才能生效。

界面

Synchronizing Timer | 同步定时器

SyncTimer的目的是阻塞线程,直到X个线程被阻塞,然后它们一次被释放。因此,SyncTimer可以在测试计划的各个点上创建大的即时负载。

界面

Attribute Description Required
Name 树中显示的此计时器的描述性名称。 No
Number of Simultaneous Users to Group by 一次释放的线程数。将其设置为0相当于将其设置为Thread Group中的线程数。 Yes
Timeout in milliseconds 如果设置为0,Timer将等待线程的数量达到“number of Simultaneous Users to Group”中的值。如果高于0,则计时器将在最大“Timeout in毫秒”等待线程数。如果超时时间未达到等待用户数量,则停止等待。默认值为0 No

如果timeout(以毫秒为单位)设置为0,并且线程数永远不会达到“number of Simultaneous Users to Group by”,那么Test将无限暂停。只有强行阻止才能阻止它。在这种情况下,可以考虑将Timeout设置为毫秒。

只在一个JVM中同步计时器块,因此如果使用分布式测试,请确保不要将“Number of Simultaneous Users to Group by”设置为比只考虑1个注入器的线程组的用户数高的值。