jmeter聚合报告如何添加单位_性能测试连载(8)jmeter压力测试中的难点解析

ops/2025/2/27 16:14:43/

概述
新人在用jmeter做压力测试的时候,会被一些性能术语搞懵,直接导致的后果就是对测试出来的结果数据根本不能理解,更谈不上分析。这篇文章着重给大家实例解释一下jmeter压力测试的一些专有名词

问题1:什么是压力测试
问到如何做压力测试,很多人可能只会回答:"加线程组,加并发,看结果"。那么什么是压力,压力从哪里体现?这些恐怕就不得而知了。。。

到底什么是压力呢?实际上我们在压力测试中用RPS来表示

RPS
RPS 就是每秒请求数(Request Per Second),它描述了施压引擎向服务器实际发出的压力大小。从用户角度来说,rps是每秒钟点击的次数从客户端角度来说,rps是每秒向服务端发出的请求数使用工具的最终目的就是为了利用线程数和迭代次数模拟出和用户每秒点击相匹配的压力值,施压服务端,得到性能数据

Rps 由并发数,和服务器响应时间决定。并发数过低时可能达不到预期的 RPS,并发数过高时可能压力过大直接就压垮了服务器。

问题2:jmeter怎么调节压力
从前面的描述中我们知道压力就是每秒发出的请求数。现在再来理解一个jmeter的名词Ramp-up-period(in seconds)

Ramp-up-period
jmeter在线程组中有一个可调节的数值:Ramp-up-period,它表示启动所有线程需要的时间,单位是秒

图1-1设置了100个线程,迭代次数=1,Ramp-up-period=25,那么它表示我将在25秒内启动100个线程,也就是每秒钟启动4个线程。

每个线程启动之间的间隔时间是25/100=0.25s,也就是250ms。

换个理解方式,它表示了我们预期给服务器的压力就是每秒钟发送4个请求。也就是说,设置的RPS=4/s

1-1

图1-2设置了100个线程,迭代次数=10,Ramp-up-period=25,那么它表示我将在25秒内启动100个线程,每个线程迭代10次。也就是25秒内启动100个线程并迭代10次。
此时RPS=40/s。观察聚合报告1-3,jmeter在25秒内用100个线程发起了1000次请求。

1-2

1-3

jmeter中的RPS是无法通过监听器来直观的监测到,但是在单请求下,RPS和HPS理论上是相等的。可以通过HPS监听器去验证一下。

HPS监听

TPS监听

问题3:jmeter中的throughput到底是什么?
各位小伙伴们在使用jmeter时,是不是常常被 throughput 搞晕?到处都是throughput ,到底是做什么用的呢?

我们先看看有哪些throughput 元件

定时器中有目标Constant Throughput 和 Throughput Shaping Timer

逻辑控制器中有吞吐量控制器

聚合报告中也有一个Throughput

撑不住了,好晕啊。。。啊。。。啊。。。。

稳住不要晕倒,下面带大家一个个的来梳理,重建jmeter世界观

先理解一下什么是Throughput

Throughput是用来衡量吞吐量的指标,通常由TPS和QPS来表示。

TPS表示每秒通过的事物数,QPS表示每秒查询接口数。

jmeter中如果只有单接口,那么TPS=QPS。

如果是多接口的混合场景,只有在事物控制器下执行,才能将其理解为TPS。

聚合报告中的 Throughput
下图Throughput表示无限迭代下的业务吞吐量TPS,大约是40/s。意思就是每秒响应完成的请求是40。

Constant Throughput Timer
现在我们在接口下添加一个 Constant Throughput Timer

这是一个吞吐量定时器,它可以控制我们的TPS。

如图,我设定了目标吞吐量是240/min,也就是4/s。

接下来运行的结果可以看到,无论我们预期的吞吐量有多大,实际的TPS都被强力压缩在4/s,同时我们的平均响应时间也变的很短

Throughput Shaping Timer
再来看一下 Throughput Shaping Timer

下图可以很明显看到它是用来控制RPS的,也就是每秒请求数。

start=1 end=100,持续时间是60。表示我们需要在60s内将RPS(每秒请求数)均匀的从1提升到100。

下面可以看出来我们的每秒请求数均匀的在提升

逻辑控制器-吞吐量控制器
这个控制器里的吞吐量,指的是请求比例。

比如我们总共发出1000个请求,这个控制器下的接口只会发送300个,比例控制在30%

下面这张图更直观的说明了请求的比例分配

请求1的控制器分配的比例是30%,剩余的70%都分给了请求2的控制器


————————————————

                            版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
                        
原文链接:https://blog.csdn.net/weixin_42356340/article/details/112413546


http://www.ppmy.cn/ops/161718.html

相关文章

微信小程序源码逆向 MacOS

前言 日常工作中经常会遇到对小程序的渗透测试,微信小程序的源码是保存在用户客户端本地,在渗透的过程中我们需要提取小程序的源码进行问题分析,本篇介绍如何在苹果电脑 MacOS 系统上提取微信小程序的源码。 0x01 微信小程序提取 在苹果电…

RIP-AV:使用上下文感知网络进行视网膜动脉/静脉分割的联合代表性实例预训练

文章目录 RIP-AV: Joint Representative Instance Pre-training with Context Aware Network for Retinal Artery/Vein Segmentation摘要方法实验结果 RIP-AV: Joint Representative Instance Pre-training with Context Aware Network for Retinal Artery/Vein Segmentation …

【Maven】-- Maven Scope 详解

目录 Maven Scope 详解 1. 引言 2. Maven 依赖范围(Scope)分类 2.1 compile(默认范围) 2.2 provided 2.3 runtime 2.4 test 2.5 system 2.6 import(仅用于 dependencyManagement) 3. Scope 作用范…

Wireshark详解

Wireshark使用详解 1.Wireshark 简介2.下载与安装1. 下载地址2. 安装步骤(以 Windows 为例) 3. 界面与核心功能1. 主界面布局2. 常用菜单功能 4. 过滤功能详解1. 过滤类型2. 常用过滤命令 5. 过滤命令与网络结构对应6. 使用注意事项7. 案例分析 TCP 三次…

java 单例模式(Lazy Initialization)实现遍历文件夹下所有excel文件且返回其运行时间

单例模式Singleton介绍 定义 在java核心结构中只包含一个被称为单例的特殊类。通过单例模式可以保证系统中,应用该模式的类一个类只有一个实例。即一个类只有一个对象实例 实现思路 将该类的构造方法定义为私有方法,这样其他处的代码就无法通过调用该…

buuctf-简单注册器题解

下载好资源包解压,发现是apk文件。 这里用apk改之理这个软件打开这个文件。 从这里用idea打开class文件,查看main函数 发现了这些代码,看到了注册码错误,那么上面的判断就是正确的flag 那么只要将题目给出的var5里的数值通过下面…

通过阿里云RDS排查解决MYSQL慢SQL--图文教学

通过自治服务和DMS解决数据库IOPS过高的问题,包括排查慢SQL、确定优化方向和使用无锁变更等步骤。 数据库IOPS居高不下,影响过多API业务信息 1. 跟进告警内容 【自治服务】-》【一键诊断】-》【当前资源使用率】-》【IOPS】 RDS-一键诊断 2. 排查慢…

MySQL 中如何查看 SQL 的执行计划?

SQL 语句前面使用 EXPLAIN 关键字: EXPLAIN SELECT * FROM users WHERE id 1; 字段 含义 id 查询的序号(如果是子查询或联合查询,会有多个 id)。 select_type 查询的类型(简单查询、子查询、联合查询等&#xff…