JMeter压测工具安装和简单使用
创始人
2025-05-29 03:43:52
0

一、JMeter简介

1、简介

Apache JMeter 是 Apache 组织基于 Java 开发的压力测试工具,用于对软件做压力测试。

JMeter 最初被设计用于 Web 应用测试,但后来扩展到了其他测试领域,可用于测试静态和动态资源,如静态文件、Java 小服务程序、CGI 脚本、Java 对象、数据库和 FTP 服务器等等。JMeter 可对服务器、网络或对象模拟巨大的负载,在不同压力类别下测试它们的强度和分析整体性能。
另外,JMeter 能够对应用程序做功能/回归测试,通过创建带有断言的脚本来验证程序是否返回了期望结果。为了最大限度的灵活性,JMeter 允许使用正则表达式创建断言。

JMeter的作用:

  1. 能够对HTTP和FTP服务器进行压力和性能测试, 也可以对任何数据库进行同样的测试(通过JDBC)。
  2. 完全的可移植性和100% 纯java。
  3. 完全 Swing 和轻量组件支持(预编译的JAR使用 javax.swing.*)包。
  4. 完全多线程 框架允许通过多个线程并发取样和 通过单独的线程组对不同的功能同时取样。
  5. 精心的GUI设计允许快速操作和更精确的计时。
  6. 缓存和离线分析/回放测试结果。

2、下载及安装:

由于 Jmeter是基于 Java开发,首先需要下载安装 JDK,自行安装 JDK。下面我们下载安装 Jmeter。

Jmeter官网下载:https://jmeter.apache.org/download_jmeter.cgi

在这里插入图片描述
下载解压之后,无需安装。点击 bin/jmeter.bat即可

在这里插入图片描述
即打开 Jmeter工具面板,然后就可以使用了。

在这里插入图片描述

3、中文环境

我们可以通过修改配置文件来设置 JMeter中文环境,进⼊ bin目录,找到“jmeter.properties”文件。

添加“language=zh_CN”即可。

在这里插入图片描述

保存之后再打开 JMeter就永久变为中文环境了。

在这里插入图片描述

4、JMeter元件简介

主要元件:

  1. 测试计划:是使用 JMeter 进行测试的起点,它是其它 JMeter测试元件的容器
  2. 线程组:代表⼀定数量的用户,它可以⽤来模拟用户并发发送请求。实际的请求内容在Sampler中定义,它被线程组包含。
  3. 配置元件:维护Sampler需要的配置信息,并根据实际的需要修改请求的内容。
  4. 前置处理器:负责在请求之前工作,常⽤来修改请求的设置
  5. 定时器:负责定义请求之间的延迟间隔。
  6. 取样器(Sampler):是性能测试中向服务器发送请求,记录响应信息、响应时间的最小单元,如:HTTP Request Sampler、FTP Request Sample、TCP Request Sample、JDBC Request Sampler等,每⼀种不同类型的sampler 可以根据设置的参数向服务器发出不同类型的请求。
  7. 后置处理器:负责在请求之后工作,常用获取返回的值。
  8. 断⾔:用来判断请求响应的结果是否如用户所期望的。
  9. 监听器:负责收集测试结果,同时确定结果显示的方式。
  10. 逻辑控制器:可以自定义JMeter发送请求的行为逻辑,它与Sampler结合使⽤可以模拟复杂的请求序列。元件的作用域和执行顺序。

5、测试计划

测试计划一般所需要的下面元件:

  1. 线程组:压测高并发下系统的表现,jmeter提供线程组的工具,能够在jmeter内部启动多个并发的线程,并发的去发送一些接口的请求,用来测试服务端的压力。
  2. HTTP请求: 线程组要做的事情就是在这个场景下发送 http 请求(Cookie管理器,Http请求默认值等)。
  3. 监听器(查看结果树、图形结果、聚合报告等)
    • 查看结果树:等到有对应的 http 请求发送出去之后,需要查看对应http的返回结果(正常的|异常的)。异常的话就有可能是容量不够所产生的拒绝连接等等这种样子的瓶颈。
    • 聚合报告:生成性能压测报告,内部含有TPS,QPS等性能评测的指标来表现对应接口的响应情况等。

也可以根据实际测试需求添加更多元件。

二、JMeter简单使用

根据 测试计划的了解。下面开始 JMeter的使用。

1、添加线程组

元件描述:⼀个线程组可以看做⼀个虚拟用户组,线程组中的每个线程都可以理解为⼀个虚拟用户。

添加方法:右键点击Test Plan->添加->线程(用户)->线程组。

在这里插入图片描述

设置 Jmeter发送请求的线程属性。

在这里插入图片描述

线程属性:

  • 线程数:即虚拟用户数。设置多少个线程数也就是设置多少虚拟用户数
  • Ramp-Up时间(秒):设置虚拟用户数全部启动的时长。
    如果线程数为20,准备时长为10秒,那么需要10秒钟启动20个线程。也就是平均每秒启动2个线程。
  • 循环次数:每个线程发送请求的个数。
    如果线程数为20,循环次数为10,那么每个线程发送10次请求。总请求数为20*10=200。如果勾选了“永远”, 那么所有线程会⼀直发送请求,直到⼿动点击⼯具栏上的停止按钮,或者设置的线程时间结束。

上图解释:会在10秒钟之内启动起来20个线程,并且让这20个线程每个线程都循环调用接口1次。

2、添加 HTTP请求

元件描述:HTTP请求包括接口请求方法、请求路径和请求参数等。

添加方法:右键线程组->添加->Sampler->HTTP请求。

在这里插入图片描述

用来做真正做压测一个接口。根据你的接口填写相关信息。

http请求对应的协议默认就是 http。

在这里插入图片描述

3、添加查看结果树

监听器元件描述:树状形式显示接口的访问结果,包括请求结果、请求内容、服务器的响应内容。

添加方法:线程组 ->右键添加 ->监听器 ->查看结果树。

在这里插入图片描述

查看结果树、查看结果集的功能,查看成功多少,失败多少,并且有一个返回值。

结果树当中会把对应的一个http接口返回的response都打印出来,可以选仅显示错误日志,仅显示成功日志。

在这里插入图片描述

4、聚合报告

添加方法:线程组 ->右键添加 ->监听器 -> 聚合报告。

有接口响应的平均值,中位数值,90线,95线,99线,最大最小值,Error,TPS,received sent的数据包大小。

在这里插入图片描述

5、保存,然后运行

在这里插入图片描述

到此,使用 JMete对软件做压力测试就算入门了。关于 JMeter中各个元件的介绍可查看参考文章。

参考文章:

  • Jmeter中文网:http://www.jmeter.com.cn/jieshao
  • 一看就懂的JMeter操作流程(各个元件简介):https://mp.weixin.qq.com/s?__biz=MzI3NDc4NTQ0Nw==&mid=2247520878&idx=1&sn=dfe8a1941d3accefa07e483597c1a014&chksm=eb0c67a6dc7beeb0e330a198cca58872a03d7c0c9cb9a3dddfc6d75f4f13189eecf0fb91c91a&scene=27

– 求知若饥,虚心若愚。

相关内容

热门资讯

经典卷积模型回顾29—YOLO... 1. 下载yolov2模型的权重和配置文件 ``` !wget https:...
52TOYS母公司乐自天成IP... 文 | 董武英今年以来,IP玩具行业获得了资本市场高度关注。港股市场上,泡泡玛特股价持续创出新高,截...
sublime for mac... 文章目录sublime for mac 常用快捷键命令面板搜索面板(文件、类ÿ...
吉利“人才摇篮”效应:新势力造... 2025年5月23日,在吉利控股集团与韩红爱心慈善基金会的公益合作启动仪式上,董事长李书福的一席话掀...
终止重大资产重组,光洋股份复牌... 5月30日,停牌近两周归来的光洋股份(002708.SZ)开盘逼近跌停。消息面上,该公司决定终止筹划...
extjs02 Ext.js 自定义事件和监听器 2022-05-20 17:11 更新 事件是在类发生的时候触发的...
华夏银行“破冰行动”启幕:新帅... 2024年5月22日,华夏银行迎来历史性时刻——金融“老将”杨书剑的董事长任职资格正式获国家金融监管...
EDA概念多数回调,华大九天跌... 5月30日,EDA概念多数回调,华大九天跌近6%,广立微、台基股份、盖伦电子跌逾3%。
银行板块早盘拉升,300红利低... 5月30日,A股三大指数早盘走低,银行板块拉升,300红利低波动指数截至发稿涨0.20%。相关ETF...
JVM CMS的缺点和问题 文章目录 缺点1、浮动垃圾2、空间碎片解决方案为什么CMS不使用标记整理,而采用标记清楚关于时间开销...
模拟实现memcpy和memm... 在模拟实现qsort的时候,我们知道的是这个函数的返回值是void,这个函数的第一个形...
玩转k8s(六)—— Heal... 用户可以利用Liveness和Readiness探测机制设置更精细的健康检查,进而实现...
财经大V走进广州,感受新质生产... 5月27日,由广州市自媒体协会主办的第四届湾区自媒体创新发展大会在广州鸣泉居酒店圆满举行。在互联网快...
华谊兄弟:从影视巨头到断臂求生... 近日,华谊兄弟董事长王忠军油画作品流拍事件引发市场热议——这幅曾以368万元高价成交的作品,如今30...
嵌入式学深度学习:1、Pyto... 嵌入式学深度学习:1、Pytorch框架搭建1、介绍2、Pytorch开发环境搭建2....
springcloud学习总结 springcloud 构建微服务项目步骤 导入依赖编写配置文件开启这个功能 @Enable...
刚刚,德勤中国官宣新CEO 德... 5月30日,德勤中国宣布,刘明华将接替曾顺福出任德勤中国首席执行官,自2025年6月1日起生效,任期...
React 执行架构流程详细-... React 执行架构流程详细----归阶段 mount 时流程(三) 目...
险资活水入市来 超1700亿元... 既有新的保险系私募证券基金管理人完成备案,也有新的保险系私募基金产品发起设立,还有险企宣布将设立私募...
石药集团:就三项潜在交易进行磋... 新京报贝壳财经讯 5月30日,石药集团在港交所公告,集团目前正与若干独立第三方就三项潜在交易进行磋商...