Jmeter 计时器:恒定、高斯随机、均匀 [示例]

什么是计时器?

默认情况下, JMeter 发送请求 不停歇 每次请求之间。在这种情况下, JMeter 可以 压倒 通过在短时间内发出过多请求来破坏您的测试服务器。

假设你发送 数千 几秒钟内向被测 Web 服务器发送请求。这就是发生的事情!

计时器 JMeter

计时器允许 JMeter 至 延迟 线程发出的每个请求之间。计时器可以解决服务器 超载 问题。

也, 在现实生活中,访问者不会同时到达网站,而是以不同的时间间隔到达。因此,Timer 将有助于模拟实时行为。

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

常数定时器

恒定计时器延迟每个用户请求 多少时间。

Jmeter中的常量计时器

高斯随机定时器

高斯 随机定时器延迟每个用户请求 随机 多少时间。

Jmeter 中的高斯随机计时器

参数

属性 描述
姓名 Descript树中显示的此计时器的名称
偏差(毫秒) A 参数 高斯分布函数
恒定延迟偏移(毫秒) 额外 以毫秒为单位的值

因此总延迟如下图所示:

Jmeter 中的高斯随机计时器

均匀随机定时器

均匀随机计时器将每个用户请求延迟随机的时间。

Jmeter中的均匀随机计时器

参数

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

总延迟是随机值与偏移值的总和。

BeanShell 计时器

- 豆壳 计时器可用于 生成 每个用户请求之间的延迟时间。

BSF 定时器

BSF 定时器可用于在每个用户请求之间生成延迟,方法是使用 BSF 脚本语言。

JSR223 计时器

JSR223 计时器可用于在每个用户请求之间生成延迟,方法是使用 JSR223 脚本语言

如何使用常数定时器

在此示例中,您将使用 常数定时器 设置 固定延迟 在用户向 google.com 发出请求之间。

让我们从一个简单的测试脚本开始

  1. JMeter 创建 一种 用户请求 http://www.google.com 100
  2. 延迟 每个用户请求之间 5000 ms

这里是 路线图 对于这个实际的例子:

在 Jmeter 中使用常量计时器

预处理

We 再利用 教程中的步骤 1 和步骤 2 JMeter 性能测试.

步骤1)添加线程组

上点右键 测试计划 并添加一个新的线程组: 添加-> 主题(用户) ->线程组

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

添加线程组

此设置允许 JMeter 创建信息图 一种 用户请求 http://www.google.com in 100

步骤2)添加 JMeter 分子

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

步骤 3)添加常量定时器

右键单击 线程组 -> 定时器 -> 常数定时器

添加常量定时器

配置线程延迟 5000 毫秒

添加常量定时器

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

以表格形式查看结果以表格形式显示测试结果。

右键点击 添加 -> 倾听者 ->在表格中查看结果

在表中添加查看结果

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

在表中添加查看结果

步骤 5)运行测试

当您准备好运行测试时,单击 运行 菜单栏上的按钮,或快捷键 按Ctrl + R

这是这次测试的结果

运行测试

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

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

因此样本 3 的开始时间应为 22:05:07.039 (如上图)

- 延迟 每个样本 5000 ms

如果你改变常数定时器是 ,你会看到结果发生了变化

运行测试

让我们分析一下 示例1

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

所以 示例2 应该开始的时间是 22:17:39.512 (如上图所示)

故障排除

如果您在运行上述场景时遇到问题……请执行以下操作

  1. 检查您是否通过代理连接到互联网。如果是,请删除代理。
  2. 打开一个新实例 JMeter
  3. 打开 计时器测试计划.jmx 在Jmeter中
  4. Double 点击线程组->在表格中查看结果
  5. 运行测试