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

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

相关推荐
张永清-老清2 天前
每周读书与学习->初识JMeter 元件(五)
学习·jmeter·性能调优·jmeter性能测试·性能分析·干货分享·每周读书与学习
低音钢琴2 天前
【从零开始构建性能测试体系-02】 Apache JMeter 取样器指南:从入门到精通
学习·jmeter·apache
向测开进阶2 天前
jmeter使用之--MD5加密
jmeter
qq_4924484462 天前
Jmeter设置负载阶梯式压测场景(详解教程)
开发语言·python·jmeter
卷子的笔记~2 天前
jmeter中使用正则表达式提取器传递参数
jmeter
zizisuo8 天前
使用jmeter做压力测试
jmeter·压力测试
惜.己11 天前
jmeter中java.net.ConnectException: Connection refused: connect
java·jmeter·.net
BatyTao12 天前
Fiddler抓包+Jmeter实战之--jxycrm客户关系管理软件
jmeter·fiddler
新知图书18 天前
JMeter的取样器
jmeter