JMeter分布式压测

一、安装

5台机器,1主4从

A1~5压测机器

java路径:/usr/local/java/jdk1.8.0_201
jmeter路径:/usr/local/jmeter/apache-jmeter-4.0
(java与jmeter的版本都是一致的)

A1机器作为Maser机器,只负责调度(也可以作为调度+执行)
A2~5作为Slave机器,负责执行测试
(保持5台机器在同一网段内,处于同一时区内;并同时开启1099、2019端口)


压测脚本在A1机器的/api_test目录下
并给予权限
sudo chmod 777 /api_test


A1(主机)
sudo vim /usr/local/jmeter/apache-jmeter-4.0/bin/jmeter.properties

第244行改为
remote_hosts=172.16.1.19:1099,172.16.1.196:1099,172.16.1.150:1099,172.16.1.156:1099
(4台从机的内网IP与端口号)

第267行取消注释并修改为
client.rmi.localport=2019
(主机端口,默认0指的是随便指定)

第320行取消注释并修改为
server.rmi.ssl.disable=true
(忽略SSL报错)


A2~5(从机)
sudo vim /usr/local/jmeter/apache-jmeter-4.0/bin/jmeter.properties

第248行取消注释
server_port=1099
(从机jmeter-server端口)

第286行取消注释并改为
server.rmi.localport=1099
(从机jmeter-server端口)

第320行取消注释并修改为
server.rmi.ssl.disable=true
(忽略SSL报错)

 

机器分布
编号 外网IP 内网IP 启动命令
A1 53.342.755.15 172.16.1.15  
A2 56.423.532.24 172.16.1.19 ./jmeter-server -Djava.rmi.server.hostname=172.16.1.19
A3 53.232.355.76 172.16.1.196 ./jmeter-server -Djava.rmi.server.hostname=172.16.1.196
A4 57.244.868.25 172.16.1.150 ./jmeter-server -Djava.rmi.server.hostname=172.16.1.150
A5 58.425.656.16 172.16.1.156 ./jmeter-server -Djava.rmi.server.hostname=172.16.1.156

 机器~外网~内网

A1~53.342.755.15~172.16.1.15(主机)

A2~56.423.532.24~172.16.1.19 (./jmeter-server -Djava.rmi.server.hostname=172.16.1.19)

A3~53.232.355.76~172.16.1.196 (./jmeter-server -Djava.rmi.server.hostname=172.16.1.196)

A4~57.244.868.25~172.16.1.150 (./jmeter-server -Djava.rmi.server.hostname=172.16.1.150)

A5~58.425.656.16~172.16.1.156 (./jmeter-server -Djava.rmi.server.hostname=172.16.1.156)

 

二、启动:


启动时
先启动从机
分别进入A2~5四台从机

cd /usr/local/jmeter/apache-jmeter-4.0/bin
/jmeter-server -Djava.rmi.server.hostname=从机内网IP
(也可以使用守护进程,但是不建议使用守护进程,因为不是每时每刻都需要压测)

再到A1主机
jmeter -n -t ./baidu.jmx -l ./JMeterReport.jtl -r
(baidu.jmx是示例脚本,-r表示直接启动全部从机)

jmeter -n -t ./baidu.jmx -l ./JMeterReport.jtl -R 172.16.1.19,172.16.1.196,172.16.1.150,172.16.1.156
(也可以-R大写分别指定从机IP,以英文逗号分隔)

 

三、命令行补充说明:

jmeter -n -t ./baidu.jmx -l ./JMeterReport.jtl -r -e -o ./JMeterReport
// 生成JMeter Dashboard Report图形化报告
jmeter -g ./baidu.jtl -o ./JMeterReport
// 根据已有的jtl文件生成生成JMeter Dashboard Report图形化报告

jmeter -n -t jmx脚本 -l jtl文件 -e -o 测试报告目录
// 不传递参数的命令
jmeter -J线程数变量名=值1 -J持续时间变量名=值2 -J启动延迟时间变量名=值3 -n -t jmx脚本 -l jtl文件 -e -o 测试报告目录
// 传递参数的命令

 

posted @ 2019-03-17 17:48  此生不换Yang  阅读(965)  评论(0编辑  收藏  举报