JMeter 分布式(远程)测试:主从配置
什么是分布式测试?
分布式测试是一种使用多个系统执行压力测试的测试类型。当网站和服务器应用程序同时与多个客户端一起工作时,会应用分布式测试。
分布式测试采用客户端-服务器模型,如下图所示
- 主节点:运行 JMeter GUI 的系统,控制每个从节点。
- 从节点:运行 JMeter-server 的系统,接收来自主节点的命令并向被测服务器发送请求。
- 目标:被测 Web 服务器,从从节点获取请求。
远程测试示例
先决条件
- 系统上的防火墙已关闭。在某些情况下,防火墙可能仍会阻止流量。您应该禁用 Windows 防火墙或Linux防火墙。
- 所有机器都应在同一子网中。如果机器不在同一子网中,它们可能无法在网络中相互识别。
- 使用相同版本的 JMeter 以避免意外错误/问题。
这是本次测试的路线图
步骤 1) 系统配置
设置从节点系统,进入 jmeter/bin 目录并执行文件“jmeter-server.bat”。
假设从节点机器的 IP 地址为:192.168.0.10。在 Windows 上,您应该会看到一个窗口,如下图所示
在主节点系统上,进入 /bin 目录并编辑文件 jmeter.properties,添加从节点机器的 IP,如下所示
步骤 2) 运行测试
此时,您已准备好开始负载测试。在主节点机器上,运行 JMeter GUI 并打开测试计划。
点击菜单栏上的“运行”;选择远程启动 -> 选择从节点机器的 IP 地址
步骤 3) 故障排除
如果您无法从上述机器运行测试并看到以下错误,只需请从节点机器的所有者运行 JMeter-server.bat 文件。
禁用主节点和从节点机器上的防火墙以修复此错误。
限制
分布式测试有一些基本的限制。以下是已知项目的列表
- 服务器和所有客户端必须位于同一子网。
- 分布式测试要求目标服务器具有强大的处理能力。如果目标服务器收到来自分布式 JMeter 测试的过多请求,它很容易过载。
- 单个 JMeter 从节点系统通常可以处理有限数量的线程,范围从 100 到 300 个线程,具体取决于硬件配置和测试计划的复杂性。
- 分布式 JMeter 测试复杂,初学者难以构建。