兜兜零元 发表于 2024-6-15 00:35:29

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

注意:
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 Oct9 15:34:04 UTC 2 x86_64 x86_64 x86_64 GNU/Linux


[*]我的是x86_64,选对应的包即可:
https://img-blog.csdnimg.cn/direct/2514430b75624b6f8d482c2e2871cb80.png
1.2 JDK配置



[*]将下载的包上传到服务器:
https://img-blog.csdnimg.cn/direct/f7927bb9461f42f3b97a1fcc01ac88da.png
[*]创建一个文件夹:
sudo mkdir /usr/local/java


[*]把压缩包放到以上目录进行解压:
https://img-blog.csdnimg.cn/direct/fc410efe7fb54e23ae00a077826f067a.png
sudo tar -zxvf jdk-21_linux-x64_bin.tar.gz


[*]解压后删除多余的其他安装包,解压后如下:
https://img-blog.csdnimg.cn/direct/69939163262a4e8783ba72a6ed4da1b8.png
[*]配置环境变量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官网;
[*]选择文件下载:
https://img-blog.csdnimg.cn/direct/5a6f546b591b4e5c9ca45646314ff96b.png
2.2 Jmeter安装



[*]将下载的Jmeter上传到服务器:
https://img-blog.csdnimg.cn/direct/5f60dd7a06ae4544ad80c2654e0bb50e.png
[*]创建Jmeter目录:
mkdir jmeter_test


[*]检察安装包的权限并赋予执行权限:
https://img-blog.csdnimg.cn/direct/dfe5f4f8accb47308240b62d3db02eb9.png
chmod +755 apache-jmeter-5.6.2.tgz
https://img-blog.csdnimg.cn/direct/c5d8656b06c143aabf9025d96587c68e.png


[*]解压到当前目录下:
tar -zxvf apache-jmeter-5.6.2.tgz
2.3 Jmeter干系目录配置



[*]解压后如下,即安装目录为:
# /home/noamanelson/jmeter_test/apache-jmeter-5.6.2
https://img-blog.csdnimg.cn/direct/3660a7e7753e4debae2e401aefcd2942.png


[*]创建脚本存放目录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启动即可:
https://img-blog.csdnimg.cn/direct/45802203bd6940e8ae3ba2d8f83ea96b.png
https://img-blog.csdnimg.cn/direct/c3e1f25be50b4045948c103ce645b0d3.png
3 Jmeter汉化

3.1 临时修改



[*]即设置后只对本次使用有效,重启后恢复默认语言;
[*]选择Options—>Choose Language—>选择语言(例如:Chinese(Simplified)简体中文)设置成功。重启Jmeter又会恢复英文;
https://img-blog.csdnimg.cn/direct/f696f7f6d9b94b6b92b22a97d15ca889.png
3.2 永世修改



[*]即永世性设置,设置后每次打开显示的语言都是一样的;
[*]进入到Jmeter的bin目录下,找到jmeter.properties文档;
[*]打开查找language,找到language=en的行如下图,将en改为zh_CN,而且去掉前面的#号,生存退出;
vim jmeter.properties
https://img-blog.csdnimg.cn/direct/c3431a3d814747478d1b8e636b099f5c.png


[*]重启jmeter,语言设置成功。
https://img-blog.csdnimg.cn/direct/efe7ec14081c46d1a346749f67a9d602.png
4 准备测试对象

4.1 下载安装



[*]禅道官网找到Linux一键安装包:
https://img-blog.csdnimg.cn/direct/8228826a91d84c6d98bf14ae2bd8f1ab.png
[*]点击下载后,使用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
https://img-blog.csdnimg.cn/direct/9cac2aa2d3b346009b8d4c4e82f3b83f.png
4.2 启动服务



[*]禅道服务包罗Apache和Mysql,启动下令如下;
[*]启动所有服务:/opt/zbox/zbox start;
https://img-blog.csdnimg.cn/direct/6f9c4887880b40268fba11344e887a6b.png
[*]制止所有服务:/opt/zbox/zbox stop;
[*]重启所有服务:/opt/zbox/zbox restart;
[*]开机自动启动:以把 /opt/zbox/zbox restart 加到操作系统的自启目录。
4.3 访问测试对象



[*]禅道安装完并启动服务后,直接浏览器输入:
http://禅道服务器ip:apache端口。
   特别注意:这里必要开放几个端口:
https://img-blog.csdnimg.cn/direct/d0318c99867c40c08ac60e14a15ad9ca.png
1、sudo ufw status检察开放的端口:
https://img-blog.csdnimg.cn/direct/e2edb3a1055f4aaea16f98db1b183063.png
2、开放必要的端口:sudo ufw allow 端口
https://img-blog.csdnimg.cn/direct/31980203f9744ce8a6067492f1f06994.png
https://img-blog.csdnimg.cn/direct/ef1f5a40efe34bc1b30c8a77a6ec0643.png
4.4 注意事项



[*]如果网页无法访问,请先关闭禅道所在电脑的防火墙和selinux再革新网页访问试一下;
[*]使用云服务器请注意在安全组中开放apache使用端口;
[*]禅道默认管理员帐号是 admin,密码 123456;
[*]初次登岸请修改密码:
https://img-blog.csdnimg.cn/direct/3c716415ada24169bb5cd6bdd6790986.png
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端口 点击“数据库管理”:
https://img-blog.csdnimg.cn/direct/aea29f5b12314200809f4ed6ed4640f8.png
[*]输入用户名和密码:
https://img-blog.csdnimg.cn/direct/d28777fe9c0645609a510b778c225c52.png
[*]网页直接显示登录界面:
https://img-blog.csdnimg.cn/direct/0645daba61834bf1a4b3725067a146b0.png
   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信息头管理器,如下:
https://img-blog.csdnimg.cn/direct/0962efad88b2463897624c2bcf85e1f9.png
https://img-blog.csdnimg.cn/direct/5230943c118b4c368c4e6587396862fc.png
7.2 添加http哀求默认值



[*]测试计划-右键-添加-配置元件-HTTP哀求默认值,如下:
https://img-blog.csdnimg.cn/direct/78176a69302d4d2bb4e16f64e2f6110e.png
https://img-blog.csdnimg.cn/direct/39f330d348414f8fb5587f1d1b8002d8.png
7.3 添加线程组



[*]测试计划-右键-添加-线程(用户)-线程组,如下:
https://img-blog.csdnimg.cn/direct/bea2141d06eb4abbba2b32c68b2b67ba.png
https://img-blog.csdnimg.cn/direct/1b862da351464bc9b17a867b5591c4d0.png
7.4 添加http哀求



[*]线程组-右键-添加-取样器-http哀求,如下:
https://img-blog.csdnimg.cn/direct/9538ecaf07444e50b77ed7ed7b95f135.png
https://img-blog.csdnimg.cn/direct/792a30b6a54448088c4dde8bc9dc8fed.png
7.5 添加检察效果树



[*]测试计划-右键-添加-监听器-检察效果树,如下:
https://img-blog.csdnimg.cn/direct/b0756e3e71464292b29b2cd76a10aa19.png
7.6 运行调试



[*]点击运行按钮,检察返回数据是否ok,如下:
https://img-blog.csdnimg.cn/direct/780132d016c7473b8c00a21f7e464171.png
https://img-blog.csdnimg.cn/direct/583dd5b3908f459b82e8787dbb08a26d.png
https://img-blog.csdnimg.cn/direct/7f7ac41db5ad40adb4a65473eb1e4dad.png
8 安装jmeter-plugins-manager插件

8.1 jmeter-plugins-manager包配置



[*]可以通过在jmeter客户端集成jmeter-plugins-manager插件,在服务端摆设插件serverAgent来实时监控被压测服务器的性能;
[*]下载插件管理包:
https://img-blog.csdnimg.cn/direct/988882cc3ba548c4bed7f254f84cab09.png
[*]放置到jmeter的安装目录lib\ext下:
https://img-blog.csdnimg.cn/direct/761eef41369d4350a3ca1e5432e52463.png
8.2 下载PerfMon插件并应用



[*]重启Jmeter,点击选项-插件管理器:
https://img-blog.csdnimg.cn/direct/2d18e891b4264ebab62459b8785793e1.png
[*]PerfMon(Servers Performance Monitoring)选项,点击右下角的Apply Changes and Restart JMeter按钮应用:
https://img-blog.csdnimg.cn/direct/a87a52655ed54de0a0cfff3c768dfa34.png
[*]安装完后如下:
https://img-blog.csdnimg.cn/direct/3d86465669a54caf9ede733620772c9f.png
8.3 添加PerfMon监听器



[*]测试计划-右键-添加-监听器-jp@gc-PerfMon Metrics Collector,如下:
https://img-blog.csdnimg.cn/direct/1cc54fcc528944fab097ab9f29506f0f.png
9 服务端配置ServerAgent

9. 1下载ServerAgent



[*]下载ServerAgent-2.2.3.zip,下载官网地址;
https://img-blog.csdnimg.cn/direct/47706ba39ad54db2829ce9eadf6ec932.png
9.2配置ServerAgent



[*]下载后上传到linux上,并解压:
sudo unzip ServerAgent-2.2.3.zi


[*]进入到解压目录ServerAgent-2.2.3下,直接运行./startAgent.sh 启动;
https://img-blog.csdnimg.cn/direct/9f30aefc8f464bdbbfdc62417c895fc4.png
   特别注意:
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等):
https://img-blog.csdnimg.cn/direct/7d91e657f87c431bb5739a80a61cedfa.png
11 GUI方式运行



[*]直接运行脚本即可:
https://img-blog.csdnimg.cn/direct/7ec73b464f7f44f9a1d86bac6ba2a037.png
12 非GUI运行



[*]性能测试时建议使用这种方式可以提拔性能;
[*]这种方法运行时将监控数据输出到指定文件,文件必修是.jtl结尾;
12.1 安装jmeter-plugins-cmd插件



[*]在插件管理器中勾选如图即可:
https://img-blog.csdnimg.cn/direct/48269a8335af49f3af043a0f95f849c5.png
12.2 下令行启动性能脚本



[*]我们之前已经创建了脚本、陈诉等的存放路径:
https://img-blog.csdnimg.cn/direct/3240d7d48fac4846a55c32297f2781b2.png
# /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
https://img-blog.csdnimg.cn/direct/d8bdb92c2479465c867726ea8eb96277.png
https://img-blog.csdnimg.cn/direct/a587578b71b54bf3a9d2f22cc028f9e1.png
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文件;
https://img-blog.csdnimg.cn/direct/3a9a676194024876accc25f053073bec.png
[*]JMeterPluginsCMD.sh文件在/home/noamanelson/jmeter_test/apache-jmeter-5.6.2/bin目录下:
https://img-blog.csdnimg.cn/direct/3aefb20910fb4e4c9acaaa47f31550b8.png
[*]修改为cmdrunner-2.3.jar:
https://img-blog.csdnimg.cn/direct/abb7ee859ac84d6e91188c0abb80f9fd.png
[*]完整的执行下令如下:
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
https://img-blog.csdnimg.cn/direct/aa75b9cee76d4cee831d5f586c6b76eb.png
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


[*]生成后如下:
https://img-blog.csdnimg.cn/direct/efea69bceb0443b5bda1f6fd7c46ff17.png

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: 『Jmeter超等干货』| Linux下Jmeter安装配置、脚本设计执行、监控及陈诉完