本文的主要内容是介绍如何在Linux CentOS 服务器上面搭建Jmeter的压测环境整个详细的流程,来满足我们日常工作中对于压力测试环境搭建、压力测试执行过程的需求。
一、首先我们要准备四个东西,在搭建环境的时候需要使用到
1、Xshell、puTTy等终端连接工具(本文教程使用Xshell)
Xshell用于连接Linux CentOS 服务器,为我们提供操作服务器的可视化界面,如何连接服务器本文不做赘述,如果有需要请自行联网搜索,网上教程很多。连接成功如下:
2、 Jmeter压缩安装包
Jmeter的压缩包需要自己去Jmeter的官网进行下载,由于是在centos环境下,所以我们下载tgz格式的压缩包就可以了,本文使用Jmeter 5.2.1进行演示:https://jmeter.apache.org/download_jmeter.cgi
3、 jmeter-plugins-manager-1.4.jar 插件,地址:https://jmeter-plugins.org/install/Install/,直接浏览器访问就可以下载了
4、 一台用于执行的服务器
需要注意的是,在实际工作中,一般情况下会有两台服务器,一台目标服务器(也可以称为生产服务器)被用于压测,一台压测服务器用于执行压测脚本
二、在进行Jmeter安装之前我们需要先安装JDK,为Jmeter提供运行环境,安装步骤如下:
1、首先检查是否安装了JDK:java -version
以下是未安装的情况,如果安装JDK需要按照Jmeter官网的建议安装Java8及以上的版本
以下是已经安装的情况:
2、查看Linux系统版本:【more /proc/version】、【uname -a】、【uname -r】、【lsb_release -a】,以上的命令任一 一个即可。查看版本的目的主要是查看我们的系统是64位还是32位的,我们需要安装对应版本的Java
我的服务器是64位,所以我对应安装64位的JDK就可以了
1、 使用前端软件包管理器Yellow dog Updater, Modified提供的JDK安装包,直接安装JDK:
l 列出所有可安装的Java软件包 :【yum list java*】
从结果可以看出我们可以安装软件包管理器提供的Java1.6,Java1.8,Java11版本,其中我们选择安装版本Java8即可
l 安装Java1.8.0版本:【yum -y install java-1.8.0-openjdk*】
注意:【jdk和*通配符之间不能敲空格,有空格不能匹配所有的子文件】【安装过程中需要等待它执行完成,不要中途中断,中断后可能出现错误,出现错误可以尝试卸载Java后重新安装】
l 安装JDK后查看是否安装成功(查看Java版本):【java -version】
优势:使用以上方法安装的JDK不用配置环境变量,JDK1.8以上的版本不需要配置运行环境
三、在Linux CentOS系统安装Jmeter
1、选择你需要放置Jmeter压缩包的文件夹:cd /usr/local/codes
通过以下方法可以查看自己服务器上是否存在以上文件夹:
l 执行命令进入目录:cd /usr/local/
(命令:cd / 进入根目录)
l 查看根目录下面所有文件夹:ls -l
发现没有codes文件夹,表明我的服务器下不存在codes文件夹
l 在/usr/local下新建一个codes目录用来存放Jmeter有关文件:mkdir codes
l 查看local下的目录:ls -l
l 已经新增codes文件夹成功【注意需要在local文件夹下执行,其他的文件夹下执行该命令的不会在local下新增】
注意:【建议将Jmeter放置在 /usr/local下,这文件夹是用于安装各项应用文件的;Jmeter是免安装的,我们只需要将Jmeter解压到一个目录下面,并根据这个目录配置环境变量即可】
2、上传Jmeter压缩包并解压Jmeter压缩包
l 进入codes目录:cd /usr/local/codes
l 查看Linux主机是否安装了lrzsz(用于Windows上传文件到Linux上),输入命令【任一目录均可以】:rz
l 找不到lrzsz,就需要先安装(同样使用软件包管理器),执行:yum -y install lrzsz
检查安装是否成功:rpm -qa lrzsz
l 安装成功后,上传文件:rz
l 上传文件-弹出窗-选择Windows本地的压缩文件【apache-jmeter-5.2.1.tgz】-上传完成弹窗关闭
l 上传完成后在codes文件夹下检查是否成功:ls -l
l 在codes目录下解压Jmeter压缩包:tar zxvf apache-jmeter-5.2.1.tgz
l 查看解压后的目录显示:ls –l
蓝色的为解压后的文件夹,红色的为上传的压缩包
3、配置Jmeter环境变量
l 进入etc目录:cd /etc/
l 打开profile文件进行编辑:vim profile
l 将以下内容复制到空白处:
export JMETER_HOME=/usr/local/codes/apache-jmeter-5.2.1
export CLASSPATH=$JMETER_HOME/lib/ext/ApacheJMeter_core.jar:$JMETER_HOME/lib/jorphan.jar:$CLASSPATH
export PATH=$JMETER_HOME/bin:$PATH:$HOME
【注意:粘贴时需要谨慎,检查单词是否完成,粘贴路径是否正确等,保证配置的正确。】
l 按下键盘【esc】键退出
l 按了esc键后输入:【:wq】再按下【enter】键,保存并退出
l 刷新保存环境变量,使配置文件生效:source /etc/profile
l 验证环境变量是否配置成功,显示如下界面则表示成功:jmeter -v
l 查看配置:[echo $PATH] [echo $JMETER_HOME] [echo $CLASSPATH]
显示已经配置成功
1、 安装Jmeter插件jmeter-plugins-manager
这个插件主要是用于:将Jmeter执行请求后生成的jtl文件转化为统计图,方便压测执行后数据分析,统计。
安装插件比较简单,只需要把下载好的jar包放到Jmeter的lib/ext目录下就可以了,具体步骤:
l 切换到目录:cd /usr/local/codes/apache-jmeter-5.2.1/lib/ext
l 上传本地文件【jmeter-plugins-manager-1.4】:rz
l 检查是否成功上传:ls -l
四、执行具体的压测操作
1、在/usr/local/codes下创建Jmeter目录,用于存放Jmeter脚本:mkdir jmeter
2、在/usr/local/codes下创建log目录,用于存放Jmeter脚本执行后的日志文件:mkdir log
3、上传编写好的脚本到目录Jmeter:
l 切换目录:cd /usr/local/codes/jmeter
l 上传脚本:rz 【脚本名称:测试压测.jmx】
l 在存放Jmeter脚本的文件夹下执行Jmeter脚本:jmeter -n -t 测试压测.jmx -l ../log/item.jtl
注意:【命令脚本名称与执行脚本的名称要一 一对应,尤其是空格这些要特别注意;一定要在存放Jmeter脚本的目录下执行上述命令,否则找不到Jmeter脚本】【jmeter -n -t 脚本名称 -l 存放结果日志的绝对路径或者相对路径/日志文件】
执行结果如下:
4、简单介绍数据结果各个字段含义:
l Summary:本次压测执行总的请求数(单位:次)
l Avg:所有请求数的平均响应时长(单位:ms)
l Min:所有请求中响应时长最短的请求(单位:ms)
Max:所有请求中响应时长最长的请求(单位:ms)
l Err:本次压测执行后的错误率
l Active:请求活跃数
l Finished:已结束的请求
5、导出报告,步骤如下:
l 先进入日志存放的目录:cd /usr/local/codes/log
l 将已经生成的日志转化为HTML报告:jmeter -g item.jtl -o /usr/local/codes/log/item
【注意:/usr/local/codes/log这个地方可以写绝对路径也可以写相对路径,如果不确定自己写的相对路径是否正确,就写绝对路径就行了】、【如果每次导出报告想要导出单次压测的数据而不是多次压测数据的总和的话,需要在每次执行导出报告后将log文件夹里面的压测数据清空,使用命令[rm -rf *],使用该命令的时候尤其要小心,需要到/usr/local/codes/log文件夹下执行,不能随意执行】
l 将item.jtl文件压缩成item.tar.gz文件:tar zcvf item.tar.gz item
l 把已经生成的报告文件导出,放到Windows任一(桌面 )路径即可: sz item.tar.gz
l 解压桌面文件并打开压缩包里面的index.html 文件:
index.html文件里面详细记录了压测后的请求总数,响应时长,error率,error数,error原因等各项数据,可以用于压测结果分析。
注意:【如果遇到导出的文件解压后会出现不能打开的情况,如下图。这种情况下可以使用,直接用解压软件打开压缩包,在压缩包里面点击下图的文件,就可以打开并查看index.html文件了】
至此我们的Jmeter压测环境便已经搭建完成,在搭建的过程中会有各种问题,所以希望读者在实际操作的时候多加细心,慢慢处理每一个步骤。希望以上内容对大家有用,谢谢。