Jmeter运行的时候十分耗内存和cpu,跑到500多个进程的时候,就卡死了。我们测试时,如果进行大数据量的并发测试时,单个电脑的CPU和内存可能无法承受,这个时候,我们需要进行一个分布式的测试,比如10000个并发,使用三台电脑来进行并发
在进行分布式平台测试的时候,你先要检查一下以下的内容:
1.首先确何所有的电脑上都安装Jmeter
2.在所有电脑上开起Jmeter,开启命令是jmeter-server.bat,而不是以前的jmeter.bat
3.所有的防火墙应该关闭
4.所有的客户端应该都是在同一个子网中。
5.确保jMeter可以访问这个服务器
6.确保各个客户端的jMeter的版本都是一致的,不同版本的Jmeter可能不会协同工作。
7.在你所想要操作的电脑上,以jmeter.bat命令来启动图形化的jmeter界面
如果这些前提条件你都准备好了,那么你就可以开始远程测试了。jMeter的工作方式就是一个主机会去初始化其它从机的测试案例。系统的拓扑图如下。
设置步骤:
JMeter 也可以像 LoadRunner 一样通过使用多台机器运行所谓的 Agent来分担 Load Generator 自身的压力,并借此来获取更大的并发用户数。
1. 在所有期望运行 JMeter 作为 Load Generator 的机器上安装 JMeter,并确定其中一台机器作为 Controller,其他的机器作为 Agent。然后运行所有 Agent 机器上的JMeter-server.bat文件——假定我们使用两台机器 192.168.0.1 和 192.168.0.2 作为 Agent;
2. 在Controller 机器的 JMeter 安装目录下找到 bin 目录,再找到 JMeter.properties 这个文件,使用记事本或者其他文字编辑工具打开它;
3. 在打开的文件中查找“remote_hosts=”这个字符串,你可以找到这样一行“remote_hosts=127.0.0.1”。其中的 127.0..0.1 表示运行JMeter Agent 的机器,这里需要修改为“remote_hosts=192.168.0.1:1664,192.168.0.2:1664”
或者“remote_hosts=192.168.0.1,192.168.0.2”——其中的 1664 为 JMeter 的 Controller和 Agent 之间进行通讯的默认 RMI 端口号,端口号在运行Agent上面的jmeter-server.bat时,会显示出来,注意:有些高版本的JMeter不需要写port,remote_hosts=192.168.0.1就可以了;
4. 保存文件,并重新启动 Controller 机器上的 JMeter.bat,并进入 Run -> Remote Start 菜单项。
5. 如果要让某个电脑执行,可以点击改电脑的IP地址就可以,如果两个都要执行,可以点击Run菜单下的“远程运行全部”菜单
6. 有时候用作代理的机器太少,仍不能满足需要,则需要将作为Controller的电脑也当作Agent,则同样需要修改JMeter.properties文件,将Controller的IP地址写入。同时,这个时候,需要打先打开Controller电脑中JMeter下bin目录下的jmeter-server.bat,然后再打开JMeter.bat,此时,进入Run -> Remote Start菜单,可以看到Controller也作为远程机器进行运行。 通过远程启动,便可驱动远程开启的jmeter同时进行并发测试,这样便同时有几个Jmeter进行并发测试了,这样可以实现了分布式的开发