Jmeter中的定时器(一)
定时器
1--固定定时器
功能特点
- 固定延迟:在每个请求之间添加固定的延迟时间。
- 精确控制:可以精确控制请求的发送频率。
- 简单易用:配置简单,易于理解和使用。
配置步骤
-
添加固定定时器
- 右键点击需要添加定时器的请求或线程组。
- 选择“添加” -> “定时器” -> “固定定时器”(Constant Timer)。
-
配置固定定时器
- 名称:给固定定时器一个有意义的名称。
- 线程延迟(毫秒):设置每个请求之间的固定延迟时间(单位为毫秒)。
示例配置
假设我们需要测试一个Web应用,并在每个请求之间添加2秒(2000毫秒)的固定延迟。
-
创建测试计划:
- 右键点击“测试计划” -> 新建 -> 输入测试计划名称(例如“Web应用性能测试”)。
-
添加线程组:
- 右键点击测试计划 -> 添加 -> 线程组 -> 输入线程组名称(例如“用户模拟”)。
-
添加HTTP请求:
- 右键点击线程组 -> 添加 -> 取样器 -> HTTP请求。
- 配置HTTP请求:
- 名称:请求名称(例如“获取用户列表”)。
- 服务器名称或IP:目标服务器的地址(例如
example.com
)。 - 端口号:目标服务器的端口(例如
80
)。 - 协议:HTTP或HTTPS(例如
HTTP
)。 - 方法:请求的方法(例如
GET
)。 - 路径:请求的路径(例如
/api/users
)。
-
添加固定定时器:
- 右键点击HTTP请求 -> 添加 -> 定时器 -> 固定定时器。
- 配置固定定时器:
- 名称:固定定时器
- 线程延迟(毫秒):2000(表示每个请求之间延迟2秒)
-
运行测试:
- 点击工具栏上的“启动”按钮,运行测试。
优化建议
-
延迟时间:
- 根据实际需求设置合适的延迟时间。过短的延迟可能导致服务器过载,过长的延迟可能无法充分测试系统的性能。
-
放置位置:
- 固定定时器可以放在线程组级别或特定请求级别。放在线程组级别会影响该线程组中的所有请求,放在特定请求级别只影响该请求。
-
多请求场景:
- 如果有多个请求需要添加固定延迟,可以为每个请求单独添加固定定时器,或者将多个请求放在一个线程组中,然后在该线程组中添加固定定时器。
-
性能影响:
- 固定定时器不会显著影响测试性能,但在大规模性能测试中,仍需注意总体的测试设计,确保延迟时间合理。
-
组合使用:
- 固定定时器可以与其他定时器(如高斯随机定时器、统一随机定时器等)组合使用,以实现更复杂的延迟策略。
示例配置详细说明
假设我们有一个简单的测试计划,包含一个线程组和一个HTTP请求,并希望在每个请求之间添加2秒的固定延迟。
-
创建测试计划:
- 右键点击“测试计划” -> 新建 -> 输入测试计划名称(例如“Web应用性能测试”)。
-
添加线程组:
- 右键点击测试计划 -> 添加 -> 线程组 -> 输入线程组名称(例如“用户模拟”)。
- 配置线程组:
- 线程数:10(模拟10个用户)
- 循环次数:10(每个用户发送10次请求)
- 启动延迟:0(立即启动)
-
添加HTTP请求:
- 右键点击线程组 -> 添加 -> 取样器 -> HTTP请求。
- 配置HTTP请求:
- 名称:获取用户列表
- 服务器名称或IP:example.com
- 端口号:80
- 协议:HTTP
- 方法:GET
- 路径:/api/users
-
添加固定定时器:
- 右键点击HTTP请求 -> 添加 -> 定时器 -> 固定定时器。
- 配置固定定时器:
- 名称:固定定时器
- 线程延迟(毫秒):2000
-
运行测试:
- 点击工具栏上的“启动”按钮,运行测试。
2--统一随机定时器
功能特点
- 随机延迟:在每个请求之间添加随机的延迟时间。
- 均匀分布:延迟时间在指定的范围内均匀分布。
- 灵活控制:可以精确控制请求的发送频率,同时引入随机性。
配置步骤
-
添加统一随机定时器
- 右键点击需要添加定时器的请求或线程组。
- 选择“添加” -> “定时器” -> “统一随机定时器”(Uniform Random Timer)。
-
配置统一随机定时器
- 名称:给统一随机定时器一个有意义的名称。
- 偏移(毫秒):设置延迟时间的上下限范围。
- 延迟(毫秒):设置基础延迟时间。
参数说明
- 偏移(毫秒):设置随机延迟时间的范围。例如,如果设置为1000毫秒,则延迟时间将在基础延迟时间的基础上随机增加或减少最多1000毫秒。
- 延迟(毫秒):设置基础延迟时间。例如,如果设置为2000毫秒,则每个请求的基础延迟时间为2000毫秒。
示例配置
假设我们需要测试一个Web应用,并在每个请求之间添加2秒(2000毫秒)的基础延迟,同时在±1秒(1000毫秒)的范围内随机波动。
-
创建测试计划:
- 右键点击“测试计划” -> 新建 -> 输入测试计划名称(例如“Web应用性能测试”)。
-
添加线程组:
- 右键点击测试计划 -> 添加 -> 线程组 -> 输入线程组名称(例如“用户模拟”)。
-
添加HTTP请求:
- 右键点击线程组 -> 添加 -> 取样器 -> HTTP请求。
- 配置HTTP请求:
- 名称:请求名称(例如“获取用户列表”)。
- 服务器名称或IP:目标服务器的地址(例如
example.com
)。 - 端口号:目标服务器的端口(例如
80
)。 - 协议:HTTP或HTTPS(例如
HTTP
)。 - 方法:请求的方法(例如
GET
)。 - 路径:请求的路径(例如
/api/users
)。
-
添加统一随机定时器:
- 右键点击HTTP请求 -> 添加 -> 定时器 -> 统一随机定时器。
- 配置统一随机定时器:
- 名称:统一随机定时器
- 偏移(毫秒):1000
- 延迟(毫秒):2000
-
运行测试:
- 点击工具栏上的“启动”按钮,运行测试。
优化建议
-
延迟时间:
- 根据实际需求设置合适的基础延迟时间和偏移时间。过短的延迟可能导致服务器过载,过长的延迟可能无法充分测试系统的性能。
-
放置位置:
- 统一随机定时器可以放在线程组级别或特定请求级别。放在线程组级别会影响该线程组中的所有请求,放在特定请求级别只影响该请求。
-
多请求场景:
- 如果有多个请求需要添加随机延迟,可以为每个请求单独添加统一随机定时器,或者将多个请求放在一个线程组中,然后在该线程组中添加统一随机定时器。
-
性能影响:
- 统一随机定时器不会显著影响测试性能,但在大规模性能测试中,仍需注意总体的测试设计,确保延迟时间合理。
-
组合使用:
- 统一随机定时器可以与其他定时器(如固定定时器、高斯随机定时器等)组合使用,以实现更复杂的延迟策略。
示例配置详细说明
假设我们有一个简单的测试计划,包含一个线程组和一个HTTP请求,并希望在每个请求之间添加2秒的基础延迟,同时在±1秒的范围内随机波动。
-
创建测试计划:
- 右键点击“测试计划” -> 新建 -> 输入测试计划名称(例如“Web应用性能测试”)。
-
添加线程组:
- 右键点击测试计划 -> 添加 -> 线程组 -> 输入线程组名称(例如“用户模拟”)。
- 配置线程组:
- 线程数:10(模拟10个用户)
- 循环次数:10(每个用户发送10次请求)
- 启动延迟:0(立即启动)
-
添加HTTP请求:
- 右键点击线程组 -> 添加 -> 取样器 -> HTTP请求。
- 配置HTTP请求:
- 名称:获取用户列表
- 服务器名称或IP:example.com
- 端口号:80
- 协议:HTTP
- 方法:GET
- 路径:/api/users
-
添加统一随机定时器:
- 右键点击HTTP请求 -> 添加 -> 定时器 -> 统一随机定时器。
- 配置统一随机定时器:
- 名称:统一随机定时器
- 偏移(毫秒):1000
- 延迟(毫秒):2000
-
运行测试:
- 点击工具栏上的“启动”按钮,运行测试。
3--Precise Throughpupt Timer
功能特点
- 精确控制请求速率:确保在指定的时间段内发送指定数量的请求。
- 灵活配置:可以设置每分钟发送的请求数量或每个线程组的吞吐量。
- 适用于高精度测试:特别适合需要精确控制请求频率的性能测试。
配置步骤
-
添加精确吞吐量定时器
- 右键点击需要添加定时器的请求或线程组。
- 选择“添加” -> “定时器” -> “精确吞吐量定时器”(Precise Throughput Timer)。
-
配置精确吞吐量定时器
- 名称:给精确吞吐量定时器一个有意义的名称。
- 吞吐量:设置每分钟发送的请求数量。
- 持续时间(毫秒):(可选)设置定时器的持续时间,超过该时间后定时器将停止工作。
参数说明
- 吞吐量:设置每分钟发送的请求数量。例如,如果设置为60,则每分钟发送60个请求。
- 持续时间(毫秒):设置定时器的持续时间,超过该时间后定时器将停止工作。如果不设置,定时器将一直工作直到测试结束。
示例配置
假设我们需要测试一个Web应用,并确保每分钟发送60个请求。
-
创建测试计划:
- 右键点击“测试计划” -> 新建 -> 输入测试计划名称(例如“Web应用性能测试”)。
-
添加线程组:
- 右键点击测试计划 -> 添加 -> 线程组 -> 输入线程组名称(例如“用户模拟”)。
- 配置线程组:
- 线程数:10(模拟10个用户)
- 循环次数:10(每个用户发送10次请求)
- 启动延迟:0(立即启动)
-
添加HTTP请求:
- 右键点击线程组 -> 添加 -> 取样器 -> HTTP请求。
- 配置HTTP请求:
- 名称:请求名称(例如“获取用户列表”)。
- 服务器名称或IP:目标服务器的地址(例如
example.com
)。 - 端口号:目标服务器的端口(例如
80
)。 - 协议:HTTP或HTTPS(例如
HTTP
)。 - 方法:请求的方法(例如
GET
)。 - 路径:请求的路径(例如
/api/users
)。
-
添加精确吞吐量定时器:
- 右键点击HTTP请求 -> 添加 -> 定时器 -> 精确吞吐量定时器。
- 配置精确吞吐量定时器:
- 名称:精确吞吐量定时器
- 吞吐量:60(每分钟发送60个请求)
- 持续时间(毫秒):(可选)如果不设置,定时器将一直工作直到测试结束
-
运行测试:
- 点击工具栏上的“启动”按钮,运行测试。
优化建议
-
吞吐量设置:
- 根据实际需求设置合适的吞吐量。过高的吞吐量可能导致服务器过载,过低的吞吐量可能无法充分测试系统的性能。
-
持续时间设置:
- 如果需要在特定时间段内控制请求速率,可以设置持续时间。否则,定时器将一直工作直到测试结束。
-
放置位置:
- 精确吞吐量定时器可以放在线程组级别或特定请求级别。放在线程组级别会影响该线程组中的所有请求,放在特定请求级别只影响该请求。
-
多请求场景:
- 如果有多个请求需要控制请求速率,可以为每个请求单独添加精确吞吐量定时器,或者将多个请求放在一个线程组中,然后在该线程组中添加精确吞吐量定时器。
-
性能影响:
- 精确吞吐量定时器可能会对测试性能产生一定影响,特别是在大规模性能测试中。可以通过调整吞吐量和持续时间来优化性能。
-
组合使用:
- 精确吞吐量定时器可以与其他定时器(如固定定时器、统一随机定时器等)组合使用,以实现更复杂的延迟策略。
示例配置详细说明
假设我们有一个简单的测试计划,包含一个线程组和一个HTTP请求,并希望每分钟发送60个请求。
-
创建测试计划:
- 右键点击“测试计划” -> 新建 -> 输入测试计划名称(例如“Web应用性能测试”)。
-
添加线程组:
- 右键点击测试计划 -> 添加 -> 线程组 -> 输入线程组名称(例如“用户模拟”)。
- 配置线程组:
- 线程数:10(模拟10个用户)
- 循环次数:10(每个用户发送10次请求)
- 启动延迟:0(立即启动)
-
添加HTTP请求:
- 右键点击线程组 -> 添加 -> 取样器 -> HTTP请求。
- 配置HTTP请求:
- 名称:获取用户列表
- 服务器名称或IP:example.com
- 端口号:80
- 协议:HTTP
- 方法:GET
- 路径:/api/users
-
添加精确吞吐量定时器:
- 右键点击HTTP请求 -> 添加 -> 定时器 -> 精确吞吐量定时器。
- 配置精确吞吐量定时器:
- 名称:精确吞吐量定时器
- 吞吐量:60(每分钟发送60个请求)
- 持续时间(毫秒):(可选)如果不设置,定时器将一直工作直到测试结束
-
运行测试:
- 点击工具栏上的“启动”按钮,运行测试。
4--Constant Throughpupt Timer
功能特点
- 恒定请求速率:确保在指定的时间段内保持恒定的吞吐量。
- 灵活配置:可以设置每分钟发送的请求数量或每个线程组的吞吐量。
- 适用于稳定负载测试:特别适合需要稳定控制请求频率的性能测试。
配置步骤
-
添加恒定吞吐量定时器
- 右键点击需要添加定时器的请求或线程组。
- 选择“添加” -> “定时器” -> “恒定吞吐量定时器”(Constant Throughput Timer)。
-
配置恒定吞吐量定时器
- 名称:给恒定吞吐量定时器一个有意义的名称。
- 目标吞吐量(每分钟):设置每分钟发送的请求数量。
- 计算所有子采样器:选择是否将定时器应用于当前线程组中的所有子采样器。
参数说明
- 目标吞吐量(每分钟):设置每分钟发送的请求数量。例如,如果设置为60,则每分钟发送60个请求。
- 计算所有子采样器:选择是否将定时器应用于当前线程组中的所有子采样器。如果选择“是”,则定时器将影响整个线程组中的所有请求;如果选择“否”,则定时器仅影响当前请求。
示例配置
假设我们需要测试一个Web应用,并确保每分钟发送60个请求。
-
创建测试计划:
- 右键点击“测试计划” -> 新建 -> 输入测试计划名称(例如“Web应用性能测试”)。
-
添加线程组:
- 右键点击测试计划 -> 添加 -> 线程组 -> 输入线程组名称(例如“用户模拟”)。
- 配置线程组:
- 线程数:10(模拟10个用户)
- 循环次数:10(每个用户发送10次请求)
- 启动延迟:0(立即启动)
-
添加HTTP请求:
- 右键点击线程组 -> 添加 -> 取样器 -> HTTP请求。
- 配置HTTP请求:
- 名称:请求名称(例如“获取用户列表”)。
- 服务器名称或IP:目标服务器的地址(例如
example.com
)。 - 端口号:目标服务器的端口(例如
80
)。 - 协议:HTTP或HTTPS(例如
HTTP
)。 - 方法:请求的方法(例如
GET
)。 - 路径:请求的路径(例如
/api/users
)。
-
添加恒定吞吐量定时器:
- 右键点击线程组 -> 添加 -> 定时器 -> 恒定吞吐量定时器。
- 配置恒定吞吐量定时器:
- 名称:恒定吞吐量定时器
- 目标吞吐量(每分钟):60(每分钟发送60个请求)
- 计算所有子采样器:是(将定时器应用于整个线程组中的所有请求)
-
运行测试:
- 点击工具栏上的“启动”按钮,运行测试。
优化建议
-
吞吐量设置:
- 根据实际需求设置合适的吞吐量。过高的吞吐量可能导致服务器过载,过低的吞吐量可能无法充分测试系统的性能。
-
计算所有子采样器:
- 如果需要控制整个线程组中的所有请求,选择“计算所有子采样器”。否则,选择“否”以仅影响当前请求。
-
放置位置:
- 恒定吞吐量定时器可以放在线程组级别或特定请求级别。放在线程组级别会影响该线程组中的所有请求,放在特定请求级别只影响该请求。
-
多请求场景:
- 如果有多个请求需要控制请求速率,可以为每个请求单独添加恒定吞吐量定时器,或者将多个请求放在一个线程组中,然后在该线程组中添加恒定吞吐量定时器。
-
性能影响:
- 恒定吞吐量定时器可能会对测试性能产生一定影响,特别是在大规模性能测试中。可以通过调整吞吐量来优化性能。
-
组合使用:
- 恒定吞吐量定时器可以与其他定时器(如固定定时器、统一随机定时器等)组合使用,以实现更复杂的延迟策略。
示例配置详细说明
假设我们有一个简单的测试计划,包含一个线程组和一个HTTP请求,并希望每分钟发送60个请求。
-
创建测试计划:
- 右键点击“测试计划” -> 新建 -> 输入测试计划名称(例如“Web应用性能测试”)。
-
添加线程组:
- 右键点击测试计划 -> 添加 -> 线程组 -> 输入线程组名称(例如“用户模拟”)。
- 配置线程组:
- 线程数:10(模拟10个用户)
- 循环次数:10(每个用户发送10次请求)
- 启动延迟:0(立即启动)
-
添加HTTP请求:
- 右键点击线程组 -> 添加 -> 取样器 -> HTTP请求。
- 配置HTTP请求:
- 名称:获取用户列表
- 服务器名称或IP:example.com
- 端口号:80
- 协议:HTTP
- 方法:GET
- 路径:/api/users
-
添加恒定吞吐量定时器:
- 右键点击线程组 -> 添加 -> 定时器 -> 恒定吞吐量定时器。
- 配置恒定吞吐量定时器:
- 名称:恒定吞吐量定时器
- 目标吞吐量(每分钟):60(每分钟发送60个请求)
- 计算所有子采样器:是(将定时器应用于整个线程组中的所有请求)
-
运行测试:
- 点击工具栏上的“启动”按钮,运行测试。