服务器分配ip:
说明,以下个人ip,为了便于说明部署的方式
192.168.101.104 --jmeter conterllor
192.168.101.105 --jmeter slave
192.168.101.106 -- jmeter slave
链接方式:ssh support@192.168.101.104
修改防火墙:
sudo su - root
firewall-cmd --add-port=1099/tcp --permanent
firewall-cmd --reload
基本命令介绍:
文件移动命令:
scp -r jdk-8u131-linux-x64.rpm support@192.168.101.104:/home/support/java
修改配置文件
vim /etc/profile --修改文件
source /etc/profile --文件生效
查看系统版本信息:
cat /proc/version
jmeter
jmeter部署
因为jmeter运行是基于java环境的,所以先确认服务器是否已安装jdk,若没有安装,需要先安装jdk,安装步骤如下:
注意: 要安装1.8版本的!!!!
安装jdk
sudo rpm -ivh jdk-8u131-linux-x64.rpm
通过rpm 安装的,未手动配置环境变量
若需要配置,可在/etc/profile 文件的最后,添加以下内容:注意修改后 要 source 一下,使配置文件生效
注:JAVA_HOME为jdk所在文件目录
环境变量:
export JAVA_HOME=/home/support/java/jdk1.8.0_181
export JRE_HOME= ${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib:$CLASSPATH
export JAVA_PATH=${JAVA_HOME}/bin:${JRE_HOME}/bin
export PATH=$PATH:${JAVA_PATH}
安装jmeter
- 下载jmeter安装包--解压--配置环境变量
---- 下载jmeter安装包,可通过官网去下载,也可以直接下载 下面的附件。
在配置文件/etc/profile 最后添加以下内容,然后 source /etc/profile 使修改的内容生效
环境变量:
export JMETER_HOME=/home/support/jmeter/apache-jmeter-5.0
export CLASSPATH=$JMETER_HOME/lib/ext/ApacheJMeter_core.jar:$JMETER_HOME/lib/jorphan.jar:$JMETER_HOME/lib/logkit-2.0.jar:$CLASSPATH
export PATH=$JMETER_HOME/bin:$CLASSPATH:$JMETER_HOME/bin:$PATH
检查安装是否成功
首先检查jmeter安装是否成功,使用命令:jmeter -v
启动jmeter
启动后,会在jmeter所在的文件夹下生成一个jmeter.log文件
在jmeter文件/bin/目录下,执行此命令:
sh jmeter-server
运行脚本
首先要将脚本文件放在执行的目录下,比如我这里是将脚本文件放在testplan中,将运行结果放在testResult中:
执行命令及结果:
1、命令行中的result.jtl,在服务器不能存在---文件名字不能重复;
2、结果文件夹 resultReport 必须存在---文件夹需要先建好,但里面的文件名也不能一样;
jmeter -g result/result.jtl -e -o resultReport ---将结果生成图文报告
jmeter -n -t testplan/0914.jmx -l result/result.jtl -e -o resultReport -- 同时生成jtl和html报告
以下结果为单机执行运行的结果:
查看结果
在结果文件夹中,运行后生成的文件:
分布式配置
修改agent服务器
指定agent机器的IP,修改jmeter.properties文件内容
修改内容如下:
remote_hosts=192.168.101.106 ---当前机器的ip地址,目的是为了IP固定
server_port=1099
server.rmi.localport=1099
server.rmi.ssl.disable=true
修改master服务器
指定master机器的IP,修改jmeter.properties文件
remote_hosts=192.168.101.105:1099,192.168.101.106:1099 ---添加远程机器的ip
server_port=1099
server.rmi.ssl.disable=true
修改master机器中的 system.properties:
设置自己的hostname,目的是为了告诉slave节点,自己的通信地址:
java.rmi.server.hostname=192.168.101.104
同样再slave机器中需要进行同样的配置,为了告诉master机器自己的地址。
测试
执行脚本:
备注:
1、命令行中的result5.jtl,在服务器不能存在---文件名字不能重复;
2、结果文件 result/resultReport必须存在---文件夹需要先建好,但里面的文件名也不能一样;
3、执行脚本在 /home/support/jmeter 目录下;
4、分布式部署的情况下,脚本只需在master机器中存在即可,但如果有csv参数文件,需要放在同一个位置;
在本次测试中,因为是分布式部署jmeter,所以直接在master机器上启动脚本,命令如下:
jmeter -n -t testplan/0914.jmx -R 192.168.101.105,192.168.101.106 -l testResult/result10.jtl -e -o resultReport
可能会有的报错信息
报错1:
* 错误信息:
[support@loadrunnertest3 bin]$ ./jmeter.sh
-bash: ./jmeter.sh: Permission denied
* 处理方式:
chmod +777 ./jmeter.sh
报错2:
通过命令 ./jmeter.sh 启动
* 错误信息:
An error occurred:
No X11 DISPLAY variable was set, but this program performed an operation which requires it.
* 处理方式:
启动的时候 传参数 -n
在不适用图像界面的情况下启动
报错3:
分布式,部署后,调用远程机器报错
Waiting for possible Shutdown/StopTestNow/Heapdump message on port 4445
解决方式:
需要在 system.properties 中添加
java.rmi.server.hostname=192.168.101.104 设置本机ip地址
报错4:
在按照第3步的方式修改后,可以执行,但仍有报错:
jmeter interrupting rmi reaper
检查后发现自己写的不对:
写成了:java-rmi.server.hostname
改后,结果正确。