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

news2024/10/5 22:21:18

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

  • 1 Jmeter安装
    • 1.1 下载安装
    • 1.2 Jmeter汉化
      • 1.2.1 临时修改
      • 1.2.2 永久修改
    • 1.3 验证环境
  • 2 测试对象
    • 2.1 测试对象说明
    • 2.2 测试对象安装
      • 2.2.1 下载安装
      • 2.2.2 启动测试对象服务
      • 2.2.3 访问测试对象
      • 2.2.4 注意事项
      • 2.2.5 其他参数
      • 2.2.6 网页登录数据库
      • 2.2.7 命令行连接数据库
  • 3 明确测试目标
    • 3.1 测试接口
    • 3.2 测试数据
    • 3.3 测试目标
  • 4 Jmeter脚本设计
    • 4.1 启动Jmeter
    • 4.2 添加http信息头管理器
    • 4.3 添加http请求默认值
    • 4.4 添加线程组
    • 4.5 添加http请求
    • 4.6 添加查看结果树
    • 4.7 运行调试
  • 5 客户端安装jmeter-plugins-manager插件
    • 5.1 下载jmeter-plugins-manager插件
    • 5.2 jmeter-plugins-manager包配置
    • 5.3 下载PerfMon插件并应用
    • 5.4 添加PerfMon监听器
  • 6 服务端配置ServerAgent
    • 6.1 下载ServerAgent
    • 6.2 配置ServerAgent
  • 7 测试服务是否OK
  • 8 Jmeter配置监控指标
  • 9 GUI方式运行
  • 10 非GUI运行
    • 10.1 安装jmeter-plugins-cmd插件
    • 10.2 命令行启动性能脚本
    • 10.3 查看报告
    • 10.4 命令行生成监控图片
    • 10.5 命令行生成csv文件


『授人以鱼,不如授人以渔』

仅以此文赠送那些需要学习Jmeter入门的伙伴。

仅供学习和参考,转载请注明出处。

文章通俗易懂,虽然很长,但是一篇文章可帮大家快速了解Jmeter性能测试过程。

欢迎小伙伴阅读、指正和交流。


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

1 Jmeter安装

1.1 下载安装

  • 详细参考Jmeter安装配置详细教程;
  • 简单总结下:

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目录下:
sudo cp ZenTaoPMS-18.8-zbox_amd64.tar.gz /opt/
  • 将安装包直接解压到/opt目录下:
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 访问测试对象

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

特别注意:这里需要开放几个端口:
在这里插入图片描述
1、sudo ufw status查看开放的端口:
在这里插入图片描述
2、开放需要的端口:sudo ufw allow 端口
在这里插入图片描述
在这里插入图片描述

2.2.4 注意事项

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

2.2.5 其他参数

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

2.2.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。

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

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 测试数据

  • 将以下数据中的地址、用户名等参数改为自己的即可:
# 请求地址:
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

  • 下载ServerAgent-2.2.3.zip,下载官网地址;
    在这里插入图片描述

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代理端口:
telnet 172.18.126.87 4444
  • 如果进入以下界面说明4444端口是被开放的:
    在这里插入图片描述
  • 如果提示无法连接到4444端口,需要在ubuntu上开放4444端口:
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
  • 命令行执行脚本命令为:
jmeter -n -t 脚本路径 -l jtl数据文件路径 -e -o 测试报告存放路径
  • 比如:
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目录下:
    在这里插入图片描述
    在这里插入图片描述
  • 完整的执行命令如下:
JMeterPluginsCMD.bat --generate-png 存放图片的路径 --input-jtl jtl数据文件路径 --plugin-type PerfMon --width 图片宽度 --height 图片高度
  • 示例如下:
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
  • 执行的命令为:
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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1136783.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

JAVA 版多商家入驻 直播带货 商城系统 B2B2C 商城源码之 B2B2C产品概述 商城免费搭建

涉及平台 平台管理、商家端&#xff08;PC端、手机端&#xff09;、买家平台&#xff08;H5/公众号、小程序、APP端&#xff08;IOS/Android&#xff09;、微服务平台&#xff08;业务服务&#xff09; 2. 核心架构 Spring Cloud、Spring Boot、Mybatis、Redis …

美团圈圈私域社群app拉新怎么做,申请推广渠道

首先说下美团私域社群app拉新申请渠道&#xff0c;可以通过“聚量推客”进行申请聚量推客首码邀请&#xff1a;000000 1、流程&#xff1a;用户点击活动专属链接进入扫码进群页面&#xff0c;长按二维码进入美团圈 圈多重福利群&#xff0c;用户首次进群且保持 10 天不退群即符…

地方门户系统源码 同城信息系统源码 家政外卖跑腿同城信息门户源码

地方门户系统源码 同城信息系统源码 家政外卖跑腿同城信息门户源码 系统介绍&#xff1a; 一&#xff1a;系统 后台设置:菜单列表 管理员管理:角色管理,操作日志,禁止访问IP段列表,管理员登录日志 二&#xff1a;设置 基础设置&#xff1a;站点设置&#xff0c;附件设置&a…

转岗项目经理后,我是如何分析需求的

项目经理有一项工作就是需求分析&#xff0c;需求的本质是根据认知进行假设&#xff0c;然后给出判断。如果需求分析的结果出了问题&#xff0c;那么产品也必然会失败。本文针对如何进行需求分析展开分析&#xff0c;希望能对你有所启发。 一、什么是需求 为什么要明确需求的…

笔记本触摸板怎么开?教你5个实用方法!

“新买了一个笔记本&#xff0c;但是触摸板一直无法打开&#xff0c;应该怎么进行操作呢&#xff1f;有什么方法可以打开笔记本触摸板吗&#xff1f;” 为了方便办公和使用笔记本&#xff0c;笔记本电脑上通常都会有一个触摸板。我们可以用它代替鼠标&#xff0c;更好地进行操作…

可视化沟通解析

如果我们去吃饭看到如下菜单 我想对于当事人而言&#xff0c;这个绝对不是点菜吃饭&#xff0c;而是一场韩语考试。 但是我们看到如下这个菜单会怎么样 如果我们看到这种菜单&#xff0c;即使我们不知道菜的名字我们也能很快的做出我们想要的选择&#xff0c;那样得到的菜不会…

JVM进阶(2)

一)方法区: java虚拟机中有一个方法区&#xff0c;该区域被所有的java线程都是共享&#xff0c;虚拟机一启动&#xff0c;运行时数据区就被开辟好了&#xff0c;官网上说了方法区可以不压缩还可以不进行GC&#xff0c;JAVA虚拟机就相当于是接口&#xff0c;具体的HotSpot就是虚…

IDEA 2023.2.2 使用 Scala 编译报错 No scalac found to compile scala sources

一、问题 scala: No scalac found to compile scala sources 官网 Bug 链接 二、临时解决方案 Incrementality Type 先变成 IDEA 类型 Please go to Settings > Build, Execution, Deployment > Compiler > Scala Compiler and change the Incrementality type to …

STM32MP157D BSP

一&#xff0c;全志R16、IMX6ULL和STM32MP157D启动相关 1&#xff0c;IMX6ULL是EMMC启动后&#xff0c;通过uboot fat命令的load进内存进行启动测试 2&#xff0c;openedv应该也是参考的官方的板子&#xff0c;类似调试口等均应该是一致的&#xff0c;所以目前就是用正点原子…

网络扫描与网络监听

前言&#xff1a;前文给大家介绍了网络安全相关方面的基础知识体系&#xff0c;以及什么是黑客&#xff0c;本篇文章笔者就给大家带来“黑客攻击五部曲”中的网络扫描和网络监听 目录 黑客攻击五部曲 网络扫描 按扫描策略分类 按照扫描方式分类 被动式策略 系统用户扫描 …

干货满满,上传多个文件秒变微信翻页电子书

亲们&#xff0c;你们还在为找不到好的制作电子书网站烦恼吗&#xff1f;今天给大家分享一个超级实用的神器&#xff01; 这个神器就是——FLBOOK在线制作电子杂志平台&#xff01;如果你有排版好的电子文档&#xff0c;就能一键上传多个文件秒变微信翻页电子书&#xff0c;是不…

市面上最好的 9 款 Android 数据恢复软件榜单

Android 是世界上最受欢迎的智能手机操作系统&#xff0c;拥有超过 20 亿的用户群&#xff0c;这是一个巨大的数字&#xff0c;而且还在不断增加。然而&#xff0c;随着用户数量的不断增加&#xff0c;Android数据丢失的问题也日益增多。Android 确实提供了 Google Drive 和 Go…

UWB技术在定位系统中的革新应用

超宽带技术&#xff08;Ultra-Wideband, UWB&#xff09;的崛起为定位系统领域带来了前所未有的机遇。其亚米级别的高精度定位、强大的穿透能力以及高速数据传输的特性&#xff0c;使得UWB在室内和室外定位系统中得以广泛应用。本文将深入探讨UWB技术在定位系统中的应用&#x…

PyTorch卷积神经网络各层实现与介绍

本文将讲解&#xff0c;PyTorch卷积神经网络各层实现与介绍&#xff0c;包括&#xff1a;基本骨架–nn.Module的使用、卷积操作、卷积层、池化层、激活函数、全连接层的介绍。 &#x1f61c; 对于相关原理&#xff0c;可以跳转&#x1f449;卷积神经网络CNN各层基本知识 &…

2023.10.26 关于 CAS 和 ABA 问题

目录 CAS 操作 执行过程 CAS 应用场景 实现原子类 实现自旋锁 ABA 问题 CAS 操作 全称 Compare and swap &#xff0c;译为 比较并交换 执行过程 我们假设内存中的原始数据 V&#xff0c;旧的预期值 A&#xff0c;需要修改的新值 B 比较 A 与 V 是否相等如果比较相等&…

SpringBoot日志+SpringMVC+UUID重命名文件+Idea热部署

目录 【SpringBoot日志】 什么是日志&#xff0c;日志的作用 关于日志的基本信息&#xff0c;又有哪些呢&#xff1f; 关于日志的级别 Springboot内置SLF4J【门面模式】 和 logback【日志框架】 在配置文件中可以设置日志级别【以.yml为例】 SpringBoot 持久化的保存日…

QT图形视图框架绘制曲线图和Smith图

QT图形视图框架绘制曲线图和Smith图 QGraphicsView是Qt框架中的一个图形视图部件&#xff0c;用于显示和处理2D图形元素。它提供了强大的工具来创建交互式和自定义的图形应用程序。在绘制折线图和Smith图时&#xff0c;使用QGraphicsView有以下一些优点&#xff1a; 交互性&am…

二叉树题目:最大二叉树 II

文章目录 题目标题和出处难度题目描述要求示例数据范围 解法一思路和算法代码复杂度分析 解法二思路和算法代码复杂度分析 题目 标题和出处 标题&#xff1a;最大二叉树 II 出处&#xff1a;998. 最大二叉树 II 难度 5 级 题目描述 要求 如果一个树满足其中每个结点的值…

【Python学习】—Python基础语法(六)

一、数据容器 Python中的数据容器&#xff1a;一种可以容纳多份数据的数据类型&#xff0c;容纳的每一个元素&#xff0c;可以是任意类型的数据&#xff0c;如字符串、数字、布尔等。 二、list列表 列表的下标索引 嵌套列表的下标 my_list[aaa,1,True] print(my_list[0]) p…

电压检测芯片如何发挥作用,保护电路?纳米软件为您介绍工作原理

电压检测芯片是一种常见的集成电路芯片&#xff0c;用来监测电路中的电压变化&#xff0c;防止电路受到过电压和欠电压的损坏。电源电压检测芯片被广泛应用于各种电子设备中&#xff0c;比如手机、电脑、家电等&#xff0c;在电压监测、电源管理、电池电量检测、温度检测、电压…