JMeter使用

news2025/4/16 17:59:17

1.简介

1.1 打开方式

①点击bat,打开

②添加JMeter系统环境变量,输⼊命令jmeter即可启动JMeter⼯具

1.2 配置

简体中文

放大字体

1.3 使用

①添加线程组 

②创建http请求 

2. 组件

2.1 线程组

控制JMeter将⽤于执⾏测试的线程数,也可以把⼀个线程理解为⼀个测试⽤⼾。 

编辑线程数

多个请求,总会有失败,要采取什么措施?


 进行添加,发现内容和postman一样,为什么出现错误,查看,发现Content-Type类型不一样:

修改:

2.2 HTTP取样器

2.3 查看结果树

上述已回答

一般只在调试阶段会用到

2.4 HTTP Cookie管理器

没有用:

用了:

2.5 HTTP请求默认值

在同一个线程组,协议,ip,端口号不会改变,可以添加管理:

此时,就不要配置这些:

当取样器中存在未配置的选项,会在默认值中取:

配置了就不会取

2.6 ⽤⼾定义的变量

这样就可以一次修改多个变量

2.7 CSV数据⽂件设置

以登陆接⼝为例,当我们执⾏登陆接⼝的性能测试时,⼿动配置了⽤⼾名和密码为固定的username和 password,然⽽实际使⽤中不可能只有⼀个⽤⼾登陆,为了模拟更真实的登录环境,我们需要提供更 多的⽤⼾username和password来实现登录操作

修改登录接口:

线程改为2,去循环读取两个数据

运行:

2.8 JSON提取器

 当查看列表页时,请求头中需要cookie

配置请求头,成功 

 

此时请求成功 

但是,有的操作,比如登录,不需要cookie,怎么做?

修改作用域

将这个配置放在列表页,只作用在列表页

那么如果多个请求都需要呢?下面解释

接⼝响应成功,通过提取返回值对应字段,可⽤于其他接⼝的参数配置

后续,就不固定值了,直接从凭证中拿:

 必须使用固定的格式

JSON操作符参考: 

OperatorDescription
$表⽰根元素
@当前元素
*通配符。所有节点
..选择所有符合条件的节点
.<name>⼦元素
['<name>' (, '<name>')]括号表⽰⼦元素或⼦元素列表
[<name> (,<name> )]数组索引或索引列表
[start:end]数组切⽚操作符
[?(<expression>)]过滤器表达式。表达式必须评估为布尔值

参考⽂档:https://github.com/json-path/JsonPath

此处可以输入表达式,点击test判断对不对

这里要注意:

发生覆盖怎么办呢?

解决办法:不再添加信息头管理器到子集,拿出去

如下结构:

下面看一种情况,解决id不存在的问题

列表页会返回有效的id,提取出来作为参数值

放到详情页:

那如果有多个详情页接口,每个接口都用到写死的id值,而这个值后续可能需要修改,最好的方式用批量修改.在用户定义的变量查看

2.9 JSON断⾔

接⼝发送请求成功,响应码为200并不能完全代表接⼝请求成功,我们更多需要关注接⼝响应数据是否符合预期。

 注意:

1)若不选Additionally assert value,表⽰添加断⾔值,则可⽤来判断字段是否存在

2)选择Additionally assert value,则必须添加Expected Value期望的断⾔值

3)若不选Match as regular expression正则匹配,则Expected Value必须填写完整,少⼀个字符都 会导致断⾔失败

4)若选择Match as regular expression正则匹配,则Expected Value可以仅写上部分关键词即可断 ⾔成功

2.10 同步定时器(集合点)

JMeter同步定时器的作⽤主要在于模拟多⽤⼾并发访问的场景,确保多个线程能够同时执⾏某个操 作,以达到真正的并发效果。 

 通过三角符可以查看线程状态

发现:

这几个线程陆陆续续的完成了测试

为了达到并发的效果,需要添加同步定时器:

这里的模拟数量不能大于线程组里配置的线程数,超过就会一直等待

当<=时,线程组的线程数与当前模拟数量必须成整数倍,最好把循环打开,避免最好一次为准备好的线程达不到并发数,会一直等

2.11 事务控制器

JMeter事务控制器的作⽤主要⽤于测试执⾏嵌套测试元素所花费的总时间。这相当于模拟⽤⼾进⾏⼀系列操作的测试。 

 

看聚合报告:

2.12 安装插件

在工作中执行性能测试,是一点一点加上去的

因此需要安装新的插件来⽀持线程数的配置。

通过插件管理⼯具下载其他插件:Install :: JMeter-Plugins.org

 

此时重新打开:

下载监听器插件和线程组插件:

 

此时就多了这些东西:

每隔30s启动10个线程,这些线程要在5s内完成准备 

两次就可以把这20个线程都准备好

This group will start:启动多少个线程,同线程组中的线程数

First, wait for:等待多少秒才开始压测,⼀般默认为0

Then start:⼀开始有多少个线程数,⼀般默认为0

Next,add:下⼀次增加多少个线程数

threads every:当前运⾏多⻓时间后再次启动线程,即每⼀次线程启动完成之后的的持续时间;

using ramp-up: 启动线程的时间;若设置为5秒,表⽰每次启动线程都持续5秒

thenhold loadfor:线程全部启动完之后持续运⾏多⻓时间

finally,stop/threadsevery:多⻓时间释放多少个线程;若设置为5个和1秒,表⽰持续负载结束之后 每1秒钟释放5个线程 


测试:

2.13 常⻅监听器

如上

3. 测试报告

 ⽣成性能测试报告的命令:

Jmeter -n -t 脚本⽂件 -l ⽇志⽂件 -e -o ⽬录

-n : ⽆图形化运⾏

-t : 被运⾏的脚本

-l : 将运⾏信息写⼊⽇志⽂件,后缀为jtl的⽇志⽂件

-e : ⽣成测试报告

-o : 指定报告输出⽬录

注意:⽇志⽂件和⽬录可以不存在,若为已经存在的情况下需要保证内容为空,否则会出现错误!

4. 性能分析 

三大指标:

1.响应时间

如果响应时间超过了要求,代表系统到了瓶颈

原因:

系统不稳定,有时快有时慢

随着并发压力变大而慢慢变慢,响应时间变高

2. 错误率(可靠性)

高并发场景下,系统是否能够正常处理业务

要求:4个9,5个9

原因:

接口请求错误

服务器无法继续处理,达到了瓶颈

后端系统限流(配置了不能超过多少并发),熔断,降级

3.吞吐量

波动很大:系统性能不稳定

慢慢变高,在趋于稳定:和并发量强相关.如果并发量小于吞吐量,慢慢增大并发量,吞吐量也会随着增加

慢慢变低,并发量页减少了:要么说明性能测试要结束了,并发减少,也可能是系统变得卡顿,从而导致响应时间变慢,导致单个线程发起的并发量变少

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

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

相关文章

Ant Design Vue 表格复杂数据合并单元格

Ant Design Vue 表格复杂数据合并单元格 官方合并效果 官方示例 表头只支持列合并&#xff0c;使用 column 里的 colSpan 进行设置。 表格支持行/列合并&#xff0c;使用 render 里的单元格属性 colSpan 或者 rowSpan 设值为 0 时&#xff0c;设置的表格不会渲染。 <temp…

ECharts 如何实现柱状图悬停时,整个背景区域均可触发点击事件

1. 前言 ECharts 柱状图的点击事件默认仅响应柱子本身的点击&#xff0c;本文旨在实现整个背景区域均可触发点击事件 2. 实现思路 核心&#xff1a;全局监听 坐标判断 数据转换 通过 getZr() 监听整个画布点击&#xff0c;结合像素坐标判断是否在图表区域内‌通过 containPi…

金融简单介绍及金融诈骗防范

在当今社会&#xff0c;金融学如同一股无形却强大的力量&#xff0c;深刻影响着我们生活的方方面面。无论是个人的日常收支、投资理财&#xff0c;还是国家的宏观经济调控&#xff0c;都与金融学紧密相连。​ 一、金融学的概念​ 金融学&#xff0c;简单来说&#xff0c;是研…

cursor+高德MCP:制作一份旅游攻略

高德开放平台 | 高德地图API (amap.com) 1.注册成为开发者 2.进入控制台选择应用管理----->我的应用 3.新建应用 4.点击添加Key 5.在高德开发平台找到MCP的文档 6.按照快速接入的步骤&#xff0c;进行操作 一定要按照最新版的cursor, 如果之前已经安装旧的版本卸载掉重新安…

Kubernetes控制平面组件:API Server Webhook 授权机制 详解

云原生学习路线导航页&#xff08;持续更新中&#xff09; kubernetes学习系列快捷链接 Kubernetes架构原则和对象设计&#xff08;一&#xff09;Kubernetes架构原则和对象设计&#xff08;二&#xff09;Kubernetes架构原则和对象设计&#xff08;三&#xff09;Kubernetes控…

【Python爬虫】简单案例介绍2

本文继续接着我的上一篇博客【Python爬虫】简单案例介绍1-CSDN博客 目录 跨页 3.2 环境准备 跨页 当对单个页面的结构有了清晰的认识并成功提取数据后&#xff0c;接下来就需要考虑页面之间的跨页问题。此时我们便迎来了下一个关键任务&#xff1a;如何实现跨页爬取&#xf…

【神经网络】python实现神经网络(四)——误差反向传播的基础理论

一.反向传播 本章将介绍能够高效计算权重参数的梯度的方法——误差反向传播法,这里简单介绍一下什么是反向传播,加入有个函数y = f(x),那么它的反向传播为图下这个样子: 反向传播的计算顺序是,将输入信号E乘以节点的局部导数,然后将结果传递给下一个节点。这里所…

I/O进程(全)

I/O 一、标准IO 1.概念 在C库中定义的一组用于输入输出的函数 2.特点 (1).通过缓冲机制减少系统调用&#xff0c;提高效率 (2.)围绕流进行操作&#xff0c;流用FILE *来描述(3).标准IO默认打开了三个流&#xff0c;stdin&#xff08;标准输入&#xff09;、stdout&#xff08;标…

vue2使用ezuikit-js播放萤石视频

需求&#xff1a;需要在大屏上播放萤石视频&#xff0c;用到官方的ezuikit-js插件实现&#xff0c;并实现视频播放切换功能。有个问题至今没有解决&#xff0c;就是萤石视频的宽高是固定的&#xff0c;不会根据大屏缩放进行自适应。我这边做了简单的刷新自适应。 1.下载ezuikit…

【笔试强训day19】

目录 第一题&#xff1a;小易的升级之路 描述 输入描述&#xff1a; 输出描述&#xff1a; 输入&#xff1a; 输出&#xff1a; 第二题&#xff1a;礼物的最大价值 描述 输入&#xff1a; 返回值&#xff1a; 备注&#xff1a; 第三题&#xff1a;对称之美 题目描述…

STM32电机库 电机控制特性

ST MC FW库提供FOC和六步法两种电机控制方式。这使得它能够驱动永磁同步电机 (PMSM) 和无刷直流电机 (BLDC)。FOC 更适合 PMSM,而六步法更适合 BLDC 电机。该固件可以驱动内嵌式PMSM 和标贴式PMSM。 ST Motor Control 固件库提供以下功能: FOC SVPWM 生成: 可配置的 PW…

【Linux】42.网络基础(2.4)

文章目录 2.3 TCP协议2.3.10 拥塞控制2.3.11 延迟应答2.3.12 捎带应答2.3.13 面向字节流2.3.14 粘包问题2.3.15 TCP异常情况2.3.16 TCP小结2.3.17 基于TCP应用层协议 2.3 TCP协议 2.3.10 拥塞控制 虽然TCP有了滑动窗口这个大杀器, 能够高效可靠的发送大量的数据. 但是如果在刚…

SPI接口DAC设备驱动与应用程序开发

本文章相关专栏往期内容&#xff0c;SPI子系统专栏&#xff1a; SPI通信协议与Linux设备驱动框架解析SPI传输与驱动框架的实现spidev.c&#xff1a;SPI设备驱动的核心实现逻辑 PCI/PCIe子系统专栏&#xff1a; 专栏地址&#xff1a;PCI/PCIe子系统PCIe设备MSI/MSI-X中断源码分析…

第十六届蓝桥杯大赛软件赛省赛 Python 大学 B 组 满分题解

题面链接Htlang/2025lqb_python_b 个人觉得今年这套题整体比往年要简单许多&#xff0c;但是G题想简单了出大问题&#xff0c;预估50101015120860&#xff0c;道阻且长&#xff0c;再接再厉 代码仅供学习参考&#xff0c;满分为赛后洛谷中的测评&#xff0c;蓝桥杯官方测评待…

旧版 VMware 虚拟机迁移至 KVM 平台-案例2

项目背景 需将一台旧版 VMware 虚拟机&#xff08;VMDK 格式&#xff09;迁移至 KVM 虚拟化平台&#xff0c;具体要求如下&#xff1a; 格式转换&#xff1a;将 VMDK 转换为 QCOW2 格式。磁盘扩容&#xff1a;将原 40GB 磁盘扩展至 60GB。密码重置&#xff1a;修改 aiden 用户…

若依代码生成器原理velocity模板引擎(自用)

1.源码分析 代码生成器:导入表结构(预览、编辑、删除、同步)、生成前后端代码 代码生成器表结构说明&#xff1a; 若依提供了两张核心表来存储导入的业务表信息&#xff1a; gen_table&#xff1a;存储业务表的基本信息 &#xff0c;它对应于配置代码基本信息和生成信息的页…

OpenCV直方图均衡化全面解析:从灰度到彩色图像的增强技术

目录 一、直方图均衡化基础&#xff1a;原理与核心思想 二、彩色图像的直方图均衡化&#xff1a;挑战与解决方案 三、进阶技巧与注意事项 四、应用场景与典型案 一、直方图均衡化基础&#xff1a;原理与核心思想 1. 直方图的本质与作用 直方图是图像像素强度分布的统计图表…

Web前端之Vue+Element实现表格动态复杂的合并行功能、localeCompare、forEach、table、push、sort、Map

MENU 效果图公共数据数据未排序时&#xff08;需要合并的行数据未处于相邻位置&#xff09;固定合并行方法&#xff08;写死&#xff09;动态合并行&#xff0c;行数计算方法当太合并行&#xff0c;合并方法方法&#xff08;函数&#xff09;执行 效果图 公共数据 Html <e…

【DDR 内存学习专栏 1.4 -- DDR 的 Bank Group】

文章目录 BankgroupBankgroup 与 Bank 的关系 DDR4 中的 BankgroupDDR4-3200 8Gb芯片为例组织结构访问场景 实际应用示例 Bankgroup Bankgroup是DDR4及后续标准(DDR5)中引入的一个更高层次的组织结构。它将多个Bank组合在一起形成一个Bankgroup&#xff0c;目的是为了进一步提…

嵌入式进阶:如何选择合适的开发平台?

随着现代工业、物联网以及人工智能技术的迅速发展&#xff0c;嵌入式系统已经由简单的控制器向复杂的高性能系统迈进。从传统家电到智能机器人、从自动驾驶汽车到工业自动化&#xff0c;每一项应用都对嵌入式系统的响应速度、运行稳定性和能耗管理提出了更高要求。在这种背景下…