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

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

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

压力测试架构图

配置JMeter

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

jmeter.bat

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

添加线程组

进行配置

配置

一共会发生4万次请求。

ctrl + s保存;

添加http请求:

添加Http请求

配置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)

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

    数字愈大,代表性能越好

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/465887.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Aigtek电压放大器的作用及优点是什么

电压放大器是电子技术领域中重要的设备,其作用是将输入信号的电压放大到所需的输出电压水平。电压放大器具有多种优点,下面安泰电子将详细介绍其作用及主要优点。 电压放大器的主要作用是增加信号的电压幅值。通过放大信号的电压,可以增强信号…

网络架构层_服务器上下行宽带

网络架构层_服务器上下行宽带 解释一 云服务器ECS网络带宽的概念、计费、安全及使用限制_云服务器 ECS(ECS)-阿里云帮助中心 网络带宽是指在单位时间(一般指的是1秒钟)内能传输的数据量,带宽数值越大表示传输能力越强,即在单位…

就业班 2401--3.13 走进网络

走进网络 长风破浪会有时,直挂云帆济沧海。 1.认识计算机 1.计算机网络是由计算机和通讯构成的,网络研究的是“通信”。 ------1946 世界上第一台计算机 2.终端:只有输入和输出功能,没有计算和处理功能。 3.数据:一串…

深入浅出Go的`encoding/xml`库:实战开发指南

深入浅出Go的encoding/xml库:实战开发指南 引言基本概念XML简介Go语言中的XML处理结构体标签(Struct Tags) 解析XML数据使用xml.Unmarshal解析XML结构体标签详解处理常见解析问题 生成XML数据使用xml.Marshal生成XML使用xml.MarshalIndent优化…

Linux服务器磁盘更改挂载目录

linux服务器磁盘弹性扩容时,会出现没有挂载到理想的目录下,这时候就需要通过命令从新挂载目录,以下示例是把默认挂载目录/home更改为/data 1,df -lh ####查看现有挂载信息 2.lsblk ###查看文件形式,确保原有数据盘文件结构。 3.…

团队如何限制合适的在制品(WIP)数量?

看板之父David Anderson曾说过“看板的本质是一个很朴素的思想:在制品必须被限制。”但对于团队来说,确定一个合适的在制品限制可能是件棘手的事。 在《看板快速启动指南》一文中,我们已经初步了解如何打造一个看板,今天我们来一…

java学习之路-方法讲解

目录 1.方法概念及使用 1.1什么是方法 1.2方法定义 1.3 方法调用的执行过程 1.4 实参和形参的关系(重要) 1.5 没有返回值的方法 2.方法重载 3.方法递归 3.1递归概念 3.2递归执行过程分析 3.3递归练习 代码示例1 代码示例2 1.方法概念及使用 1.1什么是方法 方法就是…

jetson nano——编译一些包的网址导航,pyside2,qt(持续更新)

目录 1.PySide2下载地址2.tesserocr下载地址3.Qt下载地址4.OpenSSL官网5.latex编译器下载地址5.1MikTex5.2TeX Live 1.PySide2下载地址 https://download.qt.io/official_releases/QtForPython/pyside2/ 如下图: 2.tesserocr下载地址 https://github.com/simonflue…

python网络编程:通过socket实现TCP客户端和服务端

目录 写在开头 socket服务端(基础) socket客户端(基础) 服务端实现(可连接多个客户端) 客户端实现 数据收发效果 写在开头 近期可能会用python实现一些网络安全工具,涉及到许多关于网络…

PythonWeb——Django框架

框架介绍 1.什么是框架? 框架就是程序的骨架,主体结构,也是个半成品。 2.框架的优缺点 可重用、成熟,稳健、易扩展、易维护 3.Python中常见的框架 大包大揽 Django被官方称之为完美主义者的Web框架。力求精简web.py和Tornado新生代微框架Flask和B…

hadoop分布式环境ssh设置免密登陆之后目标主机更换无法连接解决

在进行hadoop分布式环境搭建时(三台机,master,slave1,slave2),后期slave2系统出现问题,更换新机后,master与slave2文件传输失败: 以为是秘钥过期的问题,更换…

【Linux】一文解决如何在终端查看 python解释器 的位置

【Linux】一文解决如何在终端查看 python解释器 的位置 🌈 个人主页:高斯小哥 🔥 高质量专栏:Matplotlib之旅:零基础精通数据可视化、Python基础【高质量合集】、PyTorch零基础入门教程👈 希望得到您的订阅…

Github主页设置贪吃蛇详细教程

先看最终实现结果: 有条贪吃蛇放在主页还是蛮酷的哈哈哈。接下来我来讲一讲怎么在Github主页添加一条贪吃蛇。 首先要修改自己的Github的主页,我们得有一个特殊的仓库——这个仓库必须与你的Github用户名保持一致,并且需要公开&#xff0c…

静默快速安装oracle 19c

静默快速安装oracle 19c 1.配置yum源 1.配置网络yum源 1.删除redhat7.0系统自带的yum软件包; rpm -qa|grep yum >oldyum.pkg 备份原信息rpm -qa|grep yum|xargs rpm -e --nodeps 不检查依赖,直接删除rpm包 1232.自行下载所需要的软件包。包名会…

求解3、4、6自由度仿射变换矩阵

说明:一开始将目光放在了opencv上,发现只有4、6自由度的仿射变换求解,后来发现skimage十分强大。 注:美中不足的是,skimage的实现没有RANSAC。 function:skimage.transform.estimate_transform() ttypeeu…

【SpringMVC】SpringMVC的整体执行流程

概述:MVC是一种设计模式,SpringMVC是按照MVC模式实现的优秀框架,可以帮助我们更简洁的完成Web开发,并且天然与Spring集成。后端项目分为Service层(处理业务)、Dao层(数据库操作)、En…

Java复习03 多线程

Java复习03 多线程 初学的时候 我的问题是 多线程是什么意思?进程和线程的区别? 线程创建的方式是什么?线程的状态是什么意思?分为哪几类?线程同步又是什么意思?有哪几种情况 ?静态代理是什么意…

外贸人自己的时间管理方法,建议收藏

“最近忙吗?”好像取代“吃了吗”,成为外贸生活非常常见的问候了,有些人可能是真的很忙,有的人的忙可能是因为没有计划跟安排造成了的。 其实业务做的时间长了,容易形成惯性,做事情一成不变,按…

超分辨率(3)--基于RCAN网络实现图像超分辨率重建

一.项目介绍 RCAN:Residual Channel Attention Network(残差通道注意网络 ) 卷积神经网络(CNN)的深度对于图像超分辨率(SR)是极其关键的因素。然而,我们观察到,更深层次的图像SR网络更难训练。低分辨率的输入和特征包含丰富的低…

HCIA——TCP协议详解

目录 1、TCP概念及协议头部格式 1.1TCP特点 1.2TCP协议协议头部格式 1.3字段进行介绍 1.3.1源端口和目的端口 1.3.2序号(seq) 1.3.3确认序号(ack) 1.3.4数据偏移 1.3.5标志位 1.3.6窗口 1.3.7校验和 1.3.8紧急指针 2、TCP的可靠性 2.1 TCP可靠性的保障 2.2排序机…