You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Azure虚拟机上Apache JMeter主从分布式测试环境搭建指南

Azure 环境下 Apache JMeter 分布式测试搭建指南

一、核心搭建流程

1. 统一主从节点环境

  • Java 版本检查与安装:登录所有Azure主/从VM,执行java -version确认是否有同版本Java。JMeter要求主从所有节点必须使用完全一致的Java和JMeter版本,这是避免兼容性问题的核心前提。
    • 若未安装,下载对应版本JDK(推荐OpenJDK,与JMeter兼容性好),在所有节点安装到相同路径,配置JAVA_HOME环境变量指向JDK根目录,并将%JAVA_HOME%\bin添加到系统Path中。
  • JMeter 部署:下载与主节点版本一致的JMeter压缩包,解压到所有主从VM的相同路径(如C:\JMeter),避免路径差异引发问题。

2. RMI 密钥配置(Windows 环境)

  • 在主VM的JMeter bin目录执行命令生成密钥库:
    keytool -genkeypair -alias rmi -keyalg RSA -storetype PKCS12 -keystore rmi_keystore.jks -validity 730 -keysize 2048
    
    按提示输入统一密码(建议用changeit简化后续配置),其余信息可直接回车跳过。
  • 将生成的rmi_keystore.jks复制到所有从VM的JMeter bin目录。
  • 修改所有节点的jmeter.properties文件(bin目录下):
    • 找到remote_hosts,设置为从VM的IP/主机名,多节点用逗号分隔,例:remote_hosts=10.0.0.5,10.0.0.6
    • 设server.rmi.ssl.disable=false
    • 设server.rmi.keystore.file=rmi_keystore.jks
    • 设server.rmi.keystore.password和server.rmi.key.password为你设置的密码(如changeit)

3. Azure 网络与防火墙配置

  • VM 本地防火墙:在所有主从VM的Windows防火墙中,添加允许JMeter程序入站/出站的规则,或直接开放默认RMI端口1099(也可在jmeter.properties中固定server.rmi.localport和client.rmi.localport)。
  • Azure 网络安全组(NSG):在Azure门户中,为主从VM所在NSG添加入站规则,允许主VM访问从VM的1099端口,以及从机之间的必要通信。

4. 启动节点服务

  • 在所有从VM的JMeter bin目录执行jmeter-server.bat,启动成功会显示RemoteEngine ready类提示。
  • 主VM直接打开JMeter GUI即可控制测试。

针对你的疑问的逐一解答

1. 搭建应从何开始?Azure虚拟机是否已安装同版本Java?若需自行安装,该如何操作?

  • 第一步优先统一所有节点的Java和JMeter版本:
    • Azure Windows VM默认不会预装适配JMeter的Java版本,需自行安装。
    • 安装流程:下载对应版本JDK,在所有节点安装到相同路径,配置JAVA_HOME环境变量,确保所有节点Java版本(含小版本号)完全一致。

2. 在本地创建的JMeter测试计划是否需要复制到所有主从服务器?

  • 不需要复制到从机,主机会通过RMI将测试计划发送到指定从机执行。但如果测试计划用到自定义插件,必须将插件jar包复制到所有主从节点的lib/ext目录,否则从机执行会报错。

3. 测试数据文件路径在各服务器不同,是否必须将其粘贴到bin目录(会导致多文件上传),或有其他从主服务器访问测试数据的方法?

  • 无需都放到bin目录,推荐以下高效方案:
    • Azure共享存储:创建Azure Files共享存储,挂载到所有主从VM的同一盘符/路径,测试计划直接用该共享路径读取数据,仅需上传一次文件到共享存储。
    • 参数化路径:在测试计划中用用户定义变量(如${DATA_PATH})指定数据路径,然后在每个从机的user.properties文件中配置该变量对应的本地路径,例:DATA_PATH=C:\testdata\data.csv。
    • 主机关联发送:若数据文件较小,可在CSV Data Set Config中勾选Share mode为All threads,主机会自动将文件发送到从机,此方法仅适合小文件。

4. 在JMeter GUI中选择仅在1台从机运行,测试会仅在该从机执行还是同时在主机执行?

  • 只会在你选择的那台从机执行,主机默认仅负责发送测试指令、收集汇总结果,不参与执行。

5. 若想让主机也参与执行,需确保哪些配置项或关键更改?

  • 需完成两个核心配置:
    1. 在主机的jmeter.properties中设置固定server.rmi.localport(如1099),然后在主机bin目录执行jmeter-server.bat启动服务。
    2. 修改remote_hosts配置,将主机自身IP或localhost加入列表,例:remote_hosts=localhost,10.0.0.5。
    3. 执行测试时,选择Run -> Remote Start -> localhost(对应主机条目),主机即可与从机一同执行测试。

内容的提问来源于stack exchange,提问作者Farhan Meer

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.14 00:38:21