项目性能优化—使用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
察看结果树
记录了样本中每一次的请求
汇总报告
类似于聚合报告。
线程组配置解析
线程数:用来发送http请求的线程数量
- 线程组常用来模拟一组用户访问系统资源(接口)。如果接口响应速度快,就没必要使用太多线程数,如果响应慢,需要使用很多的线程,来测试接口能扛住的压力。如果客户机没有足够能力模拟较重负载,可以使用JMeter分布式压力测试。
Ramp-up(in-seconds):建立全部线程耗时:
代表隔多长时间执行,默认值是0,0代表同时并发,用于告知JMeter要在多长时间内建立全部线程。
循环次数:循环执行多少次操作
- 循环次数直接决定整个测试单个线程的执行时间,和整体测试执行时间。
- 单线程执行时间 = 单请求平均响应时间 * 循环次数
- 整个测试耗时= 单线程执行时间 + (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)
吞吐量:每秒的请求数量
数字愈大,代表性能越好
项目性能优化—使用JMeter压测SpringBoot项目的更多相关文章
- 性能工具之Jmeter压测Hprose RPC服务
概述 Hprose(High Performance Remote Object Service Engine),国人开发的一个远程方法调用的开源框架.它是一个先进的轻量级的跨语言跨平台面向对象的高性 ...
- 性能工具之Jmeter压测Thrift RPC服务
概述 Thrift是一个可互操作和可伸缩服务的框架,用来进行可扩展且跨语言的服务的开发.它结合了功能强大的软件堆栈和代码生成引擎,以构建在 C++, Java, Python, PHP, Ruby, ...
- 【Java分享客栈】未来迈向高级工程师绕不过的技能:JMeter压测
前言 因为工作需要,久违的从自己的有道云笔记中去寻找压测相关的内容,翻开之后发现还不错,温故一遍后顺便整理出来分享给大家. 题外话,工作8年多,有道云笔记不知不觉都6G多了,扫一眼下来尽是云烟过往,竟 ...
- 一文揭秘测试平台中是如何将测试用例一键转化Jmeter压测脚本
接上篇,一键转化将接口测试平台测试用例转化成Jmeter压测脚本思路,这里我首先在java 上面做了一个简单的实验,看看 转化的中间遇到的问题,这里呢,我只是给了一个简单的demo 版本, ...
- JMeter压测分布式部署
监控JMeter压力机的性能
- windows下Jmeter压测端口占用问题
https://blog.csdn.net/weixin_43757847/article/details/88188091 1 前情提要人脸识别项目中,云平台新增了人脸识别的校验接口.考虑到存在大量 ...
- jmeter压测、操作数据库、分布式linux下运行、webservice接口测试、charles抓包
一.jmeter压测 在线程组中设置好,然后添加http请求,t添加聚合报告查看压力测试结果,如图: 一般压测时间10-15分钟,如果是稳定性测试,一般n*12小时,这些并发用户一直在请求. tps: ...
- windows下Jmeter压测端口占用问题(亲测有效)
windows下Jmeter压测端口占用问题 1 报错信息描述 压测的初期,在设置了 150qps/s 的并发数下压测几分钟后 Jmeter 就出现了如下报错. JAVA.NET.BINDEXCEPT ...
- jmeter压测、操作数据库、分布式、 linux下运行的简单介绍
一.jmeter压测 1.如何压测 常规性能压测:10-15分钟 稳定性测试:一周.2天等 如果想要压测10分钟,勾选永远,勾选调度器,填写600秒.也可以使用固定启动时间. 2.tps.响应时间 ( ...
- jmeter压测app
使用代理的方式,录制app端脚本,之后用jmeter压测就没啥好说的了 1.电脑端谷歌设置本地代理(端口号为8888) 2.jmeter设置HTTP代理服务器(端口号为8888) 3.手机端wifi设 ...
随机推荐
- java中“0x”表示的含义
public static void main(String[] args) { int a = 0xff;//16进制默认是int int b = 0x000000ff; System.out.pr ...
- delphi IDE 控件居中的方法
- Linux-数据集 TPC-H、TPC-DS的导入和使用(MySQL)
一. TPC-H 数据集 1.数据集下载 TPC-H数据集: https://github.com/gregrahn/tpch-kit 可采用gcc下载或者直接下载zip包,然后解压即可. 具体使用方 ...
- [JVM]GC日志解读解析
GC日志解读解析 示例代码 package jvm.test1; import java.util.Random; import java.util.concurrent.TimeUnit; impo ...
- Kettle如何连接SQL Server和问题处理
简介 Kettle(也称为 Pentaho Data Integration)是一款开源的 ETL(Extract, Transform, Load)工具,由 Pentaho 开发.ETL 是指从一个 ...
- OpenWrt 21.02.2 记录: PPPoE, Wireguard
OpenWrt 21.02 OpenWrt 21.02.2 是 OpenWrt 当前最新的稳定版, 内核 5.4.179, 这个内核已经内置了 Wireguard 模块 root@OpenWrt:~# ...
- vue+element-ui项目搭建实战
1.使用vue ui创建vue工程 利用vue-cli提供的图形化工具快速搭建vue工程: 命令行运行:vue ui 工程结构说明 build:项目构建webpack(打包器)相关代码 config: ...
- powerdesigner导出模型为RTF
在设计模型的时候需要将设计好的模型进行尺寸调整并复制到word中.这时候就需要利用导出报告功能,导出为word格式. 再做进一步处理. 1.选择[报告]-[Generate Report] 2.自动打 ...
- 多线程系列(九) -ReentrantLock常用方法详解
一.简介 在上一篇文章中,我们介绍了ReentrantLock类的一些基本用法,今天我们重点来介绍一下ReentrantLock其它的常用方法,以便对ReentrantLock类的使用有更深入的理解. ...
- 常见的问题系列--- Swagger @ApiOperationSupport忽略失效的问题
https://www.cnblogs.com/hujunwei/p/15853307.html