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

Apache JMeter API 接口压测技术指南

文章目录

    • 前言
    • 技术积累
      • JMeter 简介
      • 适用场景
      • JMeter 核心组件
    • 安装与配置
    • 线程组压测
    • 逐步加压压测
      • 安装相应jmeter 插件
      • 创建测试计划
      • 生成压测HTML
    • 总结

前言

Apache JMeter 是一款开源的性能测试工具,主要用于对 Web 应用、API 接口、数据库等进行负载和压力测试。本指南将详细介绍如何使用 JMeter 进行压测。

在这里插入图片描述

技术积累

JMeter 简介

什么是 JMeter Apache JMeter 是由 Apache 开发的 Java 桌面应用程序,支持多线程测试,可以模拟高并发用户访问系统的行为。

适用场景

HTTP/HTTPS 请求性能测试
Web Services(SOAP/REST)测试
数据库性能测试(通过 JDBC)
FTP、LDAP、SMTP、POP3、IMAP 等协议测试
分布式测试(跨机器执行)

JMeter 核心组件

在这里插入图片描述

安装与配置

安装前提
安装 JDK 1.8 或更高版本
设置 JAVA_HOME 环境变量
下载与启动
官网地址:https://jmeter.apache.org
解压下载包后,进入 bin 目录:
Windows:运行 jmeter.bat
Linux/Mac:运行 sh jmeter.sh

线程组压测

该方式直接创建 线程组,然后把请求,请求头,报告,TPS压测图等都创建出来,用来可视化观察压测过程数据,吞吐量的值,可以在聚合报告查看。这种方法比较常用,在线程组中进行设置线程数,每秒执行,那么这个线程数一般就是业务要求的并发用户数,也就是同一时刻,能支持多少用户请求,基于的是系统的用户量,业务的要求,来指定具体的数值。
在这里插入图片描述
在这里插入图片描述

逐步加压压测

这种方式适合找到系统的最大并发量,需要我们先做负载测试(逐步增加并发用户数,找出被测系统的最大可接受的并发用户数,并考察系统性能的变化),通过逐步加压找到最大并发用户数。
最大并发用户数评判标准:
1.出现连续报错 2.平均响应时间超过3秒(3秒是行业标准) 3.tps出现下降趋势

安装相应jmeter 插件

安装jmeter 管理插件:下载地址:https://jmeter-plugins.org/install/Install/,将下载下来的jar包放到jmeter文件夹下的lib/ext路径下,然后重启jmeter。
在这里插入图片描述

打开 选项 --> Plugins Manager --> 在Available Plugins中找到Custom Thread Groups,jpgc - Standard Set 安装这两个插件,然后点击右下角图标进行安装重启,安装完成后就可以在Installer Plugins列表中看到,那么接下来就可以执行创建一个线程梯式增加组了。
在这里插入图片描述

创建测试计划

  1. 右键 测试计划 --> 添加 --> 线程
    选择”jp@gc - Stepping Thread Group“,插件
    在这里插入图片描述

    默认设定值如下:
    jp@gc- Stepping Thread Group填写数据,场景为在5秒内增加10个并发用户数,并运行30秒,再继续在5秒内增加10个并发用户数,重复循环,直至并发用户数达到200个后运行脚本60秒。然后在每1秒内减少5个并发用户数,直到减为0,结束脚本的运行
    在这里插入图片描述

  2. 添加 取样器 --> HTTP请求 --> 创建请求
    这里比较简单,类似Postman
    在这里插入图片描述

    3.添加 配置元件 --> HTTP信息头管理器
    在这里插入图片描述

    4.添加 监听器
    查看结果树、汇总报告、聚合报告、汇总图、TPS(每秒事务数)、RT(响应时间)、AT(活动线程)
    聚合报告可以填写数据保存文件和位置,方便到处HTML报表
    在这里插入图片描述

    吞吐量可以在聚合报告看到,具体的测试图,可以看看TPS
    在这里插入图片描述

    5.分析压测结果
    TPS: 这里接口在整个压测阶段并未出现异常,但是在线程数增加到200个时候还是能够保持350TPS,初步估计该接口TPS为350。

    在这里插入图片描述

    11分多钟时,接口的响应时间也是比较可观 每秒请求是600ms左右,后续增加线程数应该还会增加,但是吞吐量应该增加不会太明显。也可以增加线程数继续压测,提升准确率。
    在这里插入图片描述

    ![汇总报告,吞吐量在335,这是一个平均值,整个测试下来的均值
    在这里插入图片描述](https://i-blog.csdnimg.cn/direct/10ffbbc9e36d45c895a867505e307440.png)

    6…结论
    基于上面的测试过程,可以得出一个大致的结论,这个接口的并发量大概是350左右。当然,本次压测是在windows服务器上进行,如果其他服务器可能会有细微差异。在实际的压测过程中,应该多次压测和分析,在保证没有异常和响应时间符合标准的情况下得出结论。

生成压测HTML

由于我们在创建测试计划时候引入了聚合报告,并且填入了数据保存文件名称,现在可以直接进行数据导出HTML。
1.导航栏 工具 --> Generate-HTML report
在这里插入图片描述

2.选择数据文件及报告保存路径
在这里插入图片描述

3.生成HTML报告
直接点击生成报告按钮,提示生成完成即可。随即可进入报告保存目录查看HTML报告:
在这里插入图片描述

点击index.html可以进入查看报告
在这里插入图片描述

总结

Apache JMeter 压测接口还是比较简单的,主要分为线程组压测和逐步加压压测。如果我们需要验证接口的最大并发量推荐选择逐步加压压测,这样对接口的并发量会有个明确的结论。当前,如果能够预估接口并发量则可以直接使用线程组以最大并发量压测,这样会简单很多。

http://www.xdnf.cn/news/6455.html

相关文章:

  • Kafka如何实现高性能
  • 2025长三角杯数学建模C题思路分析:遇见“六小龙
  • VSCode CMake Debug
  • 【docker】--数据卷挂载
  • Unity3D开发AI桌面精灵/宠物系列 【六】 人物模型 语音口型同步 LipSync 、梅尔频谱MFCC技术、支持中英文自定义编辑- 基于 C# 语言开发
  • 如何安全配置好CDN用于防止DDoS与Web攻击 ?
  • 全面解析机器学习与深度学习中的模型权重文件格式与应用场景
  • 解决 Antd 日期组件国际化失败或者 TypeError: clone.weekday is not a function 问题
  • VSCode CMake工作流
  • Java并发编程:synchronized机制
  • Redis--基础知识点--26--过期删除策略 与 淘汰策略
  • 聊聊redisson的lockWatchdogTimeout
  • AWS Elastic Beanstalk部署极简Spring工程(EB CLI失败版)
  • 基于OpenCV的人脸微笑检测实现
  • 乘法口诀练习神器
  • 富文本编辑器:链接功能
  • 基于 Python Requests + Pytest + Allure 构建接口自动化测试框架的最优实践
  • 编程日志5.8
  • 【测试】测试分类
  • WebRTC 通话原理:从协商到通信
  • Intellij报错:the file size(3.47M) exceeds configured limit (2.56MB)
  • websocket入门详解
  • 第28周——InceptionV1实现猴痘识别
  • 鸿蒙OSUniApp实现个性化的搜索框与搜索历史记录#三方框架 #Uniapp
  • STM32单片机内存分配详细讲解
  • Android Studio中Gradle 7.0上下项目配置及镜像修改
  • 游戏引擎学习第280天:精简化的流式实体sim
  • 毕设设计 | 管理系统图例
  • ET EntityRef EntityWeakRef 类分析
  • 基于EFISH-SCB-RK3576/SAIL-RK3576的消防机器人控制器技术方案‌