『Jmeter超级干货』| Linux下Jmeter安装配置、脚本设计执行、监控及报告完整过程

CSDN 2024-06-29 12:07:03 阅读 80

『Jmeter超级干货』| Linux下Jmeter安装配置、脚本设计执行、监控及报告完整过程

1 JDK安装部署1.1 JDK下载1.2 JDK配置

2 Jmeter安装部署2.1 Jmeter下载2.2 Jmeter安装2.3 Jmeter相关目录配置2.4 Jmeter启动配置2.5 检查并启动

3 Jmeter汉化3.1 临时修改3.2 永久修改

4 准备测试对象4.1 下载安装4.2 启动服务4.3 访问测试对象4.4 注意事项4.5 其他参数4.6 网页登录数据库

5 测试数据6 测试目标7 脚本设计7.1 添加http信息头管理器7.2 添加http请求默认值7.3 添加线程组7.4 添加http请求7.5 添加查看结果树7.6 运行调试

8 安装jmeter-plugins-manager插件8.1 jmeter-plugins-manager包配置8.2 下载PerfMon插件并应用8.3 添加PerfMon监听器

9 服务端配置ServerAgent9. 1下载ServerAgent9.2配置ServerAgent

10 Jmeter配置监控指标11 GUI方式运行12 非GUI运行12.1 安装jmeter-plugins-cmd插件12.2 命令行启动性能脚本

13 报告查看14 命令行生成监控图片15 命令行生成csv文件

注意:

1、之前写过一个是windows平台的,本文是Linux平台的;

2、另外需要注意的是,本文仅为示例过程,所以将客户端和服务器都用在同一台机器上。一般情况下不建议这么做,会影响性能结果的准确性。

1 JDK安装部署

1.1 JDK下载

安装地址:Java Downloads;先查看自己的系统配置:

noamanelson@noamanelson-Virtual-Machine:~$ uname -a

Linux noamanelson-Virtual-Machine 6.2.0-36-generic #37~22.04.1-Ubuntu SMP PREEMPT_DYNAMIC Mon Oct 9 15:34:04 UTC 2 x86_64 x86_64 x86_64 GNU/Linux

我的是x86_64,选对应的包即可:

在这里插入图片描述

1.2 JDK配置

将下载的包上传到服务器:

在这里插入图片描述

创建一个文件夹:

sudo mkdir /usr/local/java

把压缩包放到以上目录进行解压:

在这里插入图片描述

sudo tar -zxvf jdk-21_linux-x64_bin.tar.gz

解压后删除多余的其他安装包,解压后如下:

在这里插入图片描述

配置环境变量sudo vim /etc/profile,增加java解压后的路径即可:

export JAVA_HOME=/usr/local/java/jdk-21.0.1

export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

export PATH=$PATH:$JAVA_HOME/bin

保存后,使配置文件生效(以下方法如果不行,建议重启电脑):

source /etc/profile

使用java -version查看安装是否ok即可。

2 Jmeter安装部署

2.1 Jmeter下载

下载地址:Jmeter官网;选择文件下载:

在这里插入图片描述

2.2 Jmeter安装

将下载的Jmeter上传到服务器:

在这里插入图片描述

创建Jmeter目录:

mkdir jmeter_test

查看安装包的权限并赋予执行权限:

在这里插入图片描述

chmod +755 apache-jmeter-5.6.2.tgz

在这里插入图片描述

解压到当前目录下:

tar -zxvf apache-jmeter-5.6.2.tgz

2.3 Jmeter相关目录配置

解压后如下,即安装目录为:

# /home/noamanelson/jmeter_test/apache-jmeter-5.6.2

在这里插入图片描述

创建脚本存放目录jmeter_scirpt:

# /home/noamanelson/jmeter_test/jmeter_scirpt

mkdir jmeter_scirpt

创建报告存放目录jmeter_report

# /home/noamanelson/jmeter_test/jmeter_report

mkdir jmeter_report

创建日志存放目录jmeter_log

# /home/noamanelson/jmeter_test/jmeter_log

mkdir jmeter_log

创建结果存放目录jmeter_result

# /home/noamanelson/jmeter_test/jmeter_result

mkdir jmeter_result

2.4 Jmeter启动配置

打开配置文件sudo vim /etc/profile,最后添加如下内容:

export JMETER_HOME=/home/noamanelson/jmeter_test/apache-jmeter-5.6.2

exportCLASSPATH=${ JMETER_HOME}/lib/ext/ApacheJMeter_core.jar:${ JMETER_HOME}/lib/jorphan.jar:${ CLASSPATH}

export PATH=${ JMETER_HOME}/bin:$PATH

使得配置文件生效(以下方法如果不行,建议重启电脑):

source /etc/profile

2.5 检查并启动

输入jmeter -v,如果出现以下内容,说明安装成功了:

noamanelson@noamanelson-Virtual-Machine:~$ jmeter -v

WARN StatusConsoleListener The use of package scanning to locate plugins is deprecated and will be removed in a future release

WARN StatusConsoleListener The use of package scanning to locate plugins is deprecated and will be removed in a future release

WARN StatusConsoleListener The use of package scanning to locate plugins is deprecated and will be removed in a future release

WARN StatusConsoleListener The use of package scanning to locate plugins is deprecated and will be removed in a future release

_ ____ _ ____ _ _ _____ _ __ __ _____ _____ _____ ____

/ \ | _ \ / \ / ___| | | | ____| | | \/ | ____|_ _| ____| _ \

/ _ \ | |_) / _ \| | | |_| | _| _ | | |\/| | _| | | | _| | |_) |

/ ___ \| __/ ___ \ |___| _ | |___ | |_| | | | | |___ | | | |___| _ <

/_/ \_\_| /_/ \_\____|_| |_|_____| \___/|_| |_|_____| |_| |_____|_| \_\ 5.6.2

Copyright (c) 1999-2023 The Apache Software Foundation

输入jmeter启动即可:

在这里插入图片描述

在这里插入图片描述

3 Jmeter汉化

3.1 临时修改

即设置后只对本次使用有效,重启后恢复默认语言;选择Options—>Choose Language—>选择语言(例如:Chinese(Simplified)简体中文)设置成功。重启Jmeter又会恢复英文;

在这里插入图片描述

3.2 永久修改

即永久性设置,设置后每次打开显示的语言都是一样的;进入到Jmeterbin目录下,找到jmeter.properties文档;打开查找language,找到language=en的行如下图,将en改为zh_CN,并且去掉前面的#号,保存退出;

vim jmeter.properties

在这里插入图片描述

重启jmeter,语言设置成功。

在这里插入图片描述

4 准备测试对象

4.1 下载安装

禅道官网找到Linux一键安装包:

在这里插入图片描述

点击下载后,使用xftp上传到ubuntu上;把上传到ubuntu上的禅道安装包复制到/opt目录下:

sudo cp ZenTaoPMS-18.8-zbox_amd64.tar.gz /opt/

将安装包直接解压到/opt目录下:

sudo tar -zxvf ZenTaoPMS-18.8-zbox_amd64.tar.gz

在这里插入图片描述

4.2 启动服务

禅道服务包括ApacheMysql,启动命令如下;启动所有服务:/opt/zbox/zbox start

在这里插入图片描述

停止所有服务:/opt/zbox/zbox stop;重启所有服务:/opt/zbox/zbox restart;开机自动启动:以把 /opt/zbox/zbox restart 加到操作系统的自启目录。

4.3 访问测试对象

禅道安装完并启动服务后,直接浏览器输入:

http://禅道服务器ip:apache端口。

特别注意:这里需要开放几个端口:

在这里插入图片描述

1、sudo ufw status查看开放的端口:

在这里插入图片描述

2、开放需要的端口:sudo ufw allow 端口

在这里插入图片描述

这里是引用

4.4 注意事项

如果网页无法访问,请先关闭禅道所在电脑的防火墙和selinux再刷新网页访问试一下;使用云服务器请注意在安全组中开放apache使用端口;禅道默认管理员帐号是 admin,密码 123456;初次登陆请修改密码:

在这里插入图片描述

4.5 其他参数

如果不加任何参数执行 /opt/zbox/zbox 会打印输出命令可用参数:Usage: ./zbox {start|stop|status} [--aport=8080] [--mport=3307]

–aport参数 可以修改Apache的端口

–mport参数 可以修改Mysql的端口

4.6 网页登录数据库

禅道数据库管理用的是adminer,但是为了安全,访问adminer的时候需要身份验证,需要运行 sudo /opt/zbox/auth/adduser.sh来添加用户,如下命令:

# 进入脚本目录

cd /opt/zbox/auth

# 执行添加用户的脚本

bash adduser.sh

This tool is used to add user to access adminer

Account: admin # 输入用户名

Password: # 输入密码

Adding password for user admin

打开浏览器,输入 http://禅道服务的ip:apache端口 点击“数据库管理”:

在这里插入图片描述

输入用户名和密码:

在这里插入图片描述

网页直接显示登录界面:

在这里插入图片描述

1、系 统:默认选择MySQL。

2、服务器:127.0.0.1:MySQL端口

(MySQL端口启用的是3306,那么就填写127.0.0.1:3306。

注意:ip只能写127.0.0.1)

3、用户名:root(禅道默认的数据库用户名是root) 密 码:123456(禅道默认的数据库密码是123456) 数据库:zentao。

5 测试数据

将以下数据中的地址、用户名等参数改为自己的即可:

# 请求地址:

http://172.26.132.77:80/zentao/api.php/v1/tokens

# 请求方式:

POST

# 请求参数:

{ "account": "admin", "password": "123456"}

6 测试目标

使用登陆接口,对登陆接口进行压测;并发20,持续时间为5分钟。

7 脚本设计

7.1 添加http信息头管理器

测试计划-右键-添加-配置元件-HTTP信息头管理器,如下:

在这里插入图片描述

在这里插入图片描述

7.2 添加http请求默认值

测试计划-右键-添加-配置元件-HTTP请求默认值,如下:

在这里插入图片描述

在这里插入图片描述

7.3 添加线程组

测试计划-右键-添加-线程(用户)-线程组,如下:

在这里插入图片描述

在这里插入图片描述

7.4 添加http请求

线程组-右键-添加-取样器-http请求,如下:

在这里插入图片描述

在这里插入图片描述

7.5 添加查看结果树

测试计划-右键-添加-监听器-查看结果树,如下:

在这里插入图片描述

7.6 运行调试

点击运行按钮,查看返回数据是否ok,如下:

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

8 安装jmeter-plugins-manager插件

8.1 jmeter-plugins-manager包配置

可以通过在jmeter客户端集成jmeter-plugins-manager插件,在服务端部署插件serverAgent来实时监控被压测服务器的性能;下载插件管理包:

在这里插入图片描述

放置到jmeter的安装目录lib\ext下:

在这里插入图片描述

8.2 下载PerfMon插件并应用

重启Jmeter,点击选项-插件管理器:

在这里插入图片描述

PerfMon(Servers Performance Monitoring)选项,点击右下角的Apply Changes and Restart JMeter按钮应用:

在这里插入图片描述

安装完后如下:

在这里插入图片描述

8.3 添加PerfMon监听器

测试计划-右键-添加-监听器-jp@gc-PerfMon Metrics Collector,如下:

在这里插入图片描述

9 服务端配置ServerAgent

9. 1下载ServerAgent

下载ServerAgent-2.2.3.zip,下载官网地址;

在这里插入图片描述

9.2配置ServerAgent

下载后上传到linux上,并解压:

sudo unzip ServerAgent-2.2.3.zi

进入到解压目录ServerAgent-2.2.3下,直接运行./startAgent.sh 启动;

在这里插入图片描述

特别注意:

1、默认启动端口为4444;

2、也可以使用命令指定端口启动(例如将指定TCP为5678,UDP指定为6789):./startAgent.sh --tcp-port 5678--udp-port 6789--sysinfo

3、建议将此脚本写成shell脚本,授权chmod -R 777 XXX 之后下次直接启动脚本程序。

4、如果提示无法连接到4444端口,需要开放4444端口:sudo ufw allow 4444

10 Jmeter配置监控指标

jp@gc-PerfMon Metrics Collector上进行指标选择;点击AddRow,然后在host的地方添加需要监控的服务器的主机域名或者IP,port填写端口,Metric to collect下拉选择监控的指标(CPU、Memory、Swap、Disks I/O、Network I/O等):

在这里插入图片描述

11 GUI方式运行

直接运行脚本即可:

在这里插入图片描述

12 非GUI运行

性能测试时建议使用这种方式可以提升性能;这种方法运行时将监控数据输出到指定文件,文件必修是.jtl结尾;

12.1 安装jmeter-plugins-cmd插件

在插件管理器中勾选如图即可:

在这里插入图片描述

12.2 命令行启动性能脚本

我们之前已经创建了脚本、报告等的存放路径:

在这里插入图片描述

# /home/noamanelson/jmeter_test/jmeter_scirpt # 脚本路径

# /home/noamanelson/jmeter_test/jmeter_report # 报告路径

# /home/noamanelson/jmeter_test/jmeter_log # 日志路径

# /home/noamanelson/jmeter_test/jmeter_result # 结果路径

命令行执行脚本命令为:

jmeter -n -t 脚本路径 -l jtl数据文件路径 -e -o 测试报告存放路径

创建示例:

jmeter -n -t \

./jmeter_scirpt/test_login.jmx -l \

./jmeter_result/test_login.jtl -e -o \

./jmeter_report/

Creating summariser <summary>

Created the tree successfully using ./jmeter_scirpt/test_login.jmx

Starting standalone test @ 2023 Nov 30 16:15:44 CST (1701332144880)

Waiting for possible Shutdown/StopTestNow/HeapDump/ThreadDump message on port 4445

summary + 1133 in 00:00:15 = 76.4/s Avg: 247 Min: 62 Max: 3045 Err: 0 (0.00%) Active: 20 Started: 20 Finished: 0

summary + 2442 in 00:00:30 = 81.7/s Avg: 245 Min: 108 Max: 1383 Err: 0 (0.00%) Active: 20 Started: 20 Finished: 0

summary = 3575 in 00:00:45 = 80.0/s Avg: 245 Min: 62 Max: 3045 Err: 0 (0.00%)

summary + 2585 in 00:00:30 = 86.2/s Avg: 231 Min: 117 Max: 616 Err: 0 (0.00%) Active: 20 Started: 20 Finished: 0

summary = 6160 in 00:01:15 = 82.4/s Avg: 240 Min: 62 Max: 3045 Err: 0 (0.00%)

summary + 2509 in 00:00:30 = 83.6/s Avg: 238 Min: 97 Max: 1172 Err: 0 (0.00%) Active: 20 Started: 20 Finished: 0

summary = 8669 in 00:01:45 = 82.8/s Avg: 239 Min: 62 Max: 3045 Err: 0 (0.00%)

summary + 2644 in 00:00:30 = 88.0/s Avg: 227 Min: 92 Max: 826 Err: 0 (0.00%) Active: 20 Started: 20 Finished: 0

summary = 11313 in 00:02:15 = 84.0/s Avg: 236 Min: 62 Max: 3045 Err: 0 (0.00%)

summary + 2606 in 00:00:30 = 87.0/s Avg: 229 Min: 101 Max: 985 Err: 0 (0.00%) Active: 20 Started: 20 Finished: 0

summary = 13919 in 00:02:45 = 84.5/s Avg: 235 Min: 62 Max: 3045 Err: 0 (0.00%)

summary + 2656 in 00:00:30 = 88.5/s Avg: 226 Min: 110 Max: 1042 Err: 0 (0.00%) Active: 20 Started: 20 Finished: 0

summary = 16575 in 00:03:15 = 85.1/s Avg: 233 Min: 62 Max: 3045 Err: 0 (0.00%)

summary + 2656 in 00:00:30 = 88.5/s Avg: 225 Min: 113 Max: 1199 Err: 0 (0.00%) Active: 20 Started: 20 Finished: 0

summary = 19231 in 00:03:45 = 85.6/s Avg: 232 Min: 62 Max: 3045 Err: 0 (0.00%)

summary + 2724 in 00:00:30 = 90.8/s Avg: 220 Min: 108 Max: 1299 Err: 0 (0.00%) Active: 20 Started: 20 Finished: 0

summary = 21955 in 00:04:15 = 86.2/s Avg: 231 Min: 62 Max: 3045 Err: 0 (0.00%)

summary + 2676 in 00:00:30 = 89.2/s Avg: 223 Min: 88 Max: 1357 Err: 0 (0.00%) Active: 20 Started: 20 Finished: 0

summary = 24631 in 00:04:45 = 86.5/s Avg: 230 Min: 62 Max: 3045 Err: 0 (0.00%)

summary + 1407 in 00:00:16 = 90.6/s Avg: 221 Min: 127 Max: 1441 Err: 0 (0.00%) Active: 0 Started: 20 Finished: 20

summary = 26038 in 00:05:00 = 86.7/s Avg: 230 Min: 62 Max: 3045 Err: 0 (0.00%)

Tidying up ... @ 2023 Nov 30 16:20:45 CST (1701332445534)

... end of run

13 报告查看

打开报告存放路径,比如:

/home/noamanelson/jmeter_test/jmeter_report

在这里插入图片描述

在这里插入图片描述

14 命令行生成监控图片

新建存放图片的路径,比如mkdir jmeter_picture:

/home/noamanelson/jmeter_test/jmeter_picture

命令行先执行JMeterPluginsCMD.sh,看下这个命令有没有问题:

$ JMeterPluginsCMD.sh

Error: Unable to access jarfile /home/noamanelson/jmeter_test/apache-jmeter-5.6.2/bin/../lib/cmdrunner-2.2.jar

发现这个文件找不到,我们看下图片中的/home/noamanelson/jmeter_test/apache-jmeter-5.6.2/bin/../lib/cmdrunner-2.2.jar中的文件是否存在:

/home/noamanelson/jmeter_test/apache-jmeter-5.6.2/lib

结果发现是cmdrunner-2.3.jar而不是cmdrunner-2.2.jar,则需要修改JMeterPluginsCMD.sh文件;

在这里插入图片描述

JMeterPluginsCMD.sh文件在/home/noamanelson/jmeter_test/apache-jmeter-5.6.2/bin目录下:

在这里插入图片描述

修改为cmdrunner-2.3.jar

在这里插入图片描述

完整的执行命令如下:

JMeterPluginsCMD.sh --generate-png 存放图片的路径 --input-jtl jtl数据文件路径 --plugin-type PerfMon --width 图片宽度 --height 图片高度

示例如下:

JMeterPluginsCMD.sh \

--generate-png ./jmeter_picture/test_login.png \

--input-jtl ./jmeter_result/test_login.jtl \

--plugin-type PerfMon --width 800 --height 600

在这里插入图片描述

15 命令行生成csv文件

创建csv文件存放路径,比如/home/noamanelson/jmeter_test/jmeter_csv :

mkdir jmeter_csv

执行的命令为:

JMeterPluginsCMD.sh --tool Reporter --generate-csv 存放csv路径 --input-jtl 存放jtl数据文件路径 --plugin-type PerfMon

示例如下:

JMeterPluginsCMD.sh \

--tool Reporter \

--generate-csv ./jmeter_csv/test_login.csv \

--input-jtl ./jmeter_result/test_login.jtl \

--plugin-type PerfMon

生成后如下:

在这里插入图片描述



声明

本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。