Jeter计时器:常量、高斯随机、均匀[示例]

什么是计时器

默认情况下,JMeter发送求时不会在每个求之间暂停。在这种情况下,JMeter可能会在短时间内发出太多求,从而使测试服务器不堪重负。 假设在几秒钟内向正在测试Web服务器发送了数千个求。事情就是这样发生的!

How to use Timers in Jmeter
How to use Timers in Jmeter

定时器允许JMeter在线程发出的每个求之间延迟。定时器可以解决服务器过载问题。此外,在现实生活中,访问者并不是在同一时间到达一个网站,而是在不同的时间间隔到达。因此,定时器将有助于模拟实时行为。

在本教程中,将了解

  • 恒定定时器
  • 高斯随机定时器
  • 均匀随机定时器
  • BeanShell计时器
  • BSF定时器
  • JSR223定时器
  • 如何使用定时器

以下是JMeter中一些常见的计时器类型

恒定计时器:

恒定计时器会将每个用户求延迟相同的时间。

How to use Timers in Jmeter
How to use Timers in Jmeter

高斯随机计时器:

高斯随机计时器将每个用户求延迟随机时间量。

How to use Timers in Jmeter
How to use Timers in Jmeter

参数:

属性 描述
名字 树中显示的此计时器的描述性名称
偏差(毫秒) 高斯分布函数的一个参数
恒定延迟偏移量(毫秒) 以毫秒为单位的附加值

因此总时延如下图所示:

How to use Timers in Jmeter
How to use Timers in Jmeter

统一随机计时器:

统一随机计时器会将每个用户求延迟一段随机时间。

How to use Timers in Jmeter
How to use Timers in Jmeter

参数:

属性 描述
名字 树中显示的此计时器的描述性名称
随机延迟最大值 延迟的最大随机毫秒数。
恒定延迟偏移量(毫秒) 以毫秒为单位的附加值

总延迟是随机值和偏移值之和。

BeanShell计时器

BeanShell计时器可用于在每个用户求之间生成延迟时间。

BSF定时器

BSF定时器可用于使用BSF脚本语言在每个用户求之间产生延迟。

JSR223定时器

JSR223定时器可用于使用JSR223脚本语言在每个用户求之间产生延迟

如何使用定时器

在本例中,将使用常量计时器来设置用户对baidu.com的求之间的固定延迟。 让我们从一个简单的测试脚本开始

  1. JMeter向http://www.baidu.com创建一个用户求100次
  2. 每个用户求之间的延迟为5000毫秒

以下是此实际示例的路线图:

How to use Timers in Jmeter
How to use Timers in Jmeter

前提条件:

我们重用了教程JMeter性能测试中的步骤1和步骤2。

步骤1) 添加线程组

右键单击“测试计划”并添加一个新的线程组:“添加”->“线程(用户)”->“线程组”

在线程组控制面板中,按如下方式输入线程属性

How to use Timers in Jmeter
How to use Timers in Jmeter

此设置允许JMeter在100次中创建一个对http://www.baidu.com的用户求

步骤2) 添加JMeter元素

  • 添加HTTP求默认值
  • 添加HTTP求

步骤3) 添加常量定时器

右键单击线程组->计时器->恒定计时器

How to use Timers in Jmeter
How to use Timers in Jmeter

配置5000毫秒的线程延迟

How to use Timers in Jmeter
How to use Timers in Jmeter

步骤4) 在表中添加查看结果

查看表格中的结果以表格格式显示测试结果。 右键单击[Add]->[Listener]->[在表中查看结果

How to use Timers in Jmeter
How to use Timers in Jmeter

查看表格中的结果如下图所示

How to use Timers in Jmeter
How to use Timers in Jmeter

步骤5) 运行测试

准备好运行测试时,单击菜单栏上的运行按钮或快捷键Ctrl+R 。这就是这次测试的结果

How to use Timers in Jmeter
How to use Timers in Jmeter

例如,在上图中,让我们分析一下示例2

  • 开始时间是22:05:01.866
  • 样本2的采样时间为172ms
  • 恒定计时器:5000毫秒(按配置)
  • 本样本结束时间为=22:05:01.866+172+5000=22:05:07.038

所以示例3应该在22:05:07.039开始(如上图所示) 每个样本的延迟为5000ms 如果将常量计时器更改为零,将看到结果已更改

How to use Timers in Jmeter
How to use Timers in Jmeter

让我们分析一下样品1

  • 开始时间是22:17:39.141
  • 样本2的采样时间为370ms
  • 恒定计时器:0毫秒(按配置)
  • 本样本结束时间为=22:17:39.141+370+0=22:17:39.511

所以示例2应该在22:17:39.512开始(如上图所示)

故障排除:

如果在运行上述方案时遇到此问题.执行以下操作

  1. 检查是否通过代理连接到Internet。如果是,删除代理。
  2. 打开一个新的JMeter实例
  3. 在Jeter中打开TimerTestPlan.jmx
  4. 双击线程组->在表中查看结果
  5. 运行测试

IT赶路人

专注IT知识分享