JMeter 中的控制器:循环、简单、事务、模块、随机

什么是逻辑控制器?

逻辑控制器允许您定义线程中处理请求的顺序。它让您控制“何时”将用户请求发送到网络服务器。例如,您可以使用随机控制器随机地向服务器发送 HTTP 请求。

逻辑控制器决定用户请求的执行顺序

一些常用的逻辑控制器如下:

The Logic Controller

记录控制器

JMeter 可以记录您的测试步骤;记录控制器是一个占位符,用于存储这些记录步骤。

Recording Controller

简单控制器

简单控制器只是用户请求的容器

Simple Controller

循环控制器

循环控制器使用户请求运行指定次数永远运行,如图所示。

Loop Controller

随机控制器

随机控制器使所有用户请求在每个循环周期内以随机顺序运行。

例如,您有 3 个用户请求发送到网站 http://www.google.com,顺序如下:

  1. HTTP 请求
  2. FTP 请求
  3. JDBC 请求

这 3 个请求应该运行 5 次。JMeter 将总共向 Google 服务器发送 15 个用户请求。

顺序执行中,请求在每个循环中按以下顺序顺序发送:

HTTP 请求 -> FTP 请求 -> JDBC 请求

对于每个循环。

Random Controller

随机执行中,请求是随机发送的,

FTP 请求 -> HTTP 请求 -> JDBC 请求

或者

JDBC 请求 -> FTP 请求 -> HTTP 请求

对于每个循环。

模块控制器

模块控制器的目标是为 JMeter 增加模块化。

一般的想法是,Web 应用程序由小的功能单元(即登录、创建账户、注销…)组成。这些功能可以作为“模块”存储在简单控制器中。模块控制器将选择需要运行哪个模块。

Module Controller

考虑以下场景:

您希望模拟:

  • 50 个用户注销
  • 100 个用户登录
  • 30 个用户搜索www.google.com

您可以使用 JMeter 创建 3 个模块。每个模块模拟一个用户活动:登录、注销和搜索。

Module Controller

模块控制器选择需要运行哪个模块。

Module Controller

其他重要控制器

  • 交错控制器:在线程的每个循环中选择并执行一个用户请求。
  • 运行时控制器:控制其子元素允许运行的时长

例如,如果您将运行时控制器设置为 10 秒,JMeter 将运行您的测试 10 秒。

Other Important Controllers

  • 事务控制器:测量完成测试执行所需的总时间
  • 包含控制器:旨在使用外部测试计划。此控制器允许您在 JMeter 中使用多个测试计划。详情请参阅JMeter 性能测试

循环控制器示例

本节将向您展示逐步说明,以将循环控制器集添加到您当前的性能测试计划中。

循环控制器使采样器运行特定次数,此外还会考虑您为线程组指定的循环值。例如,如果您:

  • 向循环计数为 50 的循环控制器添加一个 HTTP 请求
  • 将线程组的循环计数配置为 2
  • 那么,JMeter 将总共发送 50 * 2 = 100 个 HTTP 请求。

这是本例的路线图

Loop Controller Example

步骤 1) 配置线程组

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

  1. 添加线程组

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

但在线程组控制面板中,按如下所示输入线程属性:

Add Thread Group

它将向 Web 服务器 google.com 发送一个用户请求并运行2次。

  1. 添加 JMeter 元素

将 HTTP 请求默认添加到 www.google.com。

  1. 添加循环控制器

右键单击线程组 -> 逻辑控制器 -> 循环控制器

Adding Loop Controller

步骤 2) 配置循环控制器

在循环计数字段中添加值 50,如下图所示。除了您为上述线程组指定的循环值 = 2 之外,它将使向 Web 服务器 google.com 发送的一个用户请求运行50次。因此,JMeter 将总共发送 2 * 50 = 100 个 HTTP 请求。

Configuring Loop Controller

右键单击循环控制器,添加 -> 采样器 -> HTTP 请求

Configuring Loop Controller

步骤 3) 添加“以表格形式查看结果”

我们重用计时器中的步骤 2 来添加“以表格形式查看结果”

因此,测试计划如下图所示:

Add View Results in Table

步骤 4) 运行您的测试

现在返回“以表格形式查看结果”,点击菜单栏上的“开始”按钮 (Ctrl+R) 来运行测试。

如下图所示,JMeter 模拟了向 Web 服务器 http://www.google.com/ 发送的一个用户请求,共 100 次。在用户请求发送 100 次后,测试停止。

Run the Test

故障排除

  1. 如果您在运行上述场景时遇到问题……请执行以下操作:
  2. 检查您是否通过代理连接到互联网。如果是,请删除代理。
  3. 打开 JMeter 的新实例
  4. 在 JMeter 中打开 ControllerTestPlan.jmx
  5. 点击线程组 -> 以表格形式查看结果
  6. 运行测试