JMeter分布式负载测试 (吞吐量控制器)

17 Mar 2025 | 4 分钟阅读

在本节中,我们将学习如何使用吞吐量控制器在JMeter中创建分布式负载测试计划。

为了我们的测试目的,我们将在我们的网站www.javatpoint.com的URL下的一些网页上创建分布式负载。这些网页包括

主页: www.javatpoint.com

网页1 (Java): www.javatpoint.com/java-tutorial

网页2 (C_Programming): www.javatpoint.com/c-programming-language-tutorial

网页3 (Cpp): www.javatpoint.com/cpp-tutorial

下图显示了我们网站的主页


JMeter Distributed Load Test

注意:假设我们创建了10个虚拟用户(线程)来对我们的网站执行分布式负载测试,那么所有其他网页都将受到10个虚拟用户的恒定负载的测试。但是,这并不是一个真实世界的场景。在现实世界中,同一URL下的不同网页的负载可能存在差异。

让我们首先创建一个不使用吞吐量控制器的分布式负载测试计划。对于此测试,我们已将单个虚拟用户分发到每个线程组。

创建 JMeter 测试计划

  • 转到您的JMeterbin文件夹并双击ApacheJMeter.jar文件以启动JMeter界面。
  • 点击“测试计划”节点。
  • 将此测试计划节点重命名为“分布式测试”。
  • 选择“分布式测试”节点,然后右键单击所选项目。
  • 将鼠标悬停在“添加”选项上,然后将显示元素列表。
  • 选择 线程 (用户) > 线程组。

JMeter Distributed Load Test

添加 Sampler

我们必须在线程组中添加一个HTTP RequestSampler。

  • 选择“线程组”并右键单击所选项目。
  • 将鼠标悬停在“添加”选项上,然后将显示元素列表。
  • 选择 Sampler > HTTP request 选项。
  • 这将添加一个空的 HTTP Request Sampler。

JMeter Distributed Load Test

配置HTTP Request Sampler的字段为

  • 名称 - 主页。
  • 服务器名称或IP - 在我们的例子中,Web服务器名称将是www.javatpoint.com

现在,我们将复制线程组并将其粘贴到我们的测试计划中三次。根据被测试的网页重命名每个HTTP Request Sampler。每个HTTP Request Sampler的服务器名称将相同。

下图显示了“分布式测试计划”下的目录结构。


JMeter Distributed Load Test

分别配置JavaC_ProgrammingCpp采样器的路径名。

下图显示了上述每个采样器的相应路径名。


JMeter Distributed Load Test
JMeter Distributed Load Test
JMeter Distributed Load Test

添加监听器

  • 选择“分布式测试计划”元素。
  • 鼠标悬停在“添加”选项上,然后将显示元素列表。
  • 选择“监听器”>“聚合报告”。

JMeter Distributed Load Test

保存并执行测试计划

  • 单击文件 > 将测试计划另存为。
  • 将整个测试计划保存为“Distributed_test1.jmx”。

JMeter Distributed Load Test
  • 单击运行 > 开始执行测试计划。

验证输出

您可以在“#样本”选项卡中看到每个网页的负载分布。


JMeter Distributed Load Test

现在,我们已经成功执行了没有使用吞吐量控制器的分布式负载测试计划。但是,在对应用程序进行真实世界的负载测试期间,我们无法确定实际用户的数量。在这种情况下,我们必须使用吞吐量控制器。

添加吞吐量控制器

首先,我们必须为我们的测试计划创建一个主线程组。

  • 选择“分布式测试”节点,然后右键单击所选项目。
  • 将鼠标悬停在“添加”选项上,然后将显示元素列表。
  • 选择 线程 (用户) > 线程组。
  • 将此线程组重命名为“主线程组”。
  • 选择“主线程组”节点,然后右键单击所选项目。
  • 将鼠标悬停在“添加”选项上,然后将显示元素列表。
  • 选择“逻辑控制器”>“吞吐量控制器”。

JMeter Distributed Load Test

下图显示了吞吐量控制器的默认控制面板。


JMeter Distributed Load Test

按照以下步骤在“主线程组”节点下创建一个测试计划

  • 复制“主页”采样器并将其粘贴到吞吐量控制器中。
  • 再创建三个吞吐量控制器,并复制粘贴其余的网页采样器。
  • 禁用/删除“分布式测试计划”节点下的所有线程组。

下图显示了“主线程组”节点下的目录结构。


JMeter Distributed Load Test

现在,我们已在“主线程组”中将用户总数配置为“10”。因此,每个吞吐量控制器的“%”执行将根据主线程组中的用户总数进行分配。

我们已将每个吞吐量控制器的“%”执行分布为

  1. 主页 10%
  2. Java 20%
  3. C_Programming 20%
  4. Cpp 50%

注意:主线程组中的线程(用户)数量可以根据应用程序在真实世界中预期的负载而有所不同。

下图显示了“主线程组”和整个吞吐量控制器的配置。


JMeter Distributed Load Test
JMeter Distributed Load Test
JMeter Distributed Load Test
JMeter Distributed Load Test
JMeter Distributed Load Test
  • 单击“运行”>“开始”以执行测试计划。

验证输出


JMeter Distributed Load Test

您可以在“#样本”选项卡中看到每个网页的负载分布。


JMeter Distributed Load Test