首页主机资讯Ubuntu下JMeter分布式测试怎么做

Ubuntu下JMeter分布式测试怎么做

时间2025-10-31 22:34:04发布访客分类主机资讯浏览1064
导读:Ubuntu下JMeter分布式测试实施步骤 1. 前提准备 环境要求:所有节点(Controller与Workers)需安装相同版本的JDK(≥11)和相同版本的JMeter(建议使用最新稳定版,如5.6.3+),避免兼容性问题。 网络...

Ubuntu下JMeter分布式测试实施步骤

1. 前提准备

  • 环境要求:所有节点(Controller与Workers)需安装相同版本的JDK(≥11)相同版本的JMeter(建议使用最新稳定版,如5.6.3+),避免兼容性问题。
  • 网络要求:所有节点处于同一局域网,确保彼此互通(可通过ping命令验证);防火墙需开放RMI通信端口(默认1099)及JMeter Server端口(默认动态分配,可通过-Dserver.rmi.port指定)。

2. 安装JDK与JMeter

  • 安装JDK:在所有节点执行以下命令安装OpenJDK 11:

    sudo apt update
    sudo apt install -y openjdk-11-jdk
    

    验证安装:java -version(需显示Java 11版本信息)。

  • 安装JMeter

    • 从JMeter官网下载最新稳定版压缩包(如apache-jmeter-5.6.3.tgz)。
    • 解压至目标目录(如/opt/jmeter):
      tar -xzf apache-jmeter-5.6.3.tgz -C /opt/
      
    • 配置环境变量:编辑~/.bashrc,添加以下内容:
      export JMETER_HOME=/opt/apache-jmeter-5.6.3
      export PATH=$JMETER_HOME/bin:$PATH
      
      生效配置:source ~/.bashrc
    • 验证安装:jmeter --version(需显示JMeter版本信息)。

3. 配置Worker节点(执行机)

  • 修改JMeter属性文件:进入Worker节点的JMeter安装目录,编辑bin/jmeter.properties

    • 找到server.rmi.ssl.disable,取消注释并设置为true(禁用SSL,简化配置):
      server.rmi.ssl.disable=true
      
    • (可选)修改server_port(默认1099,若冲突可调整,如server_port=1100)。
  • 修改JMeter Server启动脚本:编辑bin/jmeter-server,找到RMI_HOST_DEF,取消注释并设置为Worker节点的IP地址(如192.168.1.101):

    RMI_HOST_DEF=-Djava.rmi.server.hostname=192.168.1.101
    

    保存后,赋予执行权限:chmod +x bin/jmeter-server

  • 启动Worker节点:在Worker节点执行以下命令启动JMeter Server:

    jmeter-server
    

    若需后台运行,可使用nohup

    nohup jmeter-server >
         jmeter-server.log 2>
        &
        1 &
        
    

    启动成功会显示类似日志:Created remote object: UnicastServerRef2[endpoint:[192.168.1.101:1100](local)]

4. 配置Controller节点(管理机)

  • 修改JMeter属性文件:进入Controller节点的JMeter安装目录,编辑bin/jmeter.properties
    • 找到remote_hosts,取消注释并将Worker节点的IP地址及端口添加至末尾(多个Worker用逗号分隔,如192.168.1.101:1100,192.168.1.102:1100):
      remote_hosts=192.168.1.101:1100,192.168.1.102:1100
      
    • 确保server.rmi.ssl.disable=true(与Worker节点一致)。

5. 执行分布式测试

  • 验证节点连接:在Controller节点执行以下命令,查看是否能连接到所有Worker节点:

    jmeter -n -t <
        测试脚本.jmx>
         -l <
        结果文件.jtl>
     -r
    

    其中:

    • -n:非GUI模式运行;
    • -t:指定测试脚本路径(如/opt/scripts/performance-test.jmx);
    • -l:指定结果文件路径(如/opt/results/result.jtl);
    • -r:远程启动所有配置的Worker节点。
  • 查看测试结果:测试完成后,可通过Controller节点的JMeter GUI打开结果文件(.jtl),查看聚合后的响应时间、吞吐量等指标。

6. 注意事项

  • 版本一致性:Controller与所有Worker的JDK、JMeter版本必须完全一致,否则可能导致脚本执行失败。
  • 参数文件同步:若测试脚本使用CSV参数化,需将参数文件复制到所有Worker节点的相同路径(如/opt/scripts/data.csv),并在脚本中正确配置路径(如${ __P(file.separator,)} data.csv)。
  • 防火墙设置:确保所有节点的防火墙允许RMI通信(默认1099端口)及JMeter Server端口(如1100)的入站/出站流量。
  • 结果收集:分布式测试的结果默认汇总到Controller节点的结果文件中,Worker节点仅发送汇总数据,不保留详细响应内容(如需查看详细响应,需在Worker节点的jmeter.properties中设置jmeter.save.saveservice.output_format=xml)。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: Ubuntu下JMeter分布式测试怎么做
本文地址: https://pptw.com/jishu/740421.html
JMeter如何监控Ubuntu系统资源 ubuntu js如何管理依赖包

游客 回复需填写必要信息