JMeter 组件详解-Timers 定时器
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个注入器的线程组的用户数高的值。