JMeter 分布式(远程)测试:主从配置

什么是分布式测试?

分布式测试是一种使用多个系统执行压力测试的测试类型。当网站和服务器应用程序同时与多个客户端一起工作时,会应用分布式测试。

分布式测试采用客户端-服务器模型,如下图所示

Distributed Testing

  • 主节点:运行 JMeter GUI 的系统,控制每个从节点。
  • 从节点:运行 JMeter-server 的系统,接收来自主节点的命令并向被测服务器发送请求。
  • 目标:被测 Web 服务器,从从节点获取请求。

远程测试示例

先决条件

  • 系统上的防火墙已关闭。在某些情况下,防火墙可能仍会阻止流量。您应该禁用 Windows 防火墙或Linux防火墙。
  • 所有机器都应在同一子网中。如果机器不在同一子网中,它们可能无法在网络中相互识别。
  • 使用相同版本的 JMeter 以避免意外错误/问题。

这是本次测试的路线图

Remote Test Example

步骤 1) 系统配置

设置从节点系统,进入 jmeter/bin 目录并执行文件“jmeter-server.bat”。

假设从节点机器的 IP 地址为:192.168.0.10。在 Windows 上,您应该会看到一个窗口,如下图所示

System Configuration

主节点系统上,进入 /bin 目录并编辑文件 jmeter.properties,添加从节点机器的 IP,如下所示

System Configuration

步骤 2) 运行测试

此时,您已准备好开始负载测试。在主节点机器上,运行 JMeter GUI 并打开测试计划。

点击菜单栏上的“运行”;选择远程启动 -> 选择从节点机器的 IP 地址

Run the Test

步骤 3) 故障排除

如果您无法从上述机器运行测试并看到以下错误,只需请从节点机器的所有者运行 JMeter-server.bat 文件。

Troubleshooting

禁用主节点和从节点机器上的防火墙以修复此错误。

限制

分布式测试有一些基本的限制。以下是已知项目的列表

  • 服务器和所有客户端必须位于同一子网。
  • 分布式测试要求目标服务器具有强大的处理能力。如果目标服务器收到来自分布式 JMeter 测试的过多请求,它很容易过载
  • 单个 JMeter 从节点系统通常可以处理有限数量的线程,范围从 100 到 300 个线程,具体取决于硬件配置和测试计划的复杂性。
  • 分布式 JMeter 测试复杂,初学者难以构建。