如果您的JMeter客户端计算机无法在性能方面模拟足够多的用户来使您的服务器承受压力,或者在网络级别受到限制,则可以选择从单个JMeter客户端控制多个远程JMeter引擎。通过远程运行JMeter,您可以在许多低端计算机上复制测试,从而模拟服务器上的较大负载。JMeter客户端的一个实例可以控制任意数量的远程JMeter实例,并从它们中收集所有数据。它具有以下功能:
- 将测试样本保存到本地计算机
- 在一台机器上管理多个JMeterEngine
- 无需将测试计划复制到每台服务器-客户端将其发送到所有服务器
注意:所有服务器都运行相同的测试计划。JMeter不会在服务器之间分配负载,每个服务器都运行完整的测试计划。因此,如果您设置1000个线程并拥有6个JMeter服务器,最终将注入6000个线程。
步骤0:配置节点
确保所有节点(客户端和服务器):
步骤1:启动服务器
要在远程节点上运行JMeter,请通过运行JMETER_HOME / bin / jmeter-server(unix)或JMETER_HOME / bin / jmeter-server.bat(windows)脚本在要运行的所有计算机上启动JMeter服务器组件。
请注意,除非使用不同的RMI端口,否则每个节点上只能有一个JMeter服务器。
步骤2:将服务器IP添加到客户端的属性文件
在控制JMeter机器上编辑属性文件。在JMETER_HOME / bin / jmeter.properties中,找到名为“ remote_hosts ” 的属性,并添加正在运行的JMeter服务器IP地址的值。可以添加多个此类服务器,以逗号分隔。
步骤3a:从GUI客户端启动JMeter客户端以检查配置
现在您可以启动控制JMeter客户端了。对于MS-Windows,使用脚本“ bin / jmeter.bat ” 启动客户端。对于UNIX,请使用脚本“ bin / jmeter ”。您会注意到,Run菜单包含两个新的子菜单:“ Remote Start”和“ Remote Stop”。这些菜单包含您在属性文件中设置的客户端。使用远程启动和停止,而不是正常的JMeter启动和停止菜单项。
步骤3b:从CLI模式客户端启动JMeter
GUI模式仅应用于调试,作为更好的替代方法,您应该从CLI模式(命令行)客户端在远程服务器上开始测试。为此的命令是:
jmeter -n -t script.jmx -r
要么
jmeter -n -t script.jmx -R server1,server2,…
其他可能有用的标志:
- -Gproperty =值
- 在所有服务器中定义一个属性(可能出现多次)
- -X
- 测试结束时退出远程服务器。
第一个示例将在JMeter属性remote_hosts中定义的任何服务器上开始测试;
第二个示例将从服务器列表中定义remote_hosts,然后在远程服务器上开始测试。
当所有远程服务器都停止时,命令行客户端将退出。
13.1设置SSL
最简单的设置是对要连接的所有JMeter服务器和客户端使用一对密钥/证书。JMeter附带了一个脚本,用于生成包含一个名为rmi的密钥(及其对应的证书)的密钥库。该脚本位于bin目录中,可用于Windows系统(称为bin / create-rmi-keystore.bat)和类似Unix的系统(称为bin / create-rmi-keystore.sh)。它将生成一个密钥对,有效期为7天,默认密码为' changeit '。建议从bin目录中调用它。
运行脚本时,它将询问您一些有关将嵌入证书的名称的问题。您可以键入任何您想要的内容,只要密钥库工具接受即可。该值必须与属性server.rmi.ssl.keystore.alias匹配,该属性默认为rmi。下面显示了创建密钥库的示例会话。