当前位置: 首页 > news >正文

Jmeter接口的负载测试概念

前文:可以正常使用Jmeter,了解各控件的功能,本文仅提供概念。

负载测试的核心目的是模拟不同数量的并发用户请求,以确定系统在多种负载条件下的性能和稳定性。具体来说,负载测试可以帮助你回答以下问题:

  • 系统能处理多少并发用户或请求?

  • 系统的响应时间会在并发增加时如何变化?

  • 系统在高负载下是否会崩溃或者变得不可用?

  • 系统在高负载下是否能保持可接受的响应时间和吞吐量?

  • 系统的资源(如 CPU、内存、数据库连接等)在高负载下的消耗情况如何?

一.明确目标

        在进行使用Jmeter进行压测之前,需要明确一下自己的压测的方向:
1.无用户限制,想探索一下该接口的极限承受能力,也就是最多能承受多少并发用户(找出极限 TPS)

2.存在用户数目限制,想探索一下,该用户数目下,接口的极限响应时间是多少

二.业务场景

        需要明确自己当前测试接口的主要业务内容,如果是只需要单接口测试(登录、注册等接口)的,那么就是不断的调用该接口,测试该接口的承受能力。

        如果是需要多接口的搭配使用,例如下单,付款这种事务测试,那么需要进行关联性操作,判断该多接口下的承压能力

三.明确接口的信息

        使用Jmeter进行接口测试,需要拥有接口的基本信息,如下:

1.请求方法:Get、Post、Delete

2.请求URL:完整的接口路径

3.请求参数:

        Query Parameters:一般都是Get请求,URL 后面的 ?key1=value1&&key2=value2

        Body:对于Post等方法,请求体里的数据有很多种数据型式,JSONform-data(表单)等

4.请求头:是否需要特定的 Header?比如 Content-Type: application/json 或 Authorization: Bearer <token>

四.负载测试的核心

        1.创建线程组

        2.创建Http请求以及可能需要的Http请求头管理器等等

        3.创建结果树以及可查看负载测试下的TPS、响应时间的聚合报告等

在线程组配置好线程数、时间后,进行压测,结果满足以下条件,可逐步提高线程数,直到接口负载达到最大!

响应时间:优秀:1S以内   良好:1~3秒   合格:3~5秒

错误率:正常值:小于1%,如果达到5%,系统在崩溃的边缘

吞吐量:根据业务需求,如果系统需要支持 5000 个并发请求每秒,而你测试出来的吞吐量只有 2000 个请求每秒,则不合格。

资源使用:例如:CPU、内存、磁盘、网络带宽等,尤其不能造成内存溢出现象。

五.负载测试的类型:

负载测试可以分为几种类型,分别聚焦于不同的测试目标:

a. 基本负载测试(Normal Load Testing)
  • 目的:测试系统在正常负载下的表现。

  • 模拟场景:模拟一个正常的使用场景,确定系统在常规并发量下是否能稳定工作。

b. 峰值负载测试(Peak Load Testing)
  • 目的:测试系统在预期峰值负载下的表现。

  • 模拟场景:模拟系统可能遇到的最大并发量,以确保系统在峰值负载下能够正常运行。

c. 极限负载测试(Stress Testing)
  • 目的:确定系统的极限承载能力,测试在超出预期负载时系统的稳定性。

  • 模拟场景:测试系统在非常高的并发请求下会崩溃或出现性能问题的情况,目的是找到系统的“崩溃点”。

  • 举例:如果一个系统设计最多支持 1000 个并发请求,通过极限负载测试,测试是否可以承受 2000、3000、5000 个请求,直到系统崩溃。

d. 持续负载测试(Endurance Testing)
  • 目的:测试系统在长时间负载下的表现,确保系统能够在长期使用中维持稳定。

  • 模拟场景:模拟系统在较长时间内(例如几个小时或几天)持续承受相对较低的负载,测试是否会出现内存泄漏或资源耗尽的问题。

e. 容量测试(Capacity Testing)
  • 目的:测试系统在逐渐增加负载的情况下能达到的最大容量。

  • 模拟场景:逐步增加并发用户数,直到系统开始出现响应时间过长、出错率增加或性能下降,确定系统能够承受的最大负载。

http://www.dtcms.com/a/469343.html

相关文章:

  • Linux-CentOS 7 上安装 MySQL 8.0.43(保姆级教程)
  • 视频分辨率4K,比特率50000kbps,电脑播放时卡顿的原因
  • 使用aspx做电影网站网站建设专用术语
  • Linux内核网络优化:两个网络调优解决方案
  • day7_vite 啊哈哈啊哈哈哈哈哈
  • 化妆品产品的自建网站哟哪些能想到的域名都被注册了
  • 网络协议的零拷贝 和 操作系统的零拷贝异同
  • Apache Drill:一款开源的分布式SQL查询引擎
  • 八年磨一剑:中品维度如何用“分布式电商”为商家打开增长新通路?
  • Linux下的Rust 与 C 的互操作性解析
  • 从“用框架”到“控系统”———架构通用能力(模块边界、分层设计、缓存策略、事务一致性、分布式思维)
  • 云南省建设厅网站舉報十大购物网站排行榜
  • 做网站什么空间比较好短视频运营方案
  • golang 读写锁 RWMutex
  • centos系统将/home分区的空间分配给/
  • Kafka系列之:Kafka事务、幂等生产者、事务生产者
  • sftpgo汉化处理
  • Java打包时,不将本地Jar打包到项目的最终 JAR 中
  • Go语言泛型全面解析:从基础到高级应用
  • 在css里优雅地使用if函数
  • 中国建设银行个人网站银行欧美在线做视频网站
  • 2018年网站开发语言如何加强英文网站建设
  • Pandas:机器学习数据处理的核心利器
  • ECharts + AWS 服务联动的揭示板(Dashboard)开发示例
  • 运动控制教学——5分钟学会PRM算法!
  • RK平台Uniapp自启动缓存问题解决
  • Java 大视界 -- Java 大数据在智能家居设备联动与场景自动化中的应用
  • 湛江网站建设方案推广怎样做中考成绩查询网站
  • 1.5 labview几个使用小知识点
  • TypeScript 面试题及详细答案 100题 (11-20)-- 基础类型与类型操作