跨平台测试的核心是通过Master节点(Windows) 控制Slave节点(CentOS) 分布式执行测试,需确保版本一致、网络互通及配置正确。以下是具体步骤:
安装Java环境
所有节点(Windows、CentOS)需安装相同版本的JDK(推荐JDK 1.8),并配置JAVA_HOME环境变量。
sudo yum install java-1.8.0-openjdk-devel -y
echo 'export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk' >> ~/.bashrc
echo 'export PATH=$JAVA_HOME/bin:$PATH' >> ~/.bashrc
source ~/.bashrc
JAVA_HOME。下载并解压JMeter
所有节点安装相同版本的JMeter(推荐5.4及以上),解压至固定目录(如CentOS的/opt/jmeter、Windows的D:\jmeter)。
wget https://dlcdn.apache.org/jmeter/binaries/apache-jmeter-5.4.3.tgz
tar -xzf apache-jmeter-5.4.3.tgz -C /opt/
修改JMeter配置文件
编辑Slave节点的jmeter.properties(位于/opt/jmeter/bin/),修改以下参数:
server.rmi.ssl.disable=true # 禁用SSL(简化配置,生产环境建议启用)
rmi.server.hostname=<CentOS节点IP> # 设置本机IP(替换为实际IP)
编辑jmeter-server文件(同一目录),取消注释并设置:
RMI_HOST_DEF=-Djava.rmi.server.hostname=<CentOS节点IP> # 指定RMI服务器主机名
启动JMeter Server
在Slave节点终端执行:
cd /opt/jmeter/bin/
./jmeter-server
若启动时报错(如端口冲突),可修改server.rmi.localport(如server.rmi.localport=1100)并重启。
修改JMeter配置文件
编辑Master节点的jmeter.properties(位于D:\jmeter\bin\),修改remote_hosts参数,添加Slave节点的IP和端口(默认1099):
remote_hosts=<CentOS节点IP>:1099 # 多个Slave用逗号分隔,如192.168.1.101:1099,192.168.1.102:1099
启动JMeter GUI
双击Windows下的jmeter.bat启动JMeter,在GUI中编写或导入测试脚本(如HTTP请求、参数化文件)。
方式一:通过Master GUI启动
在Master节点的JMeter GUI中,点击顶部菜单栏运行→远程启动→选择Slave节点(如“远程启动192.168.1.101”),或远程启动所有启动所有Slave。
方式二:通过命令行启动
在Master节点终端执行以下命令(替换为实际路径和IP):
cd D:\jmeter\bin\
jmeter -n -t D:\scripts\test_plan.jmx -R <CentOS节点IP>:1099 -l D:\results\results.jtl -e -o D:\reports
参数说明:
-n:非GUI模式运行;-t:指定测试脚本路径;-R:指定Slave节点地址;-l:保存测试结果(JTL格式);-e -o:生成HTML报告(输出至指定目录)。连接失败
sudo firewall-cmd --zone=public --add-port=1099/tcp --permanent
sudo firewall-cmd --reload
版本不一致
所有节点的JMeter和JDK版本必须完全一致(如均为JMeter 5.4.3+JDK 1.8),否则会出现序列化错误。
参数化文件路径问题
若测试脚本使用CSV参数化文件,需将文件复制到所有Slave节点的相同路径(如/opt/jmeter/bin/params.csv),并在脚本中指定绝对路径。
通过以上步骤,可实现CentOS作为Slave节点、Windows作为Master节点的跨平台分布式测试,覆盖多操作系统环境下的性能验证需求。