Jmeter分布式

Jmeter 是java应用,对于CPU和内存的消耗比较大,因此,当需要模拟数以千计的并发用户时,使用单台机器模拟所有的并发用户就有些力不从心,甚至会引起JAVA内存溢出错误。为了让jmeter工具提供更大的负载能力,jmeter短小精悍一有了使用多台机器同时产生负载的机制。
通过远程运行jmeter,测试人员可以跨越多台低端计算机复制测试,这样就可以模拟一个比较大的服务器压力,一个jmeter客户端实例,理论上可以控制任意多的远程jmeter实例,并通过他们收集测试数据。这样一样,就有了如下特性:
  * 保存测试采样数据到本地机器
  * 通过单台机器管理多个jmeter执行引擎。
  * 没有必要将测试计划复制到每一台机器,jmeter GUI客户端会将它发往每一台jmeter服务器。
  * 每一台jmeter远程服务器都执行相同的测试计划,jmeter不会在执行期间做负载均衡,每一台服务器都会完整地运行测试计划。

使用多台机器产生负载的操作步骤如下:
  (1)在所有期望运行jmeter作为 负载生成器的机器上安装jmeter, 并确定其中一台机器作为 controller ,其他的的机器作为agent 。
然后运行所有 agent 机器上的jmeter-server 文件(假定使用两台机器192.168.0.100 和192.168.0.101 作为agent)
运行jmeter-server命令 ./jmeter-server -Djava.rmi.server.hostname=192.168.0.100
  (2)在controller机器的jmeter的bin目录下,找到jmeter.properties 文件,编辑该文件
  查找:
  remote_hosts=127.0.0.1
  修改为:
  remote_hosts=192.168.0.100:1099,192.168.0.101:1099
修改 server.rmi.ssl.disable=true
这里要特别注意端口后,有些资料说明端口1644为jmeter的controller 和agent 之间进行通信的默认RMI端口号,但是在测试时发现,设置为1644运行不成功,改成1099后运行通过。另外还要留意agent的机子是否开启了防火墙等。
  (3)启动controller 机子上的jmeter应用,选择菜单“运行”—>“远程启动”,来分别启动agent ,也可以直接选择“远程全部启动”来将所有的agent启动,若要远程启动controller,则controller所在机器的jmeter-server要先启动

### JMeter 分布式测试配置与使用指南 #### 1. 环境准备 在进行分布式性能测试之前,需要确保所有参与测试的机器(主控机从机)已经正确安装并配置了必要的环境。以下是具体要求: - 所有机器必须安装相同版本的 JDK,并且确保 JDK 版本一致[^3]。 - 在每台从机上安装相同版本的 JMeter[^3]。 - 检查网络连接是否正常,确保主控机能够通过 IP 地址访问所有从机。 #### 2. 配置从机 在每台从机上进行以下配置: - 修改 `jmeter.properties` 文件中的 `server_port` 参数,设置一个自定义端口(例如 1099)。 - 设置 `server.rmi.ssl.disable=true`,以禁用 RMI 的 SSL 加密[^3]。 - 如果需要,可以修改 `server.rmi.port` 参数,指定 RMI 使用的端口(可选)[^3]。 - 启动 JMeter 服务:运行命令 `jmeter-server -Djava.rmi.server.hostname=IP_ADDRESS`,其中 `IP_ADDRESS` 是当前从机的 IP 地址[^3]。 - 检查防火墙规则,确保开放了配置的 `server_port` `server.rmi.port` 端口[^3]。 #### 3. 配置主控机 在主控机上进行以下配置: - 修改 `jmeter.properties` 文件中的 `remote_hosts` 参数,将其值设置为所有从机的 IP 地址列表(例如 `192.168.1.1,192.168.1.2`)[^3]。 - 设置 `server.rmi.ssl.disable=true`,与从机保持一致[^3]。 - 设置 `mode=Standard`,以启用标准模式下的分布式测试。 #### 4. 启动分布式测试 可以通过以下两种方式启动分布式测试: - **方式一:使用配置文件** 在主控机上直接运行 JMeter GUI 或非 GUI 模式,加载测试计划后选择“远程启动”选项,选择所有从机进行测试。 - **方式二:使用命令行** 在主控机上运行以下命令,指定从机 IP 地址列表: ```bash jmeter -n -t test_plan.jmx -l result.jtl -R 192.168.1.1,192.168.1.2 ``` 其中,`test_plan.jmx` 是测试计划文件,`result.jtl` 是结果输出文件,`192.168.1.1,192.168.1.2` 是从机 IP 地址列表[^2]。 #### 5. 注意事项 - 确保主控机从机之间的网络延迟较低,以避免网络问题影响测试结果[^3]。 - 测试过程中,建议监控从机的 CPU、内存磁盘使用情况,以确保其资源充足[^3]。 - 如果测试计划较大,建议将测试计划文件分发到每台从机上,以减少主控机的负载。 ```bash # 示例:将测试计划文件分发到从机 scp test_plan.jmx user@192.168.1.1:/path/to/jmeter/ scp test_plan.jmx user@192.168.1.2:/path/to/jmeter/ ``` #### 6. 结果分析 测试完成后,可以通过 JMeter 提供的结果文件(如 `.jtl` 文件)进行数据分析。推荐使用插件(如 Listener 插件或第三方工具)生成更直观的报告[^1]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值