有些时候,我们在进行压力测试的时候,随着模拟用户的增加,电脑的性能(CPU,内存)占用是非常大的,为了我们得到更加理想的测试结果,我们可以利用jmeter的分布式来缓解机器的负载压力,分布到多台机器同时运行。
一、Jmeter分布式执行原理
1.Jmeter分布式测试时,选择其中一台作为控制机(Controller),其它机器做为代理机(Agent)。
2.执行时,Controller会把脚本发送到每台Agent上,Agent 拿到脚本后开始执行,Agent执行时不需要启动Jmeter,只需要把jmeter-server.bat文件打开,它应该是通 过命令行模式来执行的。
3.执行后,Agent会把结果回传给Controller,Controller会收集所有Agent的信息并汇总。
二、Jmeter分布式压测配置
1) 安装Jmeter(Agent,Controller均如下操作)
1.首先安装好JDK(jdk要与jmeter需要的版本保持一致)
$JAVA_HOME 可以查看jdk版本
2.配置jmeter环境变量
root 权限,vim etc/profile
export PATH=/路径/apache-jmeter-5.0/bin/:$PATH
source etc/profile 更新配置
2)配置Agent
1.在1安装好的Jmeter文件中,进入bin
2.vim jmeter.properties
/server.rmi.ssl.disable 搜索 并将 server.rmi.ssl.disable=false 改为true 关闭ssl
3.jmeter-server 启动Agent
3)配置Controller
1.在1)安装好的Jmeter文件中,进入bin
2.vim jmeter.properties
/server.rmi.ssl.disable 搜索 并将 server.rmi.ssl.disable=false 改为true 关闭ssl
3./remote_hosts 搜索 并将 remote_hosts=127.0.0.1 改为 remote_hosts=ip1:1099,ip2:1099........
4)启动压测脚本
1. 运行命令: jmeter -n -t test.jmx -R ip1,ip2...... -l test.jtl 或 jmeter -n -t test.jmx -r -l test.jtl
参数 n:非gui运行
t:指定测试脚本
R:指定多少个 agent 启动并参与测试
r: 代表全部 agent 启动并参与测试
l:生成测试结果文件