很多性能大牛说一台机器的压测其实不准确,于是搜索网上的分布式压测练习了一番
目录
1、环境准备
2、控制机和压测机配置
3、执行分布式压测
1、环境准备
1.1准备一台windows作为控制机(master)(ip:XX.XX.XX.130),2台linux作为负载机(slave)(ip:XX.XX.XX.128)(ip:XX.XX.XX.129)
1.2三台机器都配置同样版本的java和jmeter
linux环境变量添加:
export JAVA_HOME=/opt/jdk1.8.0_161
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin
export JMETER_HOME=/opt/apache-jmeter-3.3
export PATH=$JMETER_HOME/bin:$PATH
export CLASSPATH=$JMETER_HOME/lib/ext/ApacheJMeter_core.jar:$JMETER_HOME/lib/jorphan.jar:$CLASSPATH
环境确认:
windows:
linux:
2、控制机和压测机配置
压测机(slave)
第一步:关闭防火墙
service iptables stop
第二步:指定启动端口
找到jmeter的bin目录下的jmeter.properties文件,操作修改,保存
vi /opt/apache-jmeter-3.3/bin/jmeter.properties
第三步:启动压测机
启动128机器:
cd /opt/apache-jmeter-3.3/bin
./jmeter-server -Djava.rmi.server.hostname=XX.XX.XX .128
启动129机器:
cd /opt/apache-jmeter-3.3/bin
./jmeter-server -Djava.rmi.server.hostname=XX.XX.XX .129
控制机(master)
第一步:修改配置文件
找到jmeter的bin目录下的jmeter.properties文件,操作修改,保存
控制机上面已经可以看到2台压测机
3、执行分布式压测
第一步:点击“全部远程启动”,查看
控制机:
压测机:
以上,脚本调试通过
第二步:参数化
将参数化文件放到每台压测机同样的位置,如,我放到opt目录下,命名为qq.txt,当中有三组登录数据
执行:
2台机器都将脚本跑了一遍
第三步:命令行执行
认识命令行参数
用全部压测机压测:
jmeter -n -t C:\canshuhua.jmx -r -l c:\m.jtl
仅用一台机器压测:
jmeter -n -t C:\canshuhua.jmx -R XX.XX.XX.128:2000 -l c:\4.jtl
注:
1、压测机和控制机需在同一网段
2、压测机远程执行时,查看结果树的响应结果没有输出,这是正常的