0


Linux安装JMeter进行压力测试

最近在做性能测试,性能测试方案中要求使用Linux服务器做压力机,压力发起工具使用JMeter,所以需要在Linux中安装JMeter。

准备

Jmeter是Java开发的,需要依赖JDK环境,因此我们需提前安装好JDK。

CentOS 7.3 64位
JDK 1.8

一、Linux服务器安装配置JDK

准备工作:

1.登录服务器,切换到root用户(su - root,然后输入密码,按enter),进入根目录:cd /

2.进入要安装jdk的目录,自己可以创建一个java目录,执行命令如下:

cd /usr/local/

mkdir java

下载安装包

1.打开官网下载界面:Java Downloads | Oracle

2.下载安装包,如下图:

下载完成后如下图:

要下载和自己系统匹配的包,在linux根目录下执行 cat /proc/version,结果如下图:

将下载的包上传到linux

有2种方式:

方式一:使用FTP上传,下载Xftp后连接服务器即可。

方式二:yum 安装rz sz,linux上执行yum install lrzsz即可安装成功,在/usr/local/java下执行rz,按Enter键,在弹出窗口中选择下载的安装包,点击打开即可上传,只要等待上传完成即可,这种方式相对方式一比较慢,如果有FTP工具,建议使用FTP工具上传。

解压包

tar -xzvf jdk-8u221-linux-x64.tar.gz

配置环境变量

执行cd /,进入根目录

执行vim /etc/profile,按 i 键,在文末添加如下内容后,按ESC键,输入:wq保存并退出。

JAVA_HOME=/usr/local/java/jdk1.8.0_221
CLASSPATH=$JAVA_HOME/lib/
PATH=$PATH:$JAVA_HOME/bin
export PATH JAVA_HOME CLASSPATH

截图如下:

使JDK生效,重启服务器或使配置文件生效

重启服务器:执行 reboot 命令或 sudo shutdown -r now

不重启使配置文件生效:执行命令source /etc/profile

检查JDK是否生效

执行java -version,显示如下图即表示安装成功。

遇到的问题

执行java -verison时显示安装的jdk版本是openjdk,可以执行以下操作将openjdk移除。

rpm -qa|grep java  #查看java包

执行删除Openjdk操作。

rpm -e --nodeps java-1.7.0-openjdk-headless-1.7.0.261-2.6.22.2.el7_8.x86_64

再次查看使用的是那个jdk版本,显示如下则表示使用的是上面手动安装的jdk。

注意:使用rpm -qa|grep java查询java包时,会有多个openjdk-headless的版本,需要将所有openjdk移除才行。

二、JMeter下载安装

Jmeter是Java开发的,需要依赖JDK环境,因此我们需提前安装好JDK。

Jmeter是开源的工具,我们直接到官网下载即可,本次安装的版本是 **

5.1.1

**。

最新版本下载地址:Apache JMeter - Download Apache JMeter
历史版本下载地址:Index of /dist/jmeter/binaries

下载后缀为 **

.tgz

** 或 **

.zip

** 都是可以的,我们可以在Linux通过 **

wget

** 命令下载Jmeter安装包,或者下载后再传到Linux。

我这里下载的安装包版本是 **

apache-jmeter-5.2.1.tgz

**。

安装JMeter

#新建jmeter文件夹
mkdir jmeter
#下载安装文件 或 上传已下载好的文件到jmeter目录下
wget https://archive.apache.org/dist/jmeter/binaries/apache-jmeter-5.2.1.tgz
#解压文件
tar -xzvf apache-jmeter-5.2.1.tgz

本次解压的目录为:usr/local/jmeter/apache-jmeter-5.2.1

配置环境

#配置启动参数
#打开配置文件
vim /etc/profile
#将下列代码复制到文件的最后
export JMETER_HOME=/usr/local/jmeter/apache-jmeter-5.2.1
export PATH=${JMETER_HOME}/bin:$PATH

添加好后保存,执行source /etc/profile,重新加载配置文件。最后,通过jmeter --version查看安装的Jmeter版本,验证安装成功。

到这里,Jmeter已经安装完成,可以开始使用了!

三、Linux中使用JMeter进行压测

  1. 在windows系统中设置好压测场景和数据,保存到jmx文件中。

  1. 将jmx文件上传到服务器jmeter的bin目录下。

  1. 执行压测命令:
./jmeter.sh -n -t test.jmx -l result02.jtl

压测遇到的问题:

问题1:

在进行压力测试时,为了降低网络带宽对响应时间的影响,通常高并发时会采用在Windows上使用JMeter编写好测试脚本-xxx.jmx;将脚本上传到相同局域网的Linux服务器,使用JMeter对应命令进行压力测试的方法。测试有时会遇到如下报错:

Error in NonGUIDriver java.lang.IllegalStateException: Could not find the TestPlan class!

问题原因:

保存测试脚本时只保存了Testplan下的部分节点,导致生成的测试脚本只是“testplan”下面的某些元素,,不包括需要运行测试所需的“TestPlan”元素。

解决方案:

在保存测试脚本时,保存整个测试计划,以下两种方式保存测试脚本,可以避免上述报错产生。

1.在文件菜单中单击“保存测试计划”或“保存测试计划为”选项。

2.鼠标选中测试计划节点,直接点击工具栏上的“保存测试计划”按钮。

问题2:

执行 jmeter -n -t xxx.jmx -l result.jtl时,提示如下错误:

Error in NonGUIDriver java.lang.IllegalArgumentException: Problem loading XML from:'/usr/local/jmeter/apache-jmeter-5.2.1/bin/客户权益账单查询.jmx'.
Cause:
CannotResolveClassException: kg.apc.jmeter.threads.SteppingThreadGroup

Detail:com.thoughtworks.xstream.converters.ConversionException:
---- Debugging information ----
cause-exception : com.thoughtworks.xstream.converters.ConversionException
cause-message :
first-jmeter-class : org.apache.jmeter.save.converters.HashTreeConverter.unmarshal(HashTreeConverter.java:67)
class : org.apache.jmeter.save.ScriptWrapper
required-type : org.apache.jmeter.save.ScriptWrapper
converter-type : org.apache.jmeter.save.ScriptWrapperConverter
path : /jmeterTestPlan/hashTree/hashTree/kg.apc.jmeter.threads.SteppingThreadGroup
line number : 881
version : 5.2.1
-------------------------------
An error occurred: Error in NonGUIDriver Problem loading XML from:'/usr/local/jmeter/apache-jmeter-5.2.1/bin/客户权益账单查询.jmx'.
Cause:
CannotResolveClassException: kg.apc.jmeter.threads.SteppingThreadGroup

Detail:com.thoughtworks.xstream.converters.ConversionException:
---- Debugging information ----
cause-exception : com.thoughtworks.xstream.converters.ConversionException
cause-message :
first-jmeter-class : org.apache.jmeter.save.converters.HashTreeConverter.unmarshal(HashTreeConverter.java:67)
class : org.apache.jmeter.save.ScriptWrapper
required-type : org.apache.jmeter.save.ScriptWrapper
converter-type : org.apache.jmeter.save.ScriptWrapperConverter
path : /jmeterTestPlan/hashTree/hashTree/kg.apc.jmeter.threads.SteppingThreadGroup
line number : 881
version : 5.2.1
-------------------------------

原因分析:

脚本中使用了jp@gc - Stepping Thread Group,jmeter的文件中没有使用包含对应的插件包

解决办法:

上传插件包到lib/ext目录下:

上传好后再执行jmeter -n -t xxx.jmx result.jtl,便能成功执行。

问题3:

执行jmeter -n -t xxx.jmx -l result.jtl时,报下面错误:

java.lang.IllegalArgumentException: File Realtimequeryofrights.txt must exist and be readable

原因分析:在windows中使用jmeter时,参数脚本路径是绝对路径,比如D:\apache-jmeter-5.2.1\bin,但是在Linux中这个路径是找不到的。

解决办法:

用windows打开jmeter的脚本,自定义2个变量,分别为path_win和path_linux,然后将路径填充进去,当使用windows来跑脚本时,需要在CSV数据文件设置参数路径为${path_win},但要去Linux跑脚本时,需要改成${path_linux}。


本文转载自: https://blog.csdn.net/qq_35029061/article/details/125948464
版权归原作者 wespten 所有, 如有侵权,请联系我们删除。

“Linux安装JMeter进行压力测试”的评论:

还没有评论