背景:虽然前面已经写了一篇JMeter分布式环境的文(JMeter分布式测试环境搭建),但从4.x版本后,JMeter做了一些改变,加入了SSL认证。有一些步骤发生了变化,也遇到了一些新的问题。这里做个记录和总结分享出来。
目录
环境
1.操作系统:Windows7
2.JDK:java version "1.8.0_111"
3.JMeter: 5.1.1
前提条件
1.Master节点和Slave节点上的JDK/ JMeter版本需要一致;
2.Master节点和Slave节点网络要互通,即,可以互相ping通。
3.Master节点和Slave节点上Java和JMeter的环境变量需要配置好:
1)Windows上的环境变量配置:计算机-》右键-》属性-》高级系统设置-》环境变量
a.新建:
JAVA_HOME=<自己的盘符目录>\Java\jdk1.8.0_111
JMETER_HOME=<自己的盘符目录>\Apache\apache-jmeter-5.1.1
b.编辑PATH,添加:
%JAVA_HOME%\bin;%JMETER_HOME%\bin
2)Linux上的环境变量配置:在/etc/profile中添加:
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.212xxx
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin;$PATH
步骤
1.修改Slave配置
1)编辑:/bin/jmeter.properties
a.当前假定端口1099未被占用
b.
c.
d.
2)编辑:/bin/jmeter-server
RMI_HOST_DEF=-Djava.rmi.server.hostname=192.168.0.5 // 192.168.0.5地址为Slave所在机器的地址
3)运行jmeter-server: ./jmeter-server -Djava.rmi.server.hostname=192.168.0.5
2.Master节点配置
1)编辑 /bin/jmeter.properties
remote_hosts=127.0.0.1, 192.168.0.5 // 这样写把本机也作为负载机之一,即Slave
2)确认ssl的配置
3)运行jmeter-server.bat
4)运行jmeter.bat。在Run->Remote Start中可以看到两个Slave,127.0.0.1即是Master节点也是Slave节点,192.168.0.5为另一个Slave节点
遇到的问题
1.Slave上运行jmeter-server.bat报错信息如下:-bash: jmeter-server: command not found
原因:在Linux上没有为/bin/jmeter-server设置执行权限
2.Slave上运行jmeter-server.bat报错信息如下:./jmeter-server: line 32: ./jmeter: Permission denied
原因:在Linux上没有为/bin/jmeter设置执行权限
3.Slave上运行jmeter-server.bat报错信息如下:Neither the JAVA_HOME nor the JRE_HOME environment variable is defined At least one of these environment variable is needed to run this program.
原因:Linux没有设置JAVA_HOME。参考正文中的前置条件
4.在Master上双击jmeter.bat时,一闪而过
原因:Master上安装了两个不同版本,JMETER_HOME设置为了另一个版本,将其指向5.1.1即可。参考正文中的前置条件
5.在Master上启动jmeter-server时,报错:java.io.IOException: java.sercurity.UnrecoverableKeyException: Cannot recover key
原因:master上的jmeter中ssl设置没有修改,即:server.rmi.ssl.disable=true
参考文档
1.https://www.cnblogs.com/lelelong/p/10524662.html
2.https://www.cnblogs.com/UncleYong/p/10854152.html