1.前提条件
- 系统上的防火墙已关闭或打开了正确的端口。
- 所有客户端都在同一个子网上。且在多网卡环境需要保证启动的网卡都在一个网段。
- 确保 JMeter 可以访问服务器。
- 确保在所有系统上使用相同版本的 JMeter 和 Java。混合版本将无法正常工作。
- 为RMI 设置了 SSL或禁用了它。
一个控制器节点与多个工作节点
2.环境配置
- 在主控制机上,修改jmeter.properties文件(位于bin目录下),告诉控制机(Master)去尝试连接哪些机器。在"remote_hosts"关键字后面加上远程Jmeter负载机的IP即可(推荐使用IP而非机器名),IP之间用逗号隔开。
- 修改jmeter.properties文件,禁用SSL认证,以使Master与Slave之间能够正常通信,找到“server.rmi.ssl.disable”节点,删除前面的#号,并将值从false修改为true,表示禁用SSL。
- 在负载机上,启动jmeter-server.bat,如果有多台负载机,则每台负载机均需要启动,如果将本机也作为负载机,则本机也需要启动。(如果本机也作为负载机时,需先启动jmeter-server.bat)
3.使用
- 启用单个客户端
- 点击顶部的运行
- 选择远程启动
- 选择IP地址
- 启用所有客户端
- 点击顶部的运行
- 选择远程启动全部或使用Ctrl+Shift+R
- 当在JMeter中远程启动负载机时,我们可以在负载机的命令输出窗口中看到类似的输出,表示负载机正在进行测试,配置成功。
- 利用远程负载机运行(命令行):
启动指定负载机:
jmeter.bat -n -t D:\Jmeter-Project.jmx -l D:\Jmeter-Result.jtl -e -o D:\JMeter-Report -R 127.0.0.1:1099,192.168.49.130:1099
启动所有:
jmeter -n -t script.jmx -r -l D:\Jmeter-Result.jtl -e -o D:\JMeter-Report
无论是-r还是-R,都要求远程负载机的jmeter-server已经启动。
4.注意事项
- 根据测试类型,在 2-3 GHz CPU(最近的 CPU)上运行的单个 JMeter 客户端可以处理 1000-2000 个线程。
- 没有代理,RMI 无法跨子网通信;因此,如果没有代理,JMeter 也不能。
- 如果客户端的出口带宽较小,那么很有可能在高并发时客户端(负载机)这边的网络带宽已经成为瓶颈,这种情况下服务器端可能压力根本没有实际上的大,这是需要特别注意的,所以在进行高并发之前,我们一定要确保客户端的网络环境及硬件环境本身不是问题。
- 关闭所有防火墙
官方文档:http://jmeter.apache.org/usermanual/remote-test.html
|