JMeter 教程 - JMeter 逻辑控制器(上)
在 JMeter 中,逻辑控制器(Logic Controllers)用于控制取样器(Sampler)执行的顺序和条件。通过使用逻辑控制器,可以创建复杂的测试场景,模拟不同用户行为和操作流程。本文将介绍常用的逻辑控制器及其基本用法。
一、常用逻辑控制器
- Simple Controller
- Loop Controller
- Once Only Controller
- Interleave Controller
- Random Controller
- Random Order Controller
- Throughput Controller
- Runtime Controller
二、逻辑控制器详解
1. Simple Controller
用途:用于组织和管理测试计划中的取样器和其他逻辑控制器,但不对其执行顺序产生影响。
添加方法:
- 右键点击
Thread Group
或其他控制器,选择Add
>Logic Controller
>Simple Controller
。
示例:
在 Simple Controller
中添加多个 HTTP 请求,可以方便地对这些请求进行分组和管理。
2. Loop Controller
用途:控制其子元素的执行次数,可以在测试计划中多次重复执行某些操作。
添加方法:
- 右键点击
Thread Group
或其他控制器,选择Add
>Logic Controller
>Loop Controller
。
配置参数:
- Loop Count:循环次数。
示例:
将几个 HTTP 请求放在 Loop Controller
中,并设置 Loop Count
为 5,则这些请求将被执行 5 次。
3. Once Only Controller
用途:确保其子元素在测试计划中仅执行一次,通常用于只需初始化一次的操作。
添加方法:
- 右键点击
Thread Group
或其他控制器,选择Add
>Logic Controller
>Once Only Controller
。
示例:
将登录操作放在 Once Only Controller
中,确保每个线程仅执行一次登录请求。
4. Interleave Controller
用途:交替执行其子元素,即每次迭代时只执行一个子元素,并在所有子元素间轮换。
添加方法:
- 右键点击
Thread Group
或其他控制器,选择Add
>Logic Controller
>Interleave Controller
。
示例:
将多个 HTTP 请求放在 Interleave Controller
中,每次迭代时只执行其中一个请求,并在各请求间轮换。
5. Random Controller
用途:随机选择并执行一个子元素,每次迭代时随机选择一个子元素执行。
添加方法:
- 右键点击
Thread Group
或其他控制器,选择Add
>Logic Controller
>Random Controller
。
示例:
将多个 HTTP 请求放在 Random Controller
中,每次迭代时随机执行一个请求。
6. Random Order Controller
用途:随机打乱其子元素的执行顺序,每次迭代时以随机顺序执行所有子元素。
添加方法:
- 右键点击
Thread Group
或其他控制器,选择Add
>Logic Controller
>Random Order Controller
。
示例:
将多个 HTTP 请求放在 Random Order Controller
中,每次迭代时以随机顺序执行这些请求。
7. Throughput Controller
用途:控制其子元素的执行频率,可以按百分比或固定次数控制执行频率。
添加方法:
- 右键点击
Thread Group
或其他控制器,选择Add
>Logic Controller
>Throughput Controller
。
配置参数:
- Throughput:执行频率,按百分比或次数指定。
- Per User:是否按每个用户计算执行频率。
- Execution Style:选择
Percent Executions
或Total Executions
。
示例:
将几个 HTTP 请求放在 Throughput Controller
中,并设置 Throughput
为 50%,则这些请求将有 50% 的机会被执行。
8. Runtime Controller
用途:控制其子元素的执行时间,即在指定的时间内反复执行其子元素。
添加方法:
- 右键点击
Thread Group
或其他控制器,选择Add
>Logic Controller
>Runtime Controller
。
配置参数:
- Runtime (seconds):执行时间,单位为秒。
示例:
将几个 HTTP 请求放在 Runtime Controller
中,并设置 Runtime
为 30 秒,则这些请求将在 30 秒内反复执行。
三、逻辑控制器的使用示例
下面是一个示例测试计划,演示如何使用上述逻辑控制器:
-
创建测试计划:打开 JMeter,创建新的测试计划。
-
添加线程组:
- 右键点击
Test Plan
,选择Add
>Threads (Users)
>Thread Group
。 - 设置
Number of Threads (users)
为10
。 - 设置
Ramp-Up Period (seconds)
为10
。 - 设置
Loop Count
为1
。
- 右键点击
-
添加 Simple Controller:
- 右键点击
Thread Group
,选择Add
>Logic Controller
>Simple Controller
。 - 在
Simple Controller
中添加两个 HTTP 请求。
- 右键点击
-
添加 Loop Controller:
- 右键点击
Thread Group
,选择Add
>Logic Controller
>Loop Controller
。 - 设置
Loop Count
为5
。 - 在
Loop Controller
中添加一个 HTTP 请求。
- 右键点击
-
添加 Once Only Controller:
- 右键点击
Thread Group
,选择Add
>Logic Controller
>Once Only Controller
。 - 在
Once Only Controller
中添加一个登录请求。
- 右键点击
-
添加 Interleave Controller:
- 右键点击
Thread Group
,选择Add
>Logic Controller
>Interleave Controller
。 - 在
Interleave Controller
中添加两个 HTTP 请求。
- 右键点击
通过这些步骤,你可以在 JMeter 中使用逻辑控制器,创建更加灵活和复杂的测试场景。在实际使用中,可以根据具体需求添加和配置相应的逻辑控制器,以实现更加复杂和精细的测试。