项目性能优化—使用JMeter压测SpringBoot项目

项目性能优化---使用JMeter压测SpringBoot项目

我们的压力测试架构图如下:

配置JMeter

在JMeter的bin目录,双击jmeter.bat

新建一个测试计划,并右键添加线程组:

进行配置

一共会发生4万次请求。

ctrl + s保存;

添加http请求:

配置http请求:

配置断言,来判断当前请求是否成功:

正常响应如下:

添加断言持续时间

添加察看结果树:

添加汇总报告:

相似的操作,也添加聚合报告:

相似的操作,添加图形结果:

相似的操作,添加汇总图:

发送请求测试

发送请求

压力测试结果解析

聚合报告

  • 样本(Sample):发送请求的总样本数量
  • 响应时间(RT):平均值,P90,P95,P99,Min,Max
  • 异常(Error):出现错误的百分比
  • 吞吐量(Throughput):被测试接口的吞吐能力
  • 发送与接收数据量:KB/sec

察看结果树

记录了样本中每一次的请求

汇总报告

类似于聚合报告。

线程组配置解析

  1. 线程数:用来发送http请求的线程数量

    • 线程组常用来模拟一组用户访问系统资源(接口)。如果接口响应速度快,就没必要使用太多线程数,如果响应慢,需要使用很多的线程,来测试接口能扛住的压力。如果客户机没有足够能力模拟较重负载,可以使用JMeter分布式压力测试。
  2. Ramp-up(in-seconds):建立全部线程耗时:

    代表隔多长时间执行,默认值是0,0代表同时并发,用于告知JMeter要在多长时间内建立全部线程。

  3. 循环次数:循环执行多少次操作

    • 循环次数直接决定整个测试单个线程的执行时间,和整体测试执行时间。
    • 单线程执行时间 = 单请求平均响应时间 * 循环次数
    • 整个测试耗时= 单线程执行时间 + (Ramp-Up - Ramp-UP / 线程数)

JMeter压测插件

Basic Graphs主要显示:

  • Average Response Time平均响应时间
  • Active Threads活动线程数
  • Successful/Failed Transactions成功/失败事务数

Additional Graphs主要显示

  • Response Codes
  • Bytes ThroughputConnect Times
  • Latency
  • Hits/s

开启插件下载

下载地址: https://jmeter-plugins.org/install/Install/,官网上下载plugins-manager.jar直接在线下载,然后执行在线下载即可。

下载好后放到lib\ext下;

再把JMeter重启;

可以看到插件管理器:

下载如下两个插件:

安装成功后添加如下三个监听器:

响应时间:jp@gc - Response Times Over Time

活动线程数:jp@gc - Active Threads Over Time

每秒事务数:jp@gc - Transactions per Second

性能关键指标分析

  • TPS:每秒的事务数

    数字愈大,代表性能越好;

  • QPS:每秒的查询数量

    数字愈大,代表性能越好(1TPS >= 1QPS)

  • 吞吐量:每秒的请求数量

    数字愈大,代表性能越好

相关推荐
tianyuanwo6 小时前
Rsync 性能优化实战:从慢速同步到高效传输的深度调优
性能优化·rsync·跨主机
升讯威在线客服系统8 小时前
从 GC 抖动到稳定低延迟:在升讯威客服系统中实践 Span 与 Memory 的高性能优化
java·javascript·python·算法·性能优化·php·swift
DemonAvenger8 小时前
深入理解Kafka分区策略:实现数据均衡分布的最佳实践
性能优化·kafka·消息队列
许愿OvO8 小时前
大规模Web服务Nginx核心配置与性能优化实战
linux·nginx·性能优化
笨小孩丶10 小时前
前端性能优化实战:Map映射 vs 递归,差距210倍!
前端·性能优化·webworker·map映射·大数据渲染
国科安芯19 小时前
芯片抗单粒子性能研究及其在商业卫星测传一体机中的应用
嵌入式硬件·安全·fpga开发·性能优化·硬件架构
小龙报1 天前
【Coze-AI智能体平台】Coze 工作流 = 智能体的 “流程管家”?一文解锁自动化落地新玩法
人工智能·语言模型·自然语言处理·性能优化·数据分析·知识图谱·需求分析
一个天蝎座 白勺 程序猿1 天前
国产数据库破局之路——KingbaseES与MongoDB替换实战:从场景到案例的深度解析
开发语言·数据库·mongodb·性能优化·kingbasees·金仓数据库
程序员ys1 天前
网页白屏的原理与优化
前端·性能优化·浏览器
千里马学框架1 天前
app性能优化:优化布局层次结构
android·面试·性能优化·framework·分屏·布局·小米汽车