jmeter分布式压测:指将需要模拟的大量并发用户数分发到多台压力机,使jmeter拥有更大的负载量,满足真实业务场景(高并发场景)。可以理解为通过一个Jmeter控制台来远程控制多个Jmeter引擎(压力机、负载机、执行机)完成测试。
meter分布式原理:由控制机分发压测脚本到每台远程执行机(压力机),然后由控制机收集执行机结果。
ps:控制机可以执行测试脚本,也可以不执行只负责管理。执行机(压力机)系统不限,可以是win、mac、linux。
Jmeter分布式测试时,选择其中一台作为控制机(Controller),其它机器作为代理机(Agent),也可以叫做压力机/负载机/执行机。
执行时,控制机自动将测试计划(压测脚本)发送到每台压力机上,压力机拿到脚本后开始执行,压力机执行时不需要启动Jmeter,只需要把jmeter-server.bat文件打开,它应该是通过命令行模式来执行的。
执行后,压力机把结果回传给控制机,控制机收集所有压力机的信息并汇总。
Ps:拾取不到脚本参数文件,${__P(user.dir,)}${__P(file.separator,)}test.csv【文件需要在bin目录下】
1.控制机(master)配置
1.1修改 jmeter.properties
remote_hosts=【配置从机ip:端口】
1.2修改 jmeter.bat
set rmi_host=-Djava.rmi.server.hostname=主机ip
默认没有,需要自己加一下
2. 执行机(slave)配置
2.1修改 jmeter.properties
进入bin目录下,输入命令:vim jmeter.properties
remote_hosts=【从机ip:端口】
server_port=【从机端口】
server.rmi.port=【从机端口】
server.rmi.localport=【从机端口】
server.rmi.ssl.disable=true(保证远程连接通畅)
默认没有,需要自己加一下
2.2修改 jmeter-server
进入bin目录下,输入命令:vim jmeter -server
RMI_HOST_DEF=-Djava.rmi.server.hostname=从机ip
3. 远程机启动
进入bin目录下,输入命令:
./jmeter-server -Djava.rmi.server.hostname=从机ip
如果启动不了,需要在bin目录下输入命令:chmod 777 jmeter-server,给他赋权
4. 执行机启动
信息来源:易迪森技术部 吴娟