什么是分布式测试?
使用客户端-服务器模型分发测试,如下图所示:
- 主机:系统运行JMeter GUI,控制各个从机。
- 从:运行JMeter-server的系统接收来自主服务器的命令,并向被测服务器发送求。
- 目标:正在测试的Web服务器,收到从属服务器的求。
远程测试示例
前提条件:
- 系统上的防火墙已关闭。在某些情况下,应该禁用Windows防火墙或Linux防火墙。
- 所有机器应位于同一子网中。如果机器不在同一子网上,它们可能无法在网络中识别彼此。
- 使用相同版本的JMeter以避免意外的错误/问题。
以下是此测试的路线图:
步骤1) 系统配置
设置从系统,进入jeter/bin目录,执行“jeter-server.bat”文件。 假设从机的IP地址为:192.168.0.10。在Windows上,应该会看到一个窗口,如下图所示:
在主系统上,转到/bin目录并编辑jmeter.properties文件,如下所示添加IP从属计算机
步骤2) 运行测试
此时,已经准备好开始负载测试。在主计算机上,运行JMeter GUI并打开测试计划。 单击菜单栏上的Run(运行);选择Remote Start(远程启动)->选择从机IP地址
步骤3) 故障排除
如果无法在上面的机器上运行测试并看到下面的错误,只需要求从属机器的所有者运行JMeter-server.bat文件。
在主计算机和从属计算机上禁用防火墙以修复此错误。
限制:
分布式测试有一些基本限制。以下是已知物品的列表:
- 服务器和所有客户端必须位于同一子网中。
- 分布式测试要求目标服务器具有强大的处理能力。如果分布式JMeter测试收到太多求,目标服务器很容易过载。
- 单个JMeter只能处理有限数量的线程(100-300个线程)。
- 分布式JMeter测试非常复杂,初学者很难构建。