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

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

相关文章:

  • Python logging模块使用指南
  • YOLO11解决方案之队列管理探索
  • 构建RAG混合开发---PythonAI+JavaEE+Vue.js前端的实践
  • 前端三大件---JavaScript
  • 【开源Agent框架】OWL:面向现实任务自动化的多智能体协作框架深度解析
  • Linux常用方法
  • Apache HttpClient 5 用法-Java调用http服务
  • 阿里开源通义万相Wan2.1-VACE-14B:用于视频创建和编辑的一体化模型
  • 什么是TCP协议?它存在哪些安全挑战?
  • docker 命令操作大全
  • 【寻找Linux的奥秘】第五章:认识进程
  • window 显示驱动开发-命令和 DMA 缓冲区简介
  • 生成式AI在编程中的应用场景:从代码生成到安全检测
  • Java转Go日记(三十六):简单的分布式
  • LeetCode 热题 100 437. 路径总和 III
  • Day118 | 灵神 | 二叉树 | 删点成林
  • 详解 Zephyr RTOS:架构、功能与开发指南
  • Makefile 在 Go 项目中的实践
  • 养生:打造健康生活的四大支柱
  • 和为target问题汇总
  • 自然资源部:不动产登记累计化解遗留问题房屋2000多万套
  • 2000多年前的“新衣”长这样!马王堆文物研究新成果上新
  • 北京警方:海淀发生小客车刮碰行人事故4人受伤,肇事司机已被查获
  • 特朗普访问卡塔尔,两国签署多项合作协议
  • 美国调整对华加征关税
  • 事关心脏健康安全,经导管植入式人工心脏瓣膜国家标准发布