相关推荐recommended
项目性能优化—使用JMeter压测SpringBoot项目
作者:mmseoamin日期:2024-03-20

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

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

项目性能优化—使用JMeter压测SpringBoot项目,压力测试架构图,第1张

配置JMeter

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

项目性能优化—使用JMeter压测SpringBoot项目,jmeter.bat,第2张

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

项目性能优化—使用JMeter压测SpringBoot项目,添加线程组,第3张

进行配置

项目性能优化—使用JMeter压测SpringBoot项目,配置,第4张

一共会发生4万次请求。

ctrl + s保存;

添加http请求:

项目性能优化—使用JMeter压测SpringBoot项目,添加Http请求,第5张

配置http请求:

项目性能优化—使用JMeter压测SpringBoot项目,配置http请求,第6张

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

项目性能优化—使用JMeter压测SpringBoot项目,配置断言,第7张

正常响应如下:

项目性能优化—使用JMeter压测SpringBoot项目,正常响应,第8张

项目性能优化—使用JMeter压测SpringBoot项目,配置断言,第9张

添加断言持续时间

项目性能优化—使用JMeter压测SpringBoot项目,断言持续时间,第10张

项目性能优化—使用JMeter压测SpringBoot项目,持续时间断言,第11张

添加察看结果树:

项目性能优化—使用JMeter压测SpringBoot项目,结果树,第12张

添加汇总报告:

项目性能优化—使用JMeter压测SpringBoot项目,汇总报告,第13张

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

项目性能优化—使用JMeter压测SpringBoot项目,添加聚合报告,第14张

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

项目性能优化—使用JMeter压测SpringBoot项目,图形结果,第15张

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

项目性能优化—使用JMeter压测SpringBoot项目,汇总图,第16张

发送请求测试

发送请求

项目性能优化—使用JMeter压测SpringBoot项目,发送请求,第17张

压力测试结果解析

聚合报告

项目性能优化—使用JMeter压测SpringBoot项目,聚合报告,第18张

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

    察看结果树

    项目性能优化—使用JMeter压测SpringBoot项目,察看结果树,第19张

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

    汇总报告

    类似于聚合报告。

    线程组配置解析

    1. 线程数:用来发送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直接在线下载,然后执行在线下载即可。

        项目性能优化—使用JMeter压测SpringBoot项目,下载插件,第20张

        下载好后放到lib\ext下;

        再把JMeter重启;

        可以看到插件管理器:

        项目性能优化—使用JMeter压测SpringBoot项目,插件管理器,第21张

        下载如下两个插件:

        项目性能优化—使用JMeter压测SpringBoot项目,下载两个插件,第22张

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

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

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

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

        项目性能优化—使用JMeter压测SpringBoot项目,添加监听器,第23张

        性能关键指标分析

        • TPS:每秒的事务数

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

        • QPS:每秒的查询数量

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

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

          数字愈大,代表性能越好