作者:wang.lan[ZSK]
1、为什么要进行分布式
2、分布式原理
(1)选择其中一台作为调度机(master),其它机器做为执行机(slave)。
(2)执行时,调度机会把脚本发送到每台执行机上,执行机拿到脚本后就开始执行。
(3)执行完成后,Slave会把结果回传给master,master会收集所有Slave的信息并汇总 。
3、安装jdk
# mkdir -p /usr/lib/java #建立安装目录
# tar -zxvf jdk1.8.0_151.tar.gz
# mv /usr/lib/java/jdk1.8.0_161 /usr/lib/java/java8 #移动并重命名
4、jdk环境配置
(1)添加jdk8到系统环境变量
# vi /etc/profile #编辑profile配置文件,点击“i”进入编辑状态,在最后添加下面的内容
export JAVA_HOME=/usr/lib/java/java8
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:${PATH}
退出vi 用ESC键只能切换到命令状态,然后输入“:wq ”命令进行保存文件并强行退出vi
(2)source /etc/profile 让配置文件生效
(3) java –version 查看jdk是否配置成功
5、jmeter安装配置
#mkdir -p /usr/local/jmeter #建立安装目录
#unzip apache-jmeter-3.0.zip
注意需要你已经安装unzip命令,如果没有安装就执行yum install unzip -y安装
export JMETER=/usr/local/jmeter/apache-jmeter-3.0
exportCLASSPATH=${JMETER}/lib/ext/ApacheJMeter_core.jar:${JMETER}/lib/jorphan.jar:$JMETER/lib/logkit-2.0.jar:${CLASSPATH}
export PATH=${JMETER}/bin/:${PATH}
完成添加后下述命令使配置生效: source /etc/profile 检查是否配置成功:命令行输入jmeter –v将出现以下标志
6、分布式配置
前提:调度机、执行机部署同一版本jmeter和同一版本jdk,确保所有机器在同一个子网
1、执行机:
slave机上需要安装Jmeter,添加环境变量(前面已经介绍过了)
自定义端口号:jmeter的bin目录下jmeter.properties,修改如下两项配置(默认端口10099)
server_port=1099
server.rmi.localport=1099
启动slave机的服务,即bin目录下的jmeter-server.bat将会得到slave机器IP
1、 调度机:
找到master调度机中jmeter的bin目录下jmeter.properties,修改如下配置:
remote_hosts=服务机ip1:1099,服务机ip2:1099
例如:remote_hosts=134.64.94.89:1099,134.64.94.76:1099
(备注:多台slave之前用“,”隔开,我这配置了2台,对应前面slave机器的IP和Port
)
7、远程启动
前提:
(1)上传已经调试成功的脚本(testplan1.jmx)到调度机上(如: /root/results/testplan1.jmx)
(2)执行机的jmeter服务已成功启动
(3)调度机和执行机最好分开,由于master需要发送信息给slave并且会接收slave回传回来的测试数据,所以mater自身会有消耗,所以建议单独用一台机器作为mater(这里是将调度机与执行机分开的)。
在调度机执行分布式命令:
命令语法:./jmeter -n -t [xxx.jmx脚本路径] -r -l [xxx.jtl结果存放路径]
(1)指定执行机IP(其中-R 指定远程连接的slave机器的ip多个ip之间用逗号隔开)
./jmeter -n -t /root/results/testplan1.jmx -R ip1,ip2 -l /test1.jtl
(2) 启动所有执行机执行脚本
./jmeter -n -t /root/results/testplan1.jmx -r -l /test1.jtl
运行结束后到根目录下找到test1.jtl文件下载即可 在windows系统下启动jmeter将下载好的test1.jtl文件导入聚合报告将展示测试结果
名词解释:
-n 非 GUI 模式 -> 在非 GUI 模式下运行 JMeter
-t 测试文件 -> 要运行的 JMeter 测试脚本文件
-l 日志文件 -> 记录结果的文件
-r 远程执行 -> 在Jmter.properties文件中指定的所有远程服务器