如何在AWS Windows EC2实例上用JMeter实现分布式压力测试
AWS Windows EC2 上 JMeter 分布式压力测试全流程指南
一、前期准备确认
- 主节点:已完成JMeter安装的Windows EC2实例(记好公网/私网IP)
- 从节点:至少1台Windows EC2实例,需安装与主节点完全相同版本的JMeter和JDK,版本不一致会引发兼容性问题
- 安全组:提前规划好端口规则,后续配置会用到
二、EC2主从节点连接配置
1. 安全组规则调整
- 主节点安全组:出方向允许访问从节点的
1099端口(RMI注册端口)、4000-5000端口(JMeter默认采样端口范围,可自定义) - 从节点安全组:入方向允许主节点IP访问
1099和4000-5000端口;如果用自定义端口,替换对应范围即可
2. 从节点内部配置
- 打开JMeter安装目录下的
bin/jmeter.properties文件,修改以下配置:server_port=1099:保持默认或自定义,需与安全组规则对应server.rmi.localport=4000:设置固定采样端口,避免随机端口导致安全组无法适配- 保存文件后,打开命令提示符,进入JMeter bin目录,执行
jmeter-server.bat启动服务。启动成功会显示类似Remote Engine ready to receive commands from [主节点IP]的提示
3. 主节点内部配置
- 同样打开
bin/jmeter.properties文件,找到remote_hosts项,填入所有从节点的IP和端口,格式如:remote_hosts=10.0.0.10:1099,10.0.0.11:1099(同VPC内用私网IP,跨VPC用公网IP) - 可选:设置
client.rmi.localport固定主节点的请求端口,方便安全组规则管控
三、分布式负载测试实施步骤
1. 测试脚本准备
- 在主节点编写或导入测试计划,若脚本用到CSV等数据源文件,需同步到所有从节点的相同路径下,或使用相对路径确保各节点能读取到文件
- 避免使用绝对路径,防止不同节点路径不一致导致脚本执行失败
2. 主从连接验证
- 打开主节点命令提示符,进入JMeter bin目录,执行命令:
jmeter.bat -n -t 你的测试计划.jmx -r - 若所有从节点正常启动执行,说明连接配置无误;若失败,检查安全组、端口、版本匹配性或Windows防火墙规则
3. 正式执行测试
图形界面方式(适合调试)
- 启动主节点JMeter GUI,点击菜单栏
Run->Remote Start选择单个从节点,或Remote Start All启动所有节点 - 注意:GUI模式会占用主节点资源,高并发场景建议用命令行方式
命令行方式(推荐生产场景)
- 在主节点bin目录执行命令:
参数说明:jmeter.bat -n -t ./testplans/your_test.jmx -r -l ./results/test_result.jtl-n:非GUI模式运行,节省资源-t:指定测试计划文件路径-r:启动remote_hosts中配置的所有从节点-l:指定测试结果输出的jtl文件路径
4. 结果收集与分析
- 测试结束后,主节点会自动汇总所有从节点的结果到指定jtl文件
- 可在主节点JMeter GUI中导入jtl文件,生成聚合报告、图表等进行分析
- 若需排查单个从节点问题,可查看从节点bin目录下的
jmeter-server.log日志文件
四、常见问题排查
- 连接超时:检查从节点
jmeter-server是否启动、安全组端口是否开放、remote_hosts配置的IP和端口是否正确 - 脚本执行报错:确认所有节点的JMeter/JDK版本完全一致、数据源文件路径统一
- Windows防火墙拦截:在从节点添加允许JMeter程序通过防火墙的规则,或临时关闭防火墙测试
内容的提问来源于stack exchange,提问作者Krishnaveni
相关产品推荐
相关产品推荐

