近期在用JMeter进行负载测试的 时候,发现使用单台机器模拟测试超过比如500个进程的并发就有些力不从心或者说不能如实的反应实际情况,在执行的过程中,JMeter自身会自动关闭,要解决这个问题,则可以使用分布式测试,运行多台机器运行所谓的 Agent 来分担 JMeter自身的压力(这个和LODARUNNER是一样的道理),并借此来获取更大的并发用户数,则需要进行相关的配置参数和文件权限进行一些修改,具体如下:
1、在所有期望运行 JMeter 并作为 Load Generator 的机器上安装 JMeter,并确定其中一台机器作为 Controller,其他的机器作为 Agent——假定我们使用两台机器 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:1099,192.168.0.2:1099”——其中的 1099 为 JMeter 的 Controller 和 Agent 之间进行通讯的默认 RMI 端口号; (个人备注:只改要作为Controller的机器上的此文件即可;Agent的机器上的文件可以不理会)
4、保存文件,然后依次启动作为Controller的机器上的jmeter-server文件和作为Agent的机器上的jmeter-server文件(个人备注:如果是WINDOWS系统版本的jmeter,则是启动jmeter-server.bat的批处理文件,LINUX系统则是jmeter-server文件,没有后缀的,但是要修改为可执行权限,这后面具体有提到),并重新启动 Controller 机器上的 JMeter.bat,并进入 Run -> Remote Start 菜单项,在这里可以看到远程启动菜单下面有192.168.0.1 ,192.168.0.1两个IP地址
5、如果要让某个电脑执行,可以点击改电脑的IP地址就可以,如果两个都要执行,可以点击Run 菜单下的“远程运行全部”菜单
6、有时候用作代理的机器太少,仍不能满足需要,则需要将作为Controller的电脑也当作Agent,则同样需要修改 JMeter.properties文件,将Controller的IP地址写入。同时,这个时候,需要打先打开Controller 电脑中JMeter下bin目录下的jmeter-server.bat,然后再打开JMeter.bat,此时,进入Run -> Remote Start菜单,可以看到Controller也作为远程机器进行运行。 (针对第六点我个人经过实地测试后要进行细化确认:如果是在LINUX下,此文件的权限都还是要修改的,且jmeter-server会调用名为jmeter脚本文件,其jmeter文件的权限也要修改为可执行的才可以,且每个被调用的Agent的机器的jmeter-server文件也是要执行中才可用调用,这点很重要。)。
/* Style Definitions */ table.MsoNormalTable {mso-style-name:普通表格; mso-tstyle-rowband-size:0; mso-tstyle-colband-size:0; mso-style-noshow:yes; mso-style-priority:99; mso-style-qformat:yes; mso-style-parent:""; mso-padding-alt:0cm 5.4pt 0cm 5.4pt; mso-para-margin:0cm; mso-para-margin-bottom:.0001pt; mso-pagination:widow-orphan; font-size:10.5pt; mso-bidi-font-size:11.0pt; font-family:"Calibri","sans-serif"; mso-ascii-font-family:Calibri; mso-ascii-theme-font:minor-latin; mso-hansi-font-family:Calibri; mso-hansi-theme-font:minor-latin; mso-font-kerning:1.0pt;}