温馨提示×

JMeter分布式测试在CentOS上如何实现

小樊
38
2025-11-08 05:51:18
栏目: 智能运维

JMeter分布式测试在CentOS上的实现步骤

1. 环境准备

  • 节点规划:准备一台Master节点(控制测试启动、收集结果)和至少一台Slave节点(执行测试任务)。所有节点需满足:

    • 相同版本的JDK(建议1.8及以上)JMeter(建议5.x及以上)
    • 处于同一局域网,能互相通信(无网络隔离)。
  • 安装Java:在所有节点执行以下命令安装OpenJDK 1.8:

    sudo yum install -y java-1.8.0-openjdk-devel
    

    验证安装:java -version(需显示1.8.x版本)。

  • 下载并解压JMeter:在所有节点执行以下命令(以5.5版本为例):

    wget https://downloads.apache.org/jmeter/binaries/apache-jmeter-5.5.zip
    unzip apache-jmeter-5.5.zip -d /opt/
    export JMETER_HOME=/opt/apache-jmeter-5.5  # 设置环境变量(可选但推荐)
    export PATH=$JMETER_HOME/bin:$PATH         # 将JMeter加入PATH
    

    验证安装:jmeter -v(需显示JMeter版本信息)。

2. 配置Slave节点

  • 修改JMeter配置文件:进入Slave节点的JMeter bin目录,编辑jmeter.properties

    vi $JMETER_HOME/bin/jmeter.properties
    

    找到并修改以下参数(取消注释或新增):

    server.rmi.ssl.disable=true    # 禁用SSL(简化配置,若需启用需配置证书)
    rmi.server.hostname=<Slave节点IP>  # 设置本机IP(如192.168.1.101)
    server.rmi.localport=1099      # 设置RMI本地端口(默认1099,可自定义)
    

    保存退出。

  • 启动JMeter Server:在Slave节点的JMeter bin目录下执行:

    ./jmeter-server
    

    正常启动后会显示类似日志:“Started remote host 192.168.1.101 (192.168.1.101)”。

3. 配置Master节点

  • 修改JMeter配置文件:进入Master节点的JMeter bin目录,编辑jmeter.properties

    vi $JMETER_HOME/bin/jmeter.properties
    

    找到remote_hosts参数,添加所有Slave节点的IP和端口(用逗号分隔):

    remote_hosts=192.168.1.101:1099,192.168.1.102:1099  # 示例:两台Slave
    

    保存退出。

  • (可选)优化Master配置:编辑Master节点的jmeter.properties,调整以下参数以避免端口冲突:

    client.rmi.localport=0         # 随机选择客户端端口
    server.rmi.port=1234           # 控制节点RMI端口(可选,需与Slave的localport一致)
    server.rmi.localport=1099      # 控制节点RMI本地端口(默认1099)
    

4. 启动分布式测试

  • 方式一:命令行启动(推荐)
    在Master节点执行以下命令,替换为实际路径和Slave IP:

    jmeter -n -t /opt/apache-jmeter-5.5/test_plan.jmx \
    -R 192.168.1.101:1099,192.168.1.102:1099 \
    -l /opt/apache-jmeter-5.5/results.jtl \
    -e -o /opt/apache-jmeter-5.5/report
    

    参数说明:

    • -n:非GUI模式(避免占用资源);
    • -t:指定测试计划(.jmx文件)路径;
    • -R:指定Slave节点的IP和端口(多个用逗号分隔);
    • -l:指定结果文件(.jtl)路径;
    • -e -o:测试完成后生成HTML报告(-o需指定空目录)。
  • 方式二:GUI启动(调试用)
    在Master节点打开JMeter GUI,点击顶部菜单栏【运行】→【远程启动】→ 选择所有Slave节点(或“远程启动所有”),再点击【启动】按钮即可。

5. 常见问题解决

  • 连接失败
    确保Slave节点的防火墙开放了RMI端口(默认1099),执行以下命令:

    sudo firewall-cmd --zone=public --add-port=1099/tcp --permanent
    sudo firewall-cmd --reload
    

    若仍无法连接,检查Slave节点的jmeter-server进程是否启动(ps -ef | grep jmeter-server)。

  • 版本不一致
    所有节点的JDK和JMeter版本必须完全一致(如JDK 1.8.0_392 + JMeter 5.5),否则会出现序列化错误。

  • 参数化文件路径问题
    若测试计划中使用了CSV参数化文件,需将该文件复制到所有Slave节点的相同路径(如/opt/apache-jmeter-5.5/data/test.csv),并在测试计划中指定绝对路径。

通过以上步骤,即可在CentOS环境中完成JMeter分布式测试的搭建与执行。测试完成后,可通过Master节点的report目录查看HTML报告,或分析results.jtl文件获取详细指标。

0