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/jsonAuthorization: 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)
  • 目的:测试系统在逐渐增加负载的情况下能达到的最大容量。

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

相关推荐
小小测试开发1 天前
JMeter XPath提取器用法详解:XML/HTML响应数据提取神器
xml·jmeter·html
weixin_440730503 天前
jmeter请求头和参数总结
jmeter
2501_924064116 天前
2025数据库性能测试工具:Utest、JMeter、HammerDB 等主流方案推荐
数据库·测试工具·jmeter·数据库性能测试·数据库负载测试·数据库压测工具·jmeter 压力测试
小小测试开发6 天前
JMeter JSR223预处理程序全攻略:用Groovy解锁复杂场景自动化
运维·jmeter·自动化
卖个几把萌6 天前
【08】JMeter从文本中读取多个参数
测试工具·jmeter
海梨花6 天前
又是秒杀又是高并发,你的接口真的扛得住吗?
java·后端·jmeter
小小测试开发6 天前
JMeter HTTP URL重写修饰符用法详解:解决会话传递与URL参数动态处理
网络协议·jmeter·http
兔子蟹子7 天前
JMeter 自动化测试 + 飞书通知完整指南
jmeter·飞书
小小测试开发7 天前
JMeter JSR223预处理程序高级用法:解锁自动化测试的灵活性上限
开发语言·jmeter·groovy
CesareCheung7 天前
JMeter 进行 WebSocket 接口压测
python·websocket·jmeter