@[TOC](『Jmeter超级干货』| Linux下Jmeter装置装备、脚本规划履行、监控及陈述完好进程)

留意: 1、之前写过一个是windows渠道的,本文是Linux渠道的; 2、别的需求留意的是,本文仅为示例进程,所以将客户端和服务器都用在同一台机器上。一般情况下不主张这么做,会影响功能成果的准确性。

1 JDK装置布置

1.1 JDK下载

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,选对应的包即可:

『Jmeter超级干货』| Linux下Jmeter装置装备、脚本规划履行、监控及陈述完好进程

1.2 JDK装备

  • 将下载的包上传到服务器:
    『Jmeter超级干货』| Linux下Jmeter装置装备、脚本规划履行、监控及陈述完好进程
  • 创立一个文件夹:
sudo mkdir /usr/local/java
  • 把压缩包放到以上目录进行解压:
    『Jmeter超级干货』| Linux下Jmeter装置装备、脚本规划履行、监控及陈述完好进程
sudo tar -zxvf jdk-21_linux-x64_bin.tar.gz
  • 解压后删去多余的其他装置包,解压后如下:
    『Jmeter超级干货』| Linux下Jmeter装置装备、脚本规划履行、监控及陈述完好进程
  • 装备环境变量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下载

2.2 Jmeter装置

  • 将下载的Jmeter上传到服务器:
    『Jmeter超级干货』| Linux下Jmeter装置装备、脚本规划履行、监控及陈述完好进程
  • 创立Jmeter目录:
mkdir jmeter_test
  • 检查装置包的权限并赋予履行权限:
    『Jmeter超级干货』| Linux下Jmeter装置装备、脚本规划履行、监控及陈述完好进程
chmod  755 apache-jmeter-5.6.2.tgz

『Jmeter超级干货』| Linux下Jmeter装置装备、脚本规划履行、监控及陈述完好进程

  • 解压到当前目录下:
tar -zxvf apache-jmeter-5.6.2.tgz

2.3 Jmeter相关目录装备

  • 解压后如下,即装置目录为:
# /home/noamanelson/jmeter_test/apache-jmeter-5.6.2

『Jmeter超级干货』| Linux下Jmeter装置装备、脚本规划履行、监控及陈述完好进程

  • 创立脚本寄存目录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发动即可:
    『Jmeter超级干货』| Linux下Jmeter装置装备、脚本规划履行、监控及陈述完好进程
    『Jmeter超级干货』| Linux下Jmeter装置装备、脚本规划履行、监控及陈述完好进程

3 Jmeter汉化

3.1 临时修正

  • 即设置后只对本次使用有用,重启后康复默许语言;
  • 挑选Options—>Choose Language—>挑选语言(例如:Chinese(Simplified)简体中文)设置成功。重启Jmeter又会康复英文;
    『Jmeter超级干货』| Linux下Jmeter装置装备、脚本规划履行、监控及陈述完好进程

3.2 永久修正

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

『Jmeter超级干货』| Linux下Jmeter装置装备、脚本规划履行、监控及陈述完好进程

  • 重启jmeter,语言设置成功。
    『Jmeter超级干货』| Linux下Jmeter装置装备、脚本规划履行、监控及陈述完好进程

4 准备测验方针

4.1 下载装置

  • 禅道官网找到Linux一键装置包:
    『Jmeter超级干货』| Linux下Jmeter装置装备、脚本规划履行、监控及陈述完好进程
  • 点击下载后,使用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

『Jmeter超级干货』| Linux下Jmeter装置装备、脚本规划履行、监控及陈述完好进程

4.2 发动服务

  • 禅道服务包括ApacheMysql,发动指令如下;
  • 发动所有服务:/opt/zbox/zbox start
    『Jmeter超级干货』| Linux下Jmeter装置装备、脚本规划履行、监控及陈述完好进程
  • 停止所有服务:/opt/zbox/zbox stop
  • 重启所有服务:/opt/zbox/zbox restart
  • 开机自动发动:以把 /opt/zbox/zbox restart 加到操作系统的自启目录。

4.3 拜访测验方针

  • 禅道装置完并发动服务后,直接浏览器输入:
http://禅道服务器ip:apache端口。

特别留意:这里需求敞开几个端口:

『Jmeter超级干货』| Linux下Jmeter装置装备、脚本规划履行、监控及陈述完好进程
1、sudo ufw status检查敞开的端口:
『Jmeter超级干货』| Linux下Jmeter装置装备、脚本规划履行、监控及陈述完好进程
2、敞开需求的端口:sudo ufw allow 端口
『Jmeter超级干货』| Linux下Jmeter装置装备、脚本规划履行、监控及陈述完好进程
『Jmeter超级干货』| Linux下Jmeter装置装备、脚本规划履行、监控及陈述完好进程

4.4 留意事项

  • 假如网页无法拜访,请先关闭禅道地点电脑的防火墙和selinux再改写网页拜访试一下;
  • 使用云服务器请留意在安全组中敞开apache使用端口;
  • 禅道默许办理员帐号是 admin,暗码 123456;
  • 初度登陆请修正暗码:
    『Jmeter超级干货』| Linux下Jmeter装置装备、脚本规划履行、监控及陈述完好进程

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端口 点击“数据库办理”:
    『Jmeter超级干货』| Linux下Jmeter装置装备、脚本规划履行、监控及陈述完好进程
  • 输入用户名和暗码:
    『Jmeter超级干货』| Linux下Jmeter装置装备、脚本规划履行、监控及陈述完好进程
  • 网页直接显现登录界面:
    『Jmeter超级干货』| Linux下Jmeter装置装备、脚本规划履行、监控及陈述完好进程

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信息头办理器,如下:
    『Jmeter超级干货』| Linux下Jmeter装置装备、脚本规划履行、监控及陈述完好进程
    『Jmeter超级干货』| Linux下Jmeter装置装备、脚本规划履行、监控及陈述完好进程

7.2 增加http恳求默许值

  • 测验方案-右键-增加-装备元件-HTTP恳求默许值,如下:
    『Jmeter超级干货』| Linux下Jmeter装置装备、脚本规划履行、监控及陈述完好进程
    『Jmeter超级干货』| Linux下Jmeter装置装备、脚本规划履行、监控及陈述完好进程

7.3 增加线程

  • 测验方案-右键-增加-线程(用户)-线程组,如下:
    『Jmeter超级干货』| Linux下Jmeter装置装备、脚本规划履行、监控及陈述完好进程
    『Jmeter超级干货』| Linux下Jmeter装置装备、脚本规划履行、监控及陈述完好进程

7.4 增加http恳求

  • 线程组-右键-增加-取样器-http恳求,如下:
    『Jmeter超级干货』| Linux下Jmeter装置装备、脚本规划履行、监控及陈述完好进程
    『Jmeter超级干货』| Linux下Jmeter装置装备、脚本规划履行、监控及陈述完好进程

7.5 增加检查成果树

  • 测验方案-右键-增加-监听器-检查成果树,如下:
    『Jmeter超级干货』| Linux下Jmeter装置装备、脚本规划履行、监控及陈述完好进程

7.6 运转调试

  • 点击运转按钮,检查回来数据是否ok,如下:
    『Jmeter超级干货』| Linux下Jmeter装置装备、脚本规划履行、监控及陈述完好进程
    『Jmeter超级干货』| Linux下Jmeter装置装备、脚本规划履行、监控及陈述完好进程
    『Jmeter超级干货』| Linux下Jmeter装置装备、脚本规划履行、监控及陈述完好进程

8 装置jmeter-plugins-manager插件

8.1 jmeter-plugins-manager包装备

  • 能够通过在jmeter客户端集成jmeter-plugins-manager插件,在服务端布置插件serverAgent来实时监控被压测服务器的功能;
  • 下载插件办理包:
    『Jmeter超级干货』| Linux下Jmeter装置装备、脚本规划履行、监控及陈述完好进程
  • 放置到jmeter的装置目录libext下:
    『Jmeter超级干货』| Linux下Jmeter装置装备、脚本规划履行、监控及陈述完好进程

8.2 下载PerfMon插件并使用

  • 重启Jmeter,点击选项-插件办理器:
    『Jmeter超级干货』| Linux下Jmeter装置装备、脚本规划履行、监控及陈述完好进程
  • PerfMon(Servers Performance Monitoring)选项,点击右下角的Apply Changes and Restart JMeter按钮使用:
    『Jmeter超级干货』| Linux下Jmeter装置装备、脚本规划履行、监控及陈述完好进程
  • 装置完后如下:
    『Jmeter超级干货』| Linux下Jmeter装置装备、脚本规划履行、监控及陈述完好进程

8.3 增加PerfMon监听器

  • 测验方案-右键-增加-监听器-jp@gc-PerfMon Metrics Collector,如下:
    『Jmeter超级干货』| Linux下Jmeter装置装备、脚本规划履行、监控及陈述完好进程

9 服务端装备ServerAgent

9. 1下载ServerAgent

9.2装备ServerAgent

  • 下载后上传到linux上,并解压:
sudo unzip ServerAgent-2.2.3.zi
  • 进入到解压目录ServerAgent-2.2.3下,直接运转./startAgent.sh 发动;
    『Jmeter超级干货』| Linux下Jmeter装置装备、脚本规划履行、监控及陈述完好进程

特别留意: 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等):
    『Jmeter超级干货』| Linux下Jmeter装置装备、脚本规划履行、监控及陈述完好进程

11 GUI方式运转

  • 直接运转脚本即可:
    『Jmeter超级干货』| Linux下Jmeter装置装备、脚本规划履行、监控及陈述完好进程

12 非GUI运转

  • 功能测验时主张使用这种方式能够提高功能;
  • 这种办法运转时将监控数据输出到指定文件,文件必修是.jtl结束;

12.1 装置jmeter-plugins-cmd插件

  • 在插件办理器中勾选如图即可:
    『Jmeter超级干货』| Linux下Jmeter装置装备、脚本规划履行、监控及陈述完好进程

12.2 指令行发动功能脚本

  • 咱们之前已经创立了脚本、陈述等的寄存途径:
    『Jmeter超级干货』| Linux下Jmeter装置装备、脚本规划履行、监控及陈述完好进程
# /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

『Jmeter超级干货』| Linux下Jmeter装置装备、脚本规划履行、监控及陈述完好进程
『Jmeter超级干货』| Linux下Jmeter装置装备、脚本规划履行、监控及陈述完好进程

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文件;
    『Jmeter超级干货』| Linux下Jmeter装置装备、脚本规划履行、监控及陈述完好进程
  • JMeterPluginsCMD.sh文件在/home/noamanelson/jmeter_test/apache-jmeter-5.6.2/bin目录下:
    『Jmeter超级干货』| Linux下Jmeter装置装备、脚本规划履行、监控及陈述完好进程
  • 修正为cmdrunner-2.3.jar
    『Jmeter超级干货』| Linux下Jmeter装置装备、脚本规划履行、监控及陈述完好进程
  • 完好的履行指令如下:
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

『Jmeter超级干货』| Linux下Jmeter装置装备、脚本规划履行、监控及陈述完好进程

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
  • 生成后如下:
    『Jmeter超级干货』| Linux下Jmeter装置装备、脚本规划履行、监控及陈述完好进程