项目性能优化—使用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)

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

    数字愈大,代表性能越好

文章转载自:随机的未知

原文链接:https://www.cnblogs.com/nicaicai/p/18079552

体验地址:引迈 - JNPF快速开发平台_低代码开发平台_零代码开发平台_流程设计器_表单引擎_工作流引擎_软件架构

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

免费开源、支持自建服务的团队协作、个人学习文档管理系统

大家好,我是小麦。今天来给大家分享的是几款个人使用过的免费、开源、适合团队协作的文档管理工具,并且是完全支持自己搭建服务的文档管理系统。 相信大家在学习、办公等场景下对文档管理工具使用的场景是比较多的,例如技术开发手册、个人学…

SpringBoot(数据库操作 + druid监控功能)

文章目录 1.JDBC HikariDataSource(SpringBoot2默认数据源)1.数据库表设计2.引入依赖 pom.xml3.配置数据源参数 application.yml4.编写一个bean,映射表5.编写测试类来完成测试1.引入依赖 pom.xml2.使用JdbcTemplate进行测试3.成功&#xff0…

基于YOLOv8/YOLOv7/YOLOv6/YOLOv5的交通信号灯识别系统(深度学习+UI界面+训练数据集+Python代码)

摘要:本研究详细介绍了一种采用深度学习技术的交通信号灯识别系统,该系统集成了最新的YOLOv8算法,并与YOLOv7、YOLOv6、YOLOv5等早期算法进行了性能评估对比。该系统能够在各种媒介——包括图像、视频文件、实时视频流及批量文件中——准确地…

Python从COCO数据集中抽取某类别的数据

1、问题描述 今天需要训练一个人工智能检测模型,用于检测图片或视频中的人。自行收集训练数据费时费力,因而选择从公开数据集COCO中进行抽取。 2、数据准备 2.1 下载 COCO2017 数据集 train:http://images.cocodataset.org/zips/train2017.zip valid…

2023年蓝桥杯省赛——幸运数字

目录 题目链接:0幸运数字 - 蓝桥云课 (lanqiao.cn) 解法 思路 高级思路 总结 题目链接:0幸运数字 - 蓝桥云课 (lanqiao.cn) 解法 首先是我写了差不多一个小时的解法,裂开了,为什么我如此废物 思路 寻找第2023个在二进制、八…

http协议的历史与基本概念

文章目录 历史和发展起源:HTTP/0.9(1991年):HTTP/1.0(1996年,RFC 1945):HTTP/1.1(1997年,RFC 2068;1999年更新为RFC 2616)&#xff1a…

【MIT 6.S081】2020, 实验记录(9),Lab: file system

目录 Task 1:Large filesTask 2:Symbolic links2.1 增加一个系统调用 symlink2.2 新增文件类型2.3 新增 NOFOLLOW 标志位2.4 实现 sys_symlink 系统调用2.5 修改 sys_open 函数2.6 测试 Task 1:Large files 现在的 xv6 系统中,一…

算法——贪心算法

《算法图解》——贪心算法 # 首先创建一个表,包含所覆盖的州 states_needed set([mt,wa,or,id,nv,ut,az]) # 传入一个数组,转换成一个集合#可供选择的广播台清单 stations {} stations[kone] set([id,nv,ut]) #用集合表示想要覆盖的州,且不…

EMQX 4.0和EMQX 5.0集群架构实现1亿MQTT连接哪些改进

EMQX 5.0水平扩展能力得到了指数级提升,能够更可靠地承载更大规模的物联网设备连接量。 在EMQX5.0正式发布前的性能测试中,我们通过一个23节点的EMQX集群,全球首个达成了1亿MQTT连接每秒100万消息吞吐,这也使得EMQX 5.0成为目前为…

Jenkins流水线将制品发布到Nexus存储库

1、安装jenkins(建议别用docker安装,坑太多) docker run -d -p 8089:8080 -p 10241:50000 -v /var/jenkins_workspace:/var/jenkins_home -v /etc/localtime:/etc/localtime --name my_jenkins --userroot jenkins/jenkins:2.449 坑1 打开x…

Python使用 k 均值对遥感图像进行语义分割

本篇文章介绍K-means语义分割来估计 2000 年至 2023 年咸海水面的变化 让我们先看一下本教程中将使用的数据。这是同一地区的两张 RGB 图像,间隔 23 年,但很明显地表特性和大气条件(云、气溶胶等)不同。这就是为什么我决定训练两个独立的 k-Means 模型,每个图像一个。 首…

仰卧起坐计数,YOLOV8POSE

仰卧起坐计数,YOLOV8POSE 通过计算膝盖、腰部、肩部的夹角,计算仰卧起坐的次数

[江苏工匠杯]easyphp

先看源码 <?php highlight_file(__FILE__); $key1 0; $key2 0; ​ $a $_GET[a]; $b $_GET[b]; ​ if(isset($a) && intval($a) > 6000000 && strlen($a) < 3){if(isset($b) && 8b184b substr(md5($b),-6,6)){$key1 1;}else{die("…

mvn 相关命令汇总

1、需求 项目上一致是使用的mvn 进行打包, 对于项目上的一些mvn 命令&#xff0c;有时候会忘记&#xff0c;所以将mvn 汇总起来 2、命令汇总 ① mvn clean 将项目目录下的编译的文件清除掉,即target 文件夹的编译文件 ② mvn complie 编译项目的代码&#xff0c;生成class 文…

Spring boot2.7整合jetcache方法缓存

前面的文章 我们讲了 spring boot 整合 jetcache 做基本字符串数据缓存 但是 我这里有个这样的逻辑 我的 domain 包下 有一个 book 属性类 里面就 id 和 name 属性 设置了 对应的 set get函数 和一个整体的构造函数 package com.example.javadom.domain;public class book {pr…

TrueNAS怎么设置中文,最新2024版本安装详细说明

首先我们做好安装前的准备工作 1&#xff0c;ISO镜像安装包 2&#xff0c;虚拟机&#xff08;建议使用ESXI虚拟机环境&#xff09; 如果是物理机安装&#xff0c;建议先给底层安装虚拟机系统esxi&#xff0c;再在上面安装方便以后的管理&#xff0c;如果你想物理机直接安装&a…

3.15消费者权益保护教育宣传活动怎样联系媒体投稿宣传?

在315金融消费者权益保护教育宣传活动中,想要有效地联系媒体报道并进行便捷宣传,可以通过以下步骤来利用智慧软文发布系统进行操作: 1. 准备宣传素材: - 制作高质量的新闻稿件,内容应围绕金融消费者权益保护的主题,包含活动的目的、特色、实施计划、预期影响、参与方式等细节;…

怎么看一手伦敦银多少钱?

做伦敦银投资的朋友需要搞清楚“一手伦敦银多少钱”的问题&#xff0c;这也是伦敦银交易的基础问题。为什么需要搞清楚这个基础问题呢&#xff1f;有些基础问题我们不需要搞懂&#xff0c;但是关于一手伦敦银多少钱却需要搞清楚&#xff0c;因为这决定了投资者的资金利用率。 关…

复合材料热压机比例阀放大器

复合材料热压机动作主要依赖于其内置的液压系统。是工业生产中常用的设备&#xff0c;通过施加高温和高压来实现对材料的压制成型。为了确保热压板能够精确地上下移动以及保持所需的压力&#xff0c;通常会使用液压系统来控制。液压系统中必不可少的需要比例阀来控制油缸的运行…

【数字孪生】Nginx发布数字孪生三维建模模型服务及调用方法

【数字孪生】Nginx发布数字孪生三维建模模型服务及调用方法 一、需求二、实施步骤2.1 准备模型文件2.1.1 3D tiles模型2.1.2 3D Tiles标准文件格式 2.2 配置nginx server块2.2.1 Nginx能干啥 2.3 访问 三、实现效果 一、需求 利用三维渲染引擎Cesium加载3D tiles模型。 二、实…