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

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

    数字愈大,代表性能越好

项目性能优化—使用JMeter压测SpringBoot项目的更多相关文章

  1. 性能工具之Jmeter压测Hprose RPC服务

    概述 Hprose(High Performance Remote Object Service Engine),国人开发的一个远程方法调用的开源框架.它是一个先进的轻量级的跨语言跨平台面向对象的高性 ...

  2. 性能工具之Jmeter压测Thrift RPC服务

    概述 Thrift是一个可互操作和可伸缩服务的框架,用来进行可扩展且跨语言的服务的开发.它结合了功能强大的软件堆栈和代码生成引擎,以构建在 C++, Java, Python, PHP, Ruby, ...

  3. 【Java分享客栈】未来迈向高级工程师绕不过的技能:JMeter压测

    前言 因为工作需要,久违的从自己的有道云笔记中去寻找压测相关的内容,翻开之后发现还不错,温故一遍后顺便整理出来分享给大家. 题外话,工作8年多,有道云笔记不知不觉都6G多了,扫一眼下来尽是云烟过往,竟 ...

  4. 一文揭秘测试平台中是如何将测试用例一键转化Jmeter压测脚本

    ​    ​接上篇,一键转化将接口测试平台测试用例转化成Jmeter压测脚本思路,这里我首先在java 上面做了一个简单的实验,看看 转化的中间遇到的问题,这里呢,我只是给了一个简单的demo 版本, ...

  5. JMeter压测分布式部署

    监控JMeter压力机的性能

  6. windows下Jmeter压测端口占用问题

    https://blog.csdn.net/weixin_43757847/article/details/88188091 1 前情提要人脸识别项目中,云平台新增了人脸识别的校验接口.考虑到存在大量 ...

  7. jmeter压测、操作数据库、分布式linux下运行、webservice接口测试、charles抓包

    一.jmeter压测 在线程组中设置好,然后添加http请求,t添加聚合报告查看压力测试结果,如图: 一般压测时间10-15分钟,如果是稳定性测试,一般n*12小时,这些并发用户一直在请求. tps: ...

  8. windows下Jmeter压测端口占用问题(亲测有效)

    windows下Jmeter压测端口占用问题 1 报错信息描述 压测的初期,在设置了 150qps/s 的并发数下压测几分钟后 Jmeter 就出现了如下报错. JAVA.NET.BINDEXCEPT ...

  9. jmeter压测、操作数据库、分布式、 linux下运行的简单介绍

    一.jmeter压测 1.如何压测 常规性能压测:10-15分钟 稳定性测试:一周.2天等 如果想要压测10分钟,勾选永远,勾选调度器,填写600秒.也可以使用固定启动时间. 2.tps.响应时间 ( ...

  10. jmeter压测app

    使用代理的方式,录制app端脚本,之后用jmeter压测就没啥好说的了 1.电脑端谷歌设置本地代理(端口号为8888) 2.jmeter设置HTTP代理服务器(端口号为8888) 3.手机端wifi设 ...

随机推荐

  1. CF1841

    A 题意:给一个长度为 \(n\) 的全是 \(1\) 的数列,Alice 先操作,Bob 交替.每次操作选择至少两个(可以更多)相等的数字,删除它们,在序列中加入它们的和.直到有人不能操作为止,这个 ...

  2. 提高Java开发生产力,我选Stream API,真香啊

    Java 8 引入的Stream API提供了一种新的数据处理方式,它以声明式.函数式的编程模型,极大地简化了对集合.数组或其他支持数据源的操作.Stream可以被看作是一系列元素的流水线.允许你高效 ...

  3. mysql 外键索引入门介绍,为什么工作中很少有人使用?

    背景 以前工作学习中,一直被告诫不要使用外键,所以也没有仔细整理过. 这里记录一下笔记. 外键 是什么? MySQL 的外键(Foreign Key)是一种关系型数据库中用于建立表与表之间关联关系的重 ...

  4. 解决putty连接报 connection refused

    Ubuntu中换个速度快点的源后 执行 $sudo apt-get install openssh-server 安装ssh协议 执行ifconfig显示Ubuntu的ip地址 xp中用putty输入 ...

  5. Java并发编程实例--6.线程的join方法

    有时我们需要等到某个线程执行完毕.例如,我可能有一个线程来初始化资源完毕然后其他线程才能开始执行. 谓词,我们可以使用Thread类的join()方法. 本例中,我们将学习使用这个方法. DataSo ...

  6. dp题单——区间dp

    一.基本概念 1.链式区间dp for(int len = 2; len <= n; len++){ //枚举区间长度 for(int i = 1; i + len - 1 <= n; i ...

  7. EXPLAIN命令

    EXPLAIN命令   除了以SELECT开头的查询语句,其余的DELETE.INSERT.REPLACE以及UPDATE语句前边都可以加上EXPLAIN这个词儿,用来查看这些语句的执行计划   Ty ...

  8. Direct2D 画刷篇

    微软文档:Brushes overview 本篇通过官方文档学习,整理出来的demo,初始样本请先创建一个普通的desktop app. // Test_Direct2D_Brush.cpp : De ...

  9. win32 - Rendering a Stream示例

    仅供参考 文档: Rendering a Stream 代码示例: #include <cstdio> #include <Windows.h> // Windows mult ...

  10. 【Android逆向】反调试绕过

    1. 拿到52pojie的反调试挑战apk 链接: https://www.52pojie.cn/thread-742686-1-1.html 的附件中 2. 项目进行安装,点开app,同时挑战成功, ...