RHEL7部署Jmeter


安装

安装jmter

curl -O http://mirrors.hust.edu.cn/apache/jmeter/binaries/apache-jmeter- 4.0.tgz
tar -zvxf apache-jmeter-4.0.tgz -C /usr/local/
mv /usr/local/apache-jmeter-4.0 /usr/local/jmeter
ln –s /usr/local/jmeter/bin/jmeter.sh /usr/bin/jmeter # 建立软链接,可以省去配置 环境变量的步骤。

配置

如果不想使用上面第4行代码创建的软连接的方式,可以采用配置环境变量的方法

修改配置文件

vi /etc/profile

在该文件末尾添加下面的配置信息

#set jmeter environment
JMETER_HOME=/usr/local/jmeter CLASS_PATH=$CLASS_PATH:$JMETER_HOME/lib/ext/ApacheJMeter_core.jar:$JMETER_HOM E/lib/jorphan.jar
PATH=$PATH:$JMETER_HOME/bin
export JMETER_HOME CLASS_PATH PATH

完成后保存文件,使用下面的命令使修改生效

source /etc/profile

验证

任意目录下,测试jmeter

jmeter -v  #查看jmeter版本

运行

执行jmeter测试任务

jmeter–n–tdemo.jmx–lreport.jtl

分布式运行

负载机

jmeter-server

问题解决:

  1. 本地ip错误
Server failed to start: java.rmi.RemoteException: Cannot start. jacky- vpc-centos is a loopback address.
An error occurred: Cannot start. jacky-vpc-centos is a loopback address.
#翻译
服务器无法启动:java.rmi.RemoteException:无法启动。 jacky-vpc-centos是回送地址。
发生错误:无法启动。 jacky-vpc-centos是回送地址。

​ 解决方案一:

​ 运行meter-server 命令时加入以下参数,指定负载机的本地ip

jmeter-server-Djava.rmi.server.hostname=172.16.1.183

​ 解决方案二:

​ 修改meter-server文件,执行命令

vi /usr/local/apache-jmeter-4.0/bin/jmeter-server

​ 修改文件内容如下:

#RMI_HOST_DEF=-Djava.rmi.server.hostname=xxx.xxx.xxx.xxx
将上面这行内容修改为
RMI_HOST_DEF=-Djava.rmi.server.hostname=172.16.1.183

​ 保存文件,重新执行命令即可

jmeter-server

  1. jmeter 4.0版本可能遇到的RMI错误Server failed to start: java.rmi.server.ExportException: Listen failed on port: 0; nested exception is: java.io.FileNotFoundException: rmi_keystore.jks (No such file or directory) An error occurred: Listen failed on port: 0; nested exception is: java.io.FileNotFoundException: rmi_keystore.jks (No such file or directory) #翻译 服务器无法启动:java.rmi.server.ExportException:在端口0上侦听失败; 嵌套的异常是: java.io.FileNotFoundException:rmi_keystore.jks(无此类文件或目录) 发生错误:端口0监听失败; 嵌套的异常是:java.io.FileNotFoundException:rmi_keystore.jks(无此类文件或 目录) ​ 解决方法一:​ 此问题是由于从4.0版本开始,RMI的默认传输机制使用SSL,SSL需要密钥和证书才能工作,所以需要自己创建中和谐密钥/usr/local/apache-jmeter-4.0/bin/create-rmi-keystore.sh ​ 按照屏幕提示填写,全部填写完成后输入Y确认。最后会在Jmeter的bin目录下自动生成 rmi_keystore.jks密钥文件 ​ 完成后重新执行下面命令即可jmeter-server ​ 解决方案二:​ 也可以通过修改jmeter.properties文件禁用SSL来解决vi/usr/local/apache-jmeter-4.0/bin/jmeter.properties ​ 修改内容如下#server.rmi.ssl.disable=false 将上面这行内容修改为 server.rmi.ssl.disable=true ​ 完成后重新运行jmeter-serverjmeter-server ​ 如果负载机操作系统是windows系统,还可能遇到下面的错误May 22, 2018 11:07:23 AM java.util.prefs.WindowsPreferences <init> WARNING: Could not open/create prefs root node Software\JavaSoft\Prefs at root 0x80000002. Windows RefCreateKeyEx(...) returned error code 5. Created remote object: UnicastServerRef2 [liveRef: [endpoint: [192.168.1.176:51382] (local),objID:[-5bc7fd7d:16385d0cd81:-7fff, 3855421039843900718]]] #翻译 2018年5月22日,上午11:07:23 java.util.prefs.WindowsPreferences <init>警告:无法在根0x80000002处打开/创建prefs根节点Software \ JavaSoft \ Prefs。 Windows RefCreateKeyEx(...)返回了错误代码5。创建的远程对象:UnicastServerRef2 [liveRef:[端点:[192.168.1.176:51382] (本地),objID:[-5bc7fd7d:16385d0cd81:-7fff,3855421039843900718]]]] ​ 错误原因:​ Jmeter未注册表项​ 解决方案:​ 以系统管理员身份运行程序的时候会自动创建注册表相关项,所以用管理 员身份运行jmeter- server.bat即可。 主控机两种方式​ 1. 修改jmeter.properties文件​ 在“remote_hosts”关键字后面加上远程jmeter负载机的ip即可,ip之间用 逗号隔开remote_hosts=172.16.1.101,172.16.1.102,172.16.1.103
  1. 命令行直接带参数方式
    Jmeter–n–t/opt/test.jmx–l/opt/test.jtl–R 192.168.1.100:1099,192.168.1.101:1099 –X