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

使用Jmeter进行核心API压力测试

最近公司有发布会,需要对全链路比较核心的API的进行压测,今天正好分享下压测软件Jmeter的使用。

一、什么是Jmeter?

JMeter 是 Apache 旗下的基于 Java 的开源性能测试工具。最初被设计用于 Web 应用测试,现已扩展到可测试多种不同的应用程序、服务和协议,例如 HTTP、FTP、JDBC、SOAP、REST 等。

它能模拟大量并发用户向目标系统发送请求,收集并分析系统在不同负载下的性能数据,帮助测试人员评估系统的性能和瓶颈。

二、如何使用

1. 下载安装

在官网直接下载Jmeter的安装包。
在这里插入图片描述

  • mac选.tgz。
  • windows选.zip

下载完成之后解压。

2. 配置环境变量并启动

这里以mac为例。

a. 首先打开bash_profile文件

 vim ~/.bash_profile

b. 配置环境变量

export JMETER_HOME=/Users/***/Downloads/apache-jmeter-5.6.3 # 替换成你的jmeter安装包的路径
export PATH=$JMETER_HOME/bin:$PATH  
export CLASSPATH=$JMETER_HOME/lib/ext/ApacheJMeter_core.jar:$JMETER_HOME/lib/jorphan.jar:$JMETER_HOME/lib/logkit-2.0.jar:$CLASSPATH

c. 执行以下命令,让bash_profile生效

 source ~/.bash_profile

d. 终端输入jmeter或者在jmeter的bin文件下找到jmeter的可执行文件点击均可启动
在这里插入图片描述

3. 初始化测试计划

在这里插入图片描述

5. 初始化线程组

在这里插入图片描述

  • 线程数
    表示并发请求的数
  • Ramp-Up时间
    在该时间内启动设定的线程数。
    如上图所示,则表示5秒内启动50000个线程发送50000个请求。
  • 循环次数
    表示循环执行线程发送请求的次数。上图中给出的示例则表示每5秒内启动50000个线程发送50000个请求,总计执行10次,合计50w个请求。

最终的测试结果与这三个参数有很大关系,请结合业务需求合理配置。

6. 配置http请求并执行

在这里插入图片描述
假如你的API地址是http.qd.com/demo/get-test-data。

那么服务器名称或IP地址这里填http.qd.com, 路径填/demo/get-test-data。

请求参数或请求体按需填写即可。

填写完成后,点击执行即可

7. 评估压测结果

添加以下三项即可。
在这里插入图片描述

  • 查看结果树
    结果树中看到每一个Http请求的详细数据,包括请求和相应数据。
    在这里插入图片描述
  • 汇总报告
    在这里插入图片描述
    最大值和最小值表示这些样本中响应时长的最大值和最小值,单位为ms。
  • 聚合报告
    在这里插入图片描述
    90%百分位,表示90%的请求,响应时间小于等于14157ms。
    95%百分位和99%百分位类似。
http://www.xdnf.cn/news/4770.html

相关文章:

  • 如何进行APP安全加固
  • 计算机视觉与深度学习 | 基于Transformer的低照度图像增强技术
  • 用react实现一个简单的三页应用
  • nut-form表单:实现动态新增、校验
  • android ViewModel liveData无法监听之多线程下activityViewModels不安全
  • ISP gamma校正简介
  • 如何对外包团队进行有效的管理?
  • JAVA房屋租售管理系统房屋出租出售平台房屋销售房屋租赁房屋交易信息管理源码
  • 总线通信篇:I2C、SPI、CAN 的底层结构与多机通信设计
  • Python核心数据结构深度对比:列表、字典、元组与集合的异同与应用场景
  • 浏览器刷新结束页面事件,调结束事件的接口(vue)
  • 谷歌 Gemma 大模型安装步骤
  • oracle goldengate非并行进程转换为并行进程
  • Python3正则表达式:字符串魔法师的指南[特殊字符]‍♂️
  • 【C语言】--指针超详解(二)
  • 非对称加密:为什么RSA让“公开传密”成为可能
  • 计算机科技笔记: 容错计算机设计01 概述 教材书籍 课程安排 发展历史
  • Python连接云端服务器:基于Paramiko库的实践与问题剖析
  • LeetCode 3341.到达最后一个房间的最少时间 I:Dijkstra算法(类似深搜)-简短清晰的话描述
  • 9. 从《蜀道难》学CSS基础:三种选择器的实战解析
  • 密码学--RSA
  • 【AI提示词】费曼学习法导师
  • 缓存套餐-01.Spring Cache介绍和常用注解
  • LeetCode 3341到达最后一个房间的最少时间 I 题解
  • 基于大模型的计划性剖宫产全流程预测与方案优化研究报告
  • 跨浏览器自动化测试的智能生成方法
  • rom定制系列------红米note12 5G版miui14修改型号root版 原生安卓14批量线刷固件 原生安卓15等
  • STM32 ADC
  • 可撤销并查集,原理分析,题目练习
  • 数据结构(三)——栈和队列