Jmeter 是java 应用,对于CPU和内存的消耗比较大,因此,当需要模拟数以千计的并发用户时,使用单台机器模拟所有的并发用户就有些力不从心,甚至会引起JAVA内存溢出错误。为了让jmeter工具提供更大的负载能力,jmeter短小精悍一有了使用多台机器同时产生负载的机制
一、Jmeter分布式执行原理:
1、Jmeter分布式测试时,选择其中一台作为调度机(master),其它机器做为执行机(slave)。
2、执行时,master会把脚本发送到每台slave上,slave 拿到脚本后就开始执行,slave执行时不需要启动GUI,我理解它应该是通过命令行模式执行的。
3、执行完成后,slave会把结果回传给master,master会收集所有slave的信息并汇总。
二、执行机(slave)配置:
1、slave机上需要安装和调度机完全一样的Jmeter版本
2、slave机上需要安装和调度机完全一样的JDK版本
3、调度机和执行机需再同一网段内
4、启动bin目录下的:jmeter-server.bat
5、多台slave的话,重复1~4步骤就好
三、使用JMeter,来完成一台调度机控制,多台执行机,即实现多太机器压测
配置调度机、执行机,将调度机jmeter安装目录C:\jmeter\apache-jmeter-5.0\bin中jmeter.properties文件,修改如下3处信息
1、查看调度机、执行机的ip,将remote_hosts=127.0.0.1修改为remote_hosts=127.0.0.1:1099,192.168.0.105:1099其中127.0.0.1为调度机ip,192.168.0.105为执行机ip
2、#server_port=1099修改为server_port=1099
3、#server.rmi.ssl.disable=false修改为server.rmi.ssl.disable=true(远程启动调度机、执行机时,调度机、执行机都要设置)
3、重启Jmeter-运行-远程启动,看到配置好的调度机、执行机
4、jmeter安装bin目录下启动调度机jmeter-server.bat(远程启动调度机、执行机时,调度机、执行机都要启动jmeter-server.bat)
5、Jmeter配置好采样器为www.baidu.com 线程数1 循环次数1
运行-远程启动-127.0.0.1:1099,跑完后看到线程数是1
6、Jmeter配置好采样器为www.baidu.com 线程数1 循环次数1
运行-远程启动所有(调度机、执行机)跑完后看到线程数是2,说明设置的线程数为调度机、执行机分别独立的