原理:
1、Jmeter分布式测试时,选择其中一台作为调度机(master),其它机器做为执行机(slave)。 2、执行时,master会把脚本发送到每台slave上,slave 拿到脚本后就开始执行,slave执行时不需要启动GUI,我理解它应该是通过命令行模式执行的。 3、执行完成后,slave会把结果回传给master,master会收集所有slave的信息并汇总。 前提:a.jmeter的controller机器和agent机器在同一个网段内b.可以相互ping通c.jmeter在controller机器和agent机器环境配置正确,可正常使用 配置:执行机(slave)配置:a.修改agent服务器,指定agent机器的IP(远程master的ip)修改jmeter-server文件# vi jmeter-server修改RMI_HOST_DEF=-Djava.rmi.server.hostname=10.13.225.12 b.自定义端口1、在slave机的Jmeter的bin目录下,找到jmeter.properties文件,修改如下两个配置项,比如我这里修改为1888: server_port=1888 server.rmi.localport=18882、启动slave机上的jmeter-server.bat,如下图,端口已经修改为:1888 调度机(master)配置:a.修改server服务器,指定server机器的IP修改jmeter.bat文件新增set rmi_host=-Djava.rmi.server.hostname=110.13.225.12修改set ARGS=%DUMP% %HEAP% %NEW% %SURVIVOR% %TENURING% %PERM% %DDRAW% %rmi_host% b.修改slave的IP和Port找到Jmeter的bin目录下jmeter.properties文件,修改如下配置,IP和Port是slave机的IP以及自定义的端口remote_hosts=10.13.223.202:1000,10.13.225.12:1000多台slave之前用","隔开,我这配置了2台,可以看到标红的这个就是上面截图slave的IP和Port.运行:执行机:a.启动slave机上的jmeter-server.batb.控制台信息:开始执行、结束信息如下 调度机:a.启动mast机上的jmeter-server.batb.打开Jmeter,选择运行,有运程启动、运程全部启动两个选项: