『Jmeter超等干货』| Linux下Jmeter安装配置、脚本设计执行、监控及陈诉完 ...

打印 上一主题 下一主题

主题 544|帖子 544|积分 1632

注意:
1、之前写过一个是windows平台的,本文是Linux平台的;
2、另外必要注意的是,本文仅为示例过程,以是将客户端和服务器都用在同一台机器上。一般情况下不建议这么做,会影响性能效果的准确性。
  1 JDK安装摆设

1.1 JDK下载



  • 安装地址:Java Downloads;
  • 先检察自己的系统配置:
  1. noamanelson@noamanelson-Virtual-Machine:~$ uname -a
  2. 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配置



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

  • 创建一个文件夹:
  1. sudo mkdir /usr/local/java
复制代码


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

  1. sudo tar -zxvf jdk-21_linux-x64_bin.tar.gz
复制代码


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

  • 配置环境变量sudo vim /etc/profile,增加java解压后的路径即可:
  1. export JAVA_HOME=/usr/local/java/jdk-21.0.1
  2. export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
  3. export PATH=$PATH:$JAVA_HOME/bin
复制代码


  • 生存后,使配置文件见效(以下方法如果不行,建议重启电脑):
  1. source /etc/profile
复制代码


  • 使用java -version检察安装是否ok即可。
2 Jmeter安装摆设

2.1 Jmeter下载



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

2.2 Jmeter安装



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

  • 创建Jmeter目录:
  1. mkdir jmeter_test
复制代码


  • 检察安装包的权限并赋予执行权限:

  1. chmod +755 apache-jmeter-5.6.2.tgz
复制代码



  • 解压到当前目录下:
  1. tar -zxvf apache-jmeter-5.6.2.tgz
复制代码
2.3 Jmeter干系目录配置



  • 解压后如下,即安装目录为:
  1. # /home/noamanelson/jmeter_test/apache-jmeter-5.6.2
复制代码



  • 创建脚本存放目录jmeter_scirpt:
  1. # /home/noamanelson/jmeter_test/jmeter_scirpt
  2. mkdir jmeter_scirpt
复制代码


  • 创建陈诉存放目录jmeter_report:
  1. # /home/noamanelson/jmeter_test/jmeter_report
  2. mkdir jmeter_report
复制代码


  • 创建日志存放目录jmeter_log:
  1. # /home/noamanelson/jmeter_test/jmeter_log
  2. mkdir jmeter_log
复制代码


  • 创建效果存放目录jmeter_result:
  1. # /home/noamanelson/jmeter_test/jmeter_result
  2. mkdir jmeter_result
复制代码
2.4 Jmeter启动配置



  • 打开配置文件sudo vim /etc/profile,末了添加如下内容:
  1. export JMETER_HOME=/home/noamanelson/jmeter_test/apache-jmeter-5.6.2
  2. exportCLASSPATH=${JMETER_HOME}/lib/ext/ApacheJMeter_core.jar:${JMETER_HOME}/lib/jorphan.jar:${CLASSPATH}
  3. export PATH=${JMETER_HOME}/bin:$PATH
复制代码


  • 使得配置文件见效(以下方法如果不行,建议重启电脑):
  1. source /etc/profile
复制代码
2.5 查抄并启动



  • 输入jmeter -v,如果出现以下内容,分析安装成功了:
  1. noamanelson@noamanelson-Virtual-Machine:~$ jmeter -v
  2. WARN StatusConsoleListener The use of package scanning to locate plugins is deprecated and will be removed in a future release
  3. WARN StatusConsoleListener The use of package scanning to locate plugins is deprecated and will be removed in a future release
  4. WARN StatusConsoleListener The use of package scanning to locate plugins is deprecated and will be removed in a future release
  5. WARN StatusConsoleListener The use of package scanning to locate plugins is deprecated and will be removed in a future release
  6.     _    ____   _    ____ _   _ _____       _ __  __ _____ _____ _____ ____
  7.    / \  |  _ \ / \  / ___| | | | ____|     | |  \/  | ____|_   _| ____|  _ \
  8.   / _ \ | |_) / _ \| |   | |_| |  _|    _  | | |\/| |  _|   | | |  _| | |_) |
  9. / ___ \|  __/ ___ \ |___|  _  | |___  | |_| | |  | | |___  | | | |___|  _ <
  10. /_/   \_\_| /_/   \_\____|_| |_|_____|  \___/|_|  |_|_____| |_| |_____|_| \_\ 5.6.2
  11. Copyright (c) 1999-2023 The Apache Software Foundation
复制代码


  • 输入jmeter启动即可:


3 Jmeter汉化

3.1 临时修改



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

3.2 永世修改



  • 即永世性设置,设置后每次打开显示的语言都是一样的;
  • 进入到Jmeter的bin目录下,找到jmeter.properties文档;
  • 打开查找language,找到language=en的行如下图,将en改为zh_CN,而且去掉前面的#号,生存退出;
  1. vim jmeter.properties
复制代码



  • 重启jmeter,语言设置成功。

4 准备测试对象

4.1 下载安装



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

  • 点击下载后,使用xftp上传到ubuntu上;
  • 把上传到ubuntu上的禅道安装包复制到/opt目录下:
  1. sudo cp ZenTaoPMS-18.8-zbox_amd64.tar.gz /opt/
复制代码


  • 将安装包直接解压到/opt目录下:
  1. sudo tar -zxvf ZenTaoPMS-18.8-zbox_amd64.tar.gz
复制代码

4.2 启动服务



  • 禅道服务包罗Apache和Mysql,启动下令如下;
  • 启动所有服务:/opt/zbox/zbox start;

  • 制止所有服务:/opt/zbox/zbox stop;
  • 重启所有服务:/opt/zbox/zbox restart;
  • 开机自动启动:以把 /opt/zbox/zbox restart 加到操作系统的自启目录。
4.3 访问测试对象



  • 禅道安装完并启动服务后,直接浏览器输入:
  1. 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来添加用户,如下下令:
  1. # 进入脚本目录
  2. cd /opt/zbox/auth
  3. # 执行添加用户的脚本
  4. bash adduser.sh
  5. This tool is used to add user to access adminer
  6. Account: admin  # 输入用户名
  7. Password:       # 输入密码
  8. 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 测试数据



  • 将以下数据中的地址、用户名等参数改为自己的即可:
  1. # 请求地址:
  2. http://172.26.132.77:80/zentao/api.php/v1/tokens
  3. # 请求方式:
  4. POST
  5. # 请求参数:
  6. {"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上,并解压:
  1. 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 下令行启动性能脚本



  • 我们之前已经创建了脚本、陈诉等的存放路径:

  1. # /home/noamanelson/jmeter_test/jmeter_scirpt  # 脚本路径
  2. # /home/noamanelson/jmeter_test/jmeter_report
  3.   # 报告路径
  4. # /home/noamanelson/jmeter_test/jmeter_log     # 日志路径
  5. # /home/noamanelson/jmeter_test/jmeter_result  # 结果路径
复制代码


  • 下令行执行脚本下令为:
  1. jmeter -n -t 脚本路径 -l jtl数据文件路径 -e -o 测试报告存放路径
复制代码


  • 创建示例:
  1. jmeter -n -t \
  2. ./jmeter_scirpt/test_login.jmx -l \
  3. ./jmeter_result/test_login.jtl -e -o \
  4. ./jmeter_report/
复制代码
  1. Creating summariser <summary>
  2. Created the tree successfully using ./jmeter_scirpt/test_login.jmx
  3. Starting standalone test @ 2023 Nov 30 16:15:44 CST (1701332144880)
  4. Waiting for possible Shutdown/StopTestNow/HeapDump/ThreadDump message on port 4445
  5. 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
  6. 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
  7. summary =   3575 in 00:00:45 =   80.0/s Avg:   245 Min:    62 Max:  3045 Err:     0 (0.00%)
  8. 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
  9. summary =   6160 in 00:01:15 =   82.4/s Avg:   240 Min:    62 Max:  3045 Err:     0 (0.00%)
  10. 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
  11. summary =   8669 in 00:01:45 =   82.8/s Avg:   239 Min:    62 Max:  3045 Err:     0 (0.00%)
  12. 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
  13. summary =  11313 in 00:02:15 =   84.0/s Avg:   236 Min:    62 Max:  3045 Err:     0 (0.00%)
  14. 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
  15. summary =  13919 in 00:02:45 =   84.5/s Avg:   235 Min:    62 Max:  3045 Err:     0 (0.00%)
  16. 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
  17. summary =  16575 in 00:03:15 =   85.1/s Avg:   233 Min:    62 Max:  3045 Err:     0 (0.00%)
  18. 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
  19. summary =  19231 in 00:03:45 =   85.6/s Avg:   232 Min:    62 Max:  3045 Err:     0 (0.00%)
  20. 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
  21. summary =  21955 in 00:04:15 =   86.2/s Avg:   231 Min:    62 Max:  3045 Err:     0 (0.00%)
  22. 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
  23. summary =  24631 in 00:04:45 =   86.5/s Avg:   230 Min:    62 Max:  3045 Err:     0 (0.00%)
  24. 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
  25. summary =  26038 in 00:05:00 =   86.7/s Avg:   230 Min:    62 Max:  3045 Err:     0 (0.00%)
  26. Tidying up ...    @ 2023 Nov 30 16:20:45 CST (1701332445534)
  27. ... end of run
复制代码
13 陈诉检察



  • 打开陈诉存放路径,比如:
  1. /home/noamanelson/jmeter_test/jmeter_report
复制代码


14 下令行生成监控图片



  • 新建存放图片的路径,比如mkdir jmeter_picture:
  1. /home/noamanelson/jmeter_test/jmeter_picture
复制代码


  • 下令行先执行JMeterPluginsCMD.sh,看下这个下令有没有题目:
  1. $ JMeterPluginsCMD.sh
  2. 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中的文件是否存在:
  1. /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:

  • 完整的执行下令如下:
  1. JMeterPluginsCMD.sh --generate-png 存放图片的路径 --input-jtl jtl数据文件路径 --plugin-type PerfMon --width 图片宽度 --height 图片高度
复制代码


  • 示例如下:
  1. JMeterPluginsCMD.sh \
  2. --generate-png ./jmeter_picture/test_login.png \
  3. --input-jtl ./jmeter_result/test_login.jtl \
  4. --plugin-type PerfMon --width 800 --height 600
复制代码

15 下令行生成csv文件



  • 创建csv文件存放路径,比如/home/noamanelson/jmeter_test/jmeter_csv :
  1. mkdir jmeter_csv
复制代码


  • 执行的下令为:
  1. JMeterPluginsCMD.sh --tool Reporter --generate-csv 存放csv路径 --input-jtl 存放jtl数据文件路径 --plugin-type PerfMon
复制代码


  • 示例如下:
  1. JMeterPluginsCMD.sh \
  2. --tool Reporter \
  3. --generate-csv ./jmeter_csv/test_login.csv \
  4. --input-jtl ./jmeter_result/test_login.jtl \
  5. --plugin-type PerfMon
复制代码


  • 生成后如下:


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

兜兜零元

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表