一、概述
在本文中,我们将探索使用 JMeter 进行分布式性能测试。
2. 什么是分布式性能测试?
分布式性能测试是指使用主从配置的多个系统来测试Web应用程序或服务器的性能。
在此过程中,我们将使用一个本地客户端作为主机,使用多个远程客户端处理测试执行,每个远程客户端作为从机将在我们的目标服务器上执行测试。
每个从系统都按照主系统设置的确切条件执行负载测试。因此,分布式性能测试有助于我们实现更高数量的并发用户请求目标服务器。
简单来说,使用 JMeter 进行分布式性能测试的大纲如下所示:
3.设置
3.1. 先决条件
为了顺利设置和测试运行,我们应该遵循一些先决条件:
- 多台计算机,每台计算机上都安装了 JMeter
- 系统上的防火墙已关闭,或所需端口已打开以进行连接
- 所有系统(主/从)都在同一个子网上
- 每个系统上的JMeter都可以访问目标服务器
- 在所有系统(主从)上使用相同版本的 Java 和 JMeter
- 为简单起见,禁用 RMI 的 SSL
现在我们已经准备好系统,让我们配置从属系统和主系统。
3.2. 配置从系统
在从属系统上,我们将转到jmeter/bin目录并在 Windows 上执行jmeter-server.bat文件。或者,我们可以在 Unix 上运行jmeter-server文件。
3.3. 配置主系统
在主系统上,我们将转到jmeter/bin目录并编辑jmeter.properties文件中的remote_hosts属性以添加从属系统的 IP 地址(以逗号分隔):
remote_hosts=192.165.0.10,192.165.0.20,192.165.0.30复制
在这里,我们添加了三个从属系统。
因此,通过在 GUI 模式下启动 JMeter(master),我们可以确认Run > Remote Start选项中列出的所有 slaves :
就是这样!我们已准备好启动 JMeter 主系统以使用多个客户端在目标服务器上执行测试。
4.远程测试
对于远程测试,为了简单起见,我们可以在 GUI 模式下运行 JMeter。但是,我们在进行实际测试时应该使用 CLI 模式运行它。
首先,我们将在主系统中创建一个简单的测试计划,其中包含用于请求我们的 baeldung.com 服务器的HTTP 请求采样器和一个查看结果树侦听器。
4.1. 启动一个单一的奴隶
然后,我们可以使用Run > Remote Start选项选择使用 GUI 模式运行的从属系统:
4.2. 启动所有奴隶
同样,我们可以使用Run > Remote Start All选项来选择运行所有从系统:
此外,还有一些选项可用于处理从属系统上的测试执行,例如Remote Stop、Remote Stop All和Remote Shutdown All 。
4.3. 检测结果
最后,一旦测试执行完成,我们就可以在本地 JMeter(master)中看到测试结果:
此外,在远程 JMeter 系统(从属)上,我们可以找到有关测试执行开始/停止的日志:
Starting the test on host 192.165.0.10 @ Sun Oct 25 17:50:21 EET 2020
Finished the test on host 192.165.0.10 @ Sun Oct 25 17:50:25 EET 2020复制
5.结论
在本快速教程中,我们了解了如何开始使用 JMeter 进行分布式性能测试。
首先,我们查看了顺利设置和测试运行的一些先决条件。然后,我们为分布式性能测试环境配置了从属系统和主系统。
最后,我们启动从属系统,从主系统运行测试,并观察结果。
与往常一样,本教程的完整源代码可在GitHub上获得。