JMeter 定时器:恒定、高斯、均匀随机

⚡ 智能摘要

JMeter 定时器在请求之间引入可控延迟,使线程像真实用户一样暂停,防止服务器过载,并在常量、高斯、均匀和基于脚本的类型中重现真实的思考时间。

  • ⏸️ 恒定定时器: 每次请求都增加相同的固定延迟。
  • 🔔 高斯随机定时器: 延迟时间呈正态分布曲线。
  • 📏 均匀随机定时器: 在设定的范围内随机延迟。
  • 📝 编写定时器脚本: BeanShell、BSF 和 JSR223 添加了自定义延迟。
  • 🤖 人工智能协助: 人工智能模型根据真实交通数据推断时间。

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 in JMeter
  4. Double 点击线程组->在表格中查看结果
  5. 运行测试

常见问题

思考时间是指用户在执行操作之间所进行的停顿,由以下方式再现: JMeter 计时器。

定时器应用于其作用域内的每个采样器;在线程组级别,它会延迟该线程组内的所有请求。

恒定定时器添加固定延迟;均匀随机定时器添加一定范围内的随机延迟。

是的。人工智能会分析流量日志,并推荐与真实用户节奏相匹配的思考时间分布。 JMeter.

AI 可以学习使用模式,生成真实的负载节奏,并标记异常情况,从而使负载测试更具预测性。

总结一下这篇文章: