Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >『Jmeter入门万字长文』 | 从环境搭建、脚本设计、执行步骤到生成监控报告完整过程

『Jmeter入门万字长文』 | 从环境搭建、脚本设计、执行步骤到生成监控报告完整过程

原创
作者头像
虫无涯
修改于 2023-11-01 02:16:19
修改于 2023-11-01 02:16:19
3K02
代码可运行
举报
文章被收录于专栏:全栈测试技术全栈测试技术
运行总次数:2
代码可运行

特别说明: 1、本文是一个Jmeter快速入门的一个完整过程; 2、可帮助快速了解Jmeter性能测试过程和Jmeter简单操作; 3、文中通过一个简单的实例把Jmeter从安装、汉化到基本操作进行了贯穿,仅作为学习参考。

1 Jmeter安装

1.1 下载安装

  • 详细过程不再赘述;
  • 简单总结下:

1、从jmeter官网自行下载: 2、选择对应的版本; 3、安装JDK环境; 4、JDK环境变量配置; 5、Jmeter环境配置。

1.2 Jmeter汉化

1.2.1 临时修改

  • 即设置后只对本次使用有效,重启后恢复默认语言。
  • 选择Options—>Choose Language—>选择其他语言(例如:Chinese(Simplified)简体中文)设置成功。重启Jmeter又会恢复英文。
    在这里插入图片描述
    在这里插入图片描述

1.2.2 永久修改

  • 即永久性设置,设置后每次打开显示的语言都是一样的;
  • 进入到Jmeterbin目录下,找到jmeter.properties文档;
  • 以记事本的方式打开查找language,找到language=en的行 如下图,将en改为cn,并且去掉前面的#号,保存退出;
  • 重启jmeter,语言设置成功。
    在这里插入图片描述
    在这里插入图片描述

1.3 验证环境

  • 命令行输入:jmeter,出现以下内容,表示OK
    在这里插入图片描述
    在这里插入图片描述

2 测试对象

2.1 测试对象说明

  • 为了清晰的了解整个测试过程,我们使用禅道开源版作为测试对象;
  • 后续会对其中的一两个接口使用Jmeter进行测试;
  • Jmeter安装环境为Windows,测试对象禅道安装在ubuntu下。

2.2 测试对象安装

2.2.1 下载安装

  • 自行安装以下测试对象,这里不赘述。
  • 找到Linux一键安装包:
    在这里插入图片描述
    在这里插入图片描述
  • 点击下载后,使用xftp上传到ubuntu上:
    在这里插入图片描述
    在这里插入图片描述
  • 把上传到ubuntu上的禅道安装包复制到/opt目录下:
代码语言:python
代码运行次数:0
运行
AI代码解释
复制
sudo cp ZenTaoPMS-18.8-zbox_amd64.tar.gz /opt/
  • 将安装包直接解压到/opt目录下:
代码语言:python
代码运行次数:1
运行
AI代码解释
复制
sudo tar -zxvf ZenTaoPMS-18.8-zbox_amd64.tar.gz 
在这里插入图片描述
在这里插入图片描述

2.2.2 启动测试对象服务

禅道服务包括Apache和Mysql,启动命令如下。

  • 启动所有服务:/opt/zbox/zbox start
    在这里插入图片描述
    在这里插入图片描述
  • 停止所有服务:/opt/zbox/zbox stop
  • 重启所有服务:/opt/zbox/zbox restart
  • 开机自动启动:以把 /opt/zbox/zbox restart 加到操作系统的自启目录。

2.2.3 访问测试对象

  • 禅道安装完并启动服务后,直接浏览器输入:
代码语言:python
代码运行次数:0
运行
AI代码解释
复制
http://禅道服务器ip:apache端口。

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

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

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

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.2.4 注意事项

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

2.2.5 其他参数

  • 如果不加任何参数执行 /opt/zbox/zbox 会打印输出命令可用参数:
代码语言:python
代码运行次数:0
运行
AI代码解释
复制
Usage: ./zbox {start|stop|status} [--aport=8080] [--mport=3307]
代码语言:python
代码运行次数:0
运行
AI代码解释
复制
--aport参数 可以修改Apache的端口
--mport参数 可以修改Mysql的端口

2.2.6 网页登录数据库

  • 禅道数据库管理用的是adminer,但是为了安全,访问adminer的时候需要身份验证,需要运行 sudo /opt/zbox/auth/adduser.sh来添加用户,如下命令:
代码语言:python
代码运行次数:0
运行
AI代码解释
复制
# 进入脚本目录
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。

  • 登陆成功如下:
    在这里插入图片描述
    在这里插入图片描述

2.2.7 命令行连接数据库

  • 登录数据库:
  • /opt/zbox/bin/mysql -u root -P MySQL端口 -p (如:/opt/zbox/bin/mysql -u root -P 3306 -p)
  • 导入数据库: /opt/zbox/bin/mysql -u root -P MySQL端口 -p 要导入的库名 < XXXX.sql (如:/opt/zbox/bin/mysql -u root -P 3306 -p zentao < zentao.sql)

3 明确测试目标

3.1 测试接口

  • 登陆禅道后,点击更多-后台-二次开发
    在这里插入图片描述
    在这里插入图片描述
  • 可以看到接口信息,我们这里简单就拿token来验证:
    在这里插入图片描述
    在这里插入图片描述

3.2 测试数据

  • 将以下数据中的地址、用户名等参数改为自己的即可:
代码语言:python
代码运行次数:1
运行
AI代码解释
复制
# 请求地址:
http://172.18.126.87:80/zentao/api.php/v1/tokens

# 请求方式:
POST

# 请求参数:
{"account": "admin", "password": "Kenwaytest123456"}

3.3 测试目标

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

4 Jmeter脚本设计

4.1 启动Jmeter

  • cmd命令行输入:jmeter即可打开图形化界面:
    在这里插入图片描述
    在这里插入图片描述

4.2 添加http信息头管理器

  • 测试计划-右键-添加-配置元件-HTTP信息头管理器,如下:
在这里插入图片描述
在这里插入图片描述
  • 参数设置如下:
    在这里插入图片描述
    在这里插入图片描述

4.3 添加http请求默认值

  • 测试计划-右键-添加-配置元件-HTTP请求默认值,如下:
    在这里插入图片描述
    在这里插入图片描述
  • 设置参数如下:
    在这里插入图片描述
    在这里插入图片描述

4.4 添加线程组

  • 测试计划-右键-添加-线程(用户)-线程组,如下:
    在这里插入图片描述
    在这里插入图片描述
  • 设置参数如下:
    在这里插入图片描述
    在这里插入图片描述

4.5 添加http请求

  • 线程组-右键-添加-取样器-http请求,如下:
    在这里插入图片描述
    在这里插入图片描述
  • 设置参数如下:
    在这里插入图片描述
    在这里插入图片描述

4.6 添加查看结果树

  • 测试计划-右键-添加-监听器-查看结果树,如下:
    在这里插入图片描述
    在这里插入图片描述

4.7 运行调试

  • 点击运行按钮,查看返回数据是否ok,如下:
    在这里插入图片描述
    在这里插入图片描述
  • 如果返回如下token值,则说明说有设置是ok的:
    在这里插入图片描述
    在这里插入图片描述

5 客户端安装jmeter-plugins-manager插件

  • 我们需要关注被压测服务器的cpu、内存、磁盘、网络等指标参数的浮动来衡量压测服务器的能力;
  • 可以通过在jmeter客户端集成jmeter-plugins-manager插件,在服务端部署插件serverAgent来实时监控被压测服务器的性能;

5.1 下载jmeter-plugins-manager插件

5.2 jmeter-plugins-manager包配置

  • 将下载的jar包添加到Jmeter中;
  • 即将其放置到jmeter的安装目录lib\ext下:
    在这里插入图片描述
    在这里插入图片描述

5.3 下载PerfMon插件并应用

  • 重启Jmeter
  • 点击选项-插件管理器:
    在这里插入图片描述
    在这里插入图片描述
  • PerfMon(Servers Performance Monitoring)选项,点击右下角的Apply Changes and Restart JMeter按钮应用:
    在这里插入图片描述
    在这里插入图片描述

5.4 添加PerfMon监听器

  • 测试计划-右键-添加-监听器-jp@gc-PerfMon Metrics Collector,如下:
    在这里插入图片描述
    在这里插入图片描述

6 服务端配置ServerAgent

linux服务器的服务进行压测时,服务器的运行情况可以通过添加插件serverAgent来观察,可以实时监控性能指标。

6.1 下载ServerAgent

6.2 配置ServerAgent

  • 下载后上传到ubuntu上,比如目录soft下:
    在这里插入图片描述
    在这里插入图片描述
  • 解压缩:sudo unzip ServerAgent-2.2.3.zip
    在这里插入图片描述
    在这里插入图片描述
  • 进入到解压目录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 之后下次直接启动脚本程序。

  • 运行./startAgent.sh 提示没有java环境,这个需要jre1.8以上版本:
    在这里插入图片描述
    在这里插入图片描述
  • 输入java按照提示的安装包进行安装即可:
    在这里插入图片描述
    在这里插入图片描述
  • 启动服务:
    在这里插入图片描述
    在这里插入图片描述

7 测试服务是否OK

  • Windowscmd执行以下命令,检查ServerAgent代理端口:
代码语言:python
代码运行次数:0
运行
AI代码解释
复制
telnet 172.18.126.87 4444
  • 如果进入以下界面说明4444端口是被开放的:
    在这里插入图片描述
    在这里插入图片描述
  • 如果提示无法连接到4444端口,需要在ubuntu上开放4444端口:
代码语言:python
代码运行次数:0
运行
AI代码解释
复制
sudo ufw allow 4444

8 Jmeter配置监控指标

  • jp@gc-PerfMon Metrics Collector上进行指标选择;
  • 点击AddRow,然后在host的地方添加需要监控的服务器的主机域名或者IPport填写端口,Metric to collect下拉选择监控的指标(CPU、Memory、Swap、Disks I/O、Network I/O等)
    在这里插入图片描述
    在这里插入图片描述
  • 运行时如果报错:ERROR: java.net.ConnectException: Connection refused: connect,需要检查端口,ip是否正确,另外设置本地防火墙策略,参考Jmeter监控服务器资源报错问题ERROR

9 GUI方式运行

  • 直接运行脚本,可以看到如下监控数据:
    在这里插入图片描述
    在这里插入图片描述

10 非GUI运行

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

10.1 安装jmeter-plugins-cmd插件

  • 在插件管理器中勾选如图即可:
    在这里插入图片描述
    在这里插入图片描述

10.2 命令行启动性能脚本

  • 创建报告存放路径,比如:D:\A_jmeter_test\report
  • 创建压测数据存放路径,比如:D:\A_jmeter_test\jtl
  • 脚本存放路径,比如:D:\A_jmeter_test\登陆.jmx
  • 命令行执行脚本命令为:
代码语言:python
代码运行次数:0
运行
AI代码解释
复制
jmeter -n -t 脚本路径 -l jtl数据文件路径 -e -o 测试报告存放路径
  • 比如:
代码语言:python
代码运行次数:0
运行
AI代码解释
复制
jmeter -n -t D:\A_jmeter_test\登陆.jmx -l D:\A_jmeter_test\jtl\登陆.jtl -e -o D:\A_jmeter_test\report\
  • 命令行运行以上命令如下:
    在这里插入图片描述
    在这里插入图片描述

10.3 查看报告

  • 打开报告存放路径,比如:D:\A_jmeter_test\report
    在这里插入图片描述
    在这里插入图片描述
  • 运行index.html,如下:
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

10.4 命令行生成监控图片

  • 新建存放图片的路径,比如D:\A_jmeter_test\picture
  • 命令行先执行JMeterPluginsCMD.bat,看下这个命令有没有问题:
    在这里插入图片描述
    在这里插入图片描述
  • 发现这个文件找不到,我们看下图片中的D:\apache-jmeter-5.3\bin\\..\lib\cmdrunner-2.2.jar中的文件是否存在:
    在这里插入图片描述
    在这里插入图片描述
  • 结果发现是cmdrunner-2.3.jar而不是cmdrunner-2.2.jar,则需要修改JMeterPluginsCMD.bat文件;
  • JMeterPluginsCMD.bat文件在D:\apache-jmeter-5.3\bin目录下:
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
  • 完整的执行命令如下:
代码语言:python
代码运行次数:0
运行
AI代码解释
复制
JMeterPluginsCMD.bat --generate-png 存放图片的路径 --input-jtl jtl数据文件路径 --plugin-type PerfMon --width 图片宽度 --height 图片高度
  • 示例如下:
代码语言:python
代码运行次数:0
运行
AI代码解释
复制
JMeterPluginsCMD.bat --generate-png D:\A_jmeter_test\picture\登陆.png --input-jtl D:\A_jmeter_test\jtl\登陆.jtl --plugin-type PerfMon --width 800 --height 600
在这里插入图片描述
在这里插入图片描述
  • 生成的图片如下:
    在这里插入图片描述
    在这里插入图片描述

10.5 命令行生成csv文件

  • 创建csv文件存放路径,比如:D:\A_jmeter_test\csv
  • 执行的命令为:
代码语言:python
代码运行次数:0
运行
AI代码解释
复制
JMeterPluginsCMD.bat --tool Reporter --generate-csv 存放csv路径 --input-jtl 存放jtl数据文件路径 --plugin-type PerfMon
  • 示例如下:JMeterPluginsCMD.bat --tool Reporter --generate-csv D:\A_jmeter_test\csv\登陆.csv --input-jtl D:\A_jmeter_test\jtl\登陆.jtl --plugin-type PerfMon
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

2023腾讯技术创作特训营第三期有奖征文,组队打卡瓜分大奖!

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
『Jmeter超级干货』| Linux下Jmeter安装配置、脚本设计执行、监控及报告完整过程
3、用户名:root(禅道默认的数据库用户名是root) 密 码:123456(禅道默认的数据库密码是123456) 数据库:zentao。
虫无涯
2023/11/30
4.5K0
JMeter性能测试-服务器资源监控插件详解
顾翔老师开发的bugreport2script开源了,希望大家多提建议。文件在https://github.com/xianggu625/bug2testscript,
顾翔
2019/12/12
2.1K0
JMeter性能测试-服务器资源监控插件详解
轻量级自动化-Jmeter+Maven+Ant集成-4
# java -jar jenkins.war --ajp13Port=-1 --httpPort=8080
TestOps
2022/04/07
1K0
轻量级自动化-Jmeter+Maven+Ant集成-4
jmeter如何使用内部插件监控压测资源信息
性能测试工作中,经常有同学要使用PerfMon内部插件对压测资源进行监控,本文简单介绍下该插件如何使用 一、安装PerfMon插件 1. 启动jmeter,进入选项》Plugins Manager
jmeter技术研究
2019/10/19
1.2K0
jmeter如何使用内部插件监控压测资源信息
Jmeter监控服务器性能「建议收藏」
JMeter是一款压力测试工具,我们也可以用它来监控服务器资源使用情况。 JMeter正常自带可以通过Tomcat的/manager/status来监控服务资源使用情况。这种情况只能监控Tomcat支持的资源使用部分。
全栈程序员站长
2022/11/03
1.5K0
Jmeter 5.3 服务器资源监控插件 PerfMon 使用介绍
列表:https://downloads.apache.org/jmeter/binaries/
卓越笔记
2023/02/18
1.6K0
Jmeter 5.3 服务器资源监控插件 PerfMon 使用介绍
Jmeter系列二:CSV参数化、BeanShell、服务器监控等进阶使用
关于Jmeter,关于压力/性能测试,本不是我的专业范畴,但是由于前线需要,所以我就上阵了,粗浅涉猎并没有精通,所以哪里有写的不好的,请果断指出,反正我是不会改的。
格子Lin
2018/08/27
9320
Jmeter系列二:CSV参数化、BeanShell、服务器监控等进阶使用
Jmeter之.jtl文件解析
我们知道命令行的方式执行完成jmeter后,会生成jtl文件,里面打开后就是一行行的测试结果。
全栈程序员站长
2022/11/17
1.8K0
Jmeter之.jtl文件解析
基于JMeter开展性能测试(插件、监控、分布式压测)!
安装jdk1.8:默认安装,配置环境变量,新建系统变量JAVA_HOME 值:jdk的安装路径
测试开发技术
2022/09/28
1.2K0
jmeter入门实操,简单上手分布式压测
首先第一步下载安装包,官网下载地址https://jmeter.apache.org/download_jmeter.cgi,windows系统和linux用一个。注:jmeter5.4.3需要java8及以上版本。
怪盗LYL
2022/06/13
3.8K0
jmeter入门实操,简单上手分布式压测
Jmeter(四十八) - 从入门到精通高级篇 - Jmeter监控服务器性能(详解教程)
JMeter是一款压力、接口等等的测试工具,Jmeter也可以像loadrunner一样监控服务器CPU、内存等性能参数,用来监控服务器资源使用情况,不过需要安装一些插件。JMeter正常自带可以通过Tomcat的/manager/status来监控服务资源使用情况。这种情况只能监控Tomcat支持的资源使用部分。 通过本文宏哥主要来说一下如何通过JMeter插件来监控服务器CPU、内存(Memory)、磁盘(DisKs I/O)、网络(NetWork I/O)等相关资源。
北京-宏哥
2021/06/10
4K0
腾讯云ubuntu 16.04 禅道集成环境搭建
禅道 linux 安装地址 https://www.zentao.net/book/zentaopmshelp/90.html
静心物语313
2020/10/28
3.2K0
腾讯云ubuntu 16.04 禅道集成环境搭建
【JMeter系列-7】Linux下执行测试
JMeter不仅能十分便捷地进行接口测试,同时它也是一款优秀的压测工具。但使用JMeter在自己的电脑(下称本机)上运行压测脚本时,一般会有两个瓶颈:
云深i不知处
2020/09/16
2K0
Jmeter接口压测快速入门
通过以上给出的地址将Jmeter下载好后,进入到Jmeter的bin目录下,启动脚本放在这个目录,其中windows双击jmeter.bat即可,Mac和Linux下则是使用如下命令运行:
端碗吹水
2020/09/23
4.4K0
Jmeter接口压测快速入门
Jmeter分布式压测环境搭建
windows环境部署 1.安装环境变量 下载JDK,可以在oracle官网下载,也可以使用百度网盘下载 链接: https://pan.baidu.com/s/1QncVzXbJmKr8jzl-f0
谭银
2022/01/26
2.4K0
Jmeter(一) - 从入门到精通 - 环境搭建(详解教程)
Apache JMeter是100%纯JAVA桌面应用程序,被设计为用于测试客户端/服务端结构的软件(例如web应用程序)。它可以用来测试静态和动态资源的性能,例如:静态文件,Java Servlet,CGI Scripts,Java Object,数据库和FTP服务器等等。JMeter可用于模拟大量负载来测试一台服务器,网络或者对象的健壮性或者分析不同负载下的整体性能。 同时,JMeter可以帮助你对你的应用程序进行回归测试。通过你创建的测试脚本和assertions来验证你的程序返回了所期待的值。为了更高的适应性,JMeter允许调用二次开发的jar包来丰富你的测试场景;JMeter允许你使用正则表达式来创建这些assertions.
北京-宏哥
2020/05/26
112.5K1
玩转Jmeter进行性能测试
时逢6.18钉钉应用大促,为避免高负载下钉钉微应用的稳定性问题,遂赶工赶时完成钉钉方要求的稳定性压测,以此为楔,深探Jmeter,事后总结,是以成文。不愿窃为私有,分享给诸位QA同学,以期遇坑绕之,少些弯路。
晴空SunnySky
2023/09/26
3.8K0
jmeter使用心得(四)
之前的文章,小编分享了一些关于jmeter的使用心得,不知是否对大家的测试工作有些许的帮助呢,本期将继续为大家带来jmeter相关的使用心得第四篇。
用户5521279
2021/05/18
1.1K0
jmeter使用心得(四)
基于Jmeter的分布式压测实践
平时在使用Jmeter做压力测试的过程中,由于单机的并发能力有限,所以常常无法满足压力测试的需求。因此,Jmeter还提供了分布式的解决方案。本文是一次利用Jmeter分布式对业务系统登录接口做的压力测试的实践记录。按照惯例,在正式开始前,先简单介绍一下本文大纲:
大刚测试开发实战
2022/11/14
3.6K0
基于Jmeter的分布式压测实践
压测工具Jmeter的安装与使用
Apache JMeter 是 Apache 组织基于 Java 开发的压力测试工具,最初被设计用于 Web 应用测试,但后来扩展到了其他测试领域,可用于测试静态和动态资源,如静态文件、Java 小服务程序、CGI 脚本、Java 对象、数据库和 FTP 服务器等等。JMeter 可对服务器、网络或对象模拟巨大的负载,在不同压力类别下测试它们的强度和分析整体性能。
微客鸟窝
2023/01/09
2.1K0
压测工具Jmeter的安装与使用
相关推荐
『Jmeter超级干货』| Linux下Jmeter安装配置、脚本设计执行、监控及报告完整过程
更多 >
领券
一站式MCP教程库,解锁AI应用新玩法
涵盖代码开发、场景应用、自动测试全流程,助你从零构建专属AI助手
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验