JMeter 分布式环境搭建
- 控制机(controller):负责测试脚本的散发、启动、进行、收集负载机的测试后果。
- 负载机(worker nodes):负责接管控制机的指令,向被测服务器发送并发申请。
在理论运行过程中,控制器运行 bin/jmeter.sh
,执行器运行bin/jmeter-server.sh
。(windows 零碎别离执行jmeter.bat
和jmeter-server.sh
)
环境
- 所有主机(控制机和负载机)都在同一网段。
- 所有主机开启工夫同步。
- 所有主机上应用雷同版本的
JMeter
和JDK
,混合版本可能无奈失常工作。 - 所有负载机能失常拜访被测利用。
配置
本例中,负载机应用Centos7
,控制机应用Windows 10
。
配置环境变量
vim /etc/profile
export JMETER_HOME=/usr/apache-jmeter-5.4.1
export CLASSPATH=${JMETER_HOME}/lib/ext/ApacheJMeter_core.jar:${JMETER_HOME}/lib/jorphan.jar:${JMETER_HOME}/lib/logkit-2.0.jar:${CLASSPATH}
export PATH=${JMETER_HOME}/bin/:${PATH}
source /etc/prifle
RMI
的 SSL
设置
如果配置 SSL
,须要配置相干证书,本例中间接敞开SSL
模式。
配置范畴:所有主机
vim bin/user.properties
# 敞开 rmi 的 ssl
server.rmi.ssl.disable=true
指定 RMI
端口
默认 RMI
会随机凋谢一个端口,如果有防火墙就没法制订规定。
配置范畴:负载机
vim bin/jmeter.properties
server.rmi.localport=2099
firewall-cmd --zone=public --add-port=1099/tcp --permanent
firewall-cmd --zone=public --add-port=2099/tcp --permanent
firewall-cmd --reload
配置负载机
指定负载机的 IP
vim bin/jmeter-server
RMI_HOST_DEF=-Djava.rmi.server.hostname= 以后负载机的 IP
配置控制机
将负载机的 IP 和端口写入控制机的配置文件,多个用逗号分隔。
vim bin/jmeter.properties
remote_hosts=192.168.1.20:1099,192.168.1.21:1099,192.168.1.22:1099
运行
- 负载机启动
jmeter-server
。 - 控制机启动
jmeter.bat
,配置工作后,在图形界面上顺次点击Run -- Remote Start All
。
- 负载机日志:
bin/jmeter-server.log
- 控制机日志:
bin/jmeter.log
注意事项
- 分布式测试总样本数 = 线程数 x 循环次数 x 负载机数量
- 控制机如果有多个网卡(包含虚构网卡),倡议 只保留与负载机同网段的网卡。
- 当脚本有依赖文件时,必须要拷贝到负载机雷同目录下。
- 在 2 -3GHz 的 CPU 上运行的单个
JMeter
客户端能够解决 1000-2000 个线程,具体取决于测试的类型。
参考资料
- https://jmeter.apache.org/use…
- https://jmeter.apache.org/use…
- https://blog.csdn.net/qq_3530…
- https://www.cnblogs.com/mengy…