使用jmeter压力测试

发布于:2025-02-10 ⋅ 阅读:(135) ⋅ 点赞:(0)

本文介绍jmeter作为压力测试工具的使用,包括压测、插件配置。在最后,结合虚机,演示了jmeter配置监控服务器的实时状态,希望对大家有帮助。
另外:本文适合有一定开发经验的同学。

0、环境

  • jdk:1.8
  • jmeter:5.4.1

1、下载和安装

jmeter官网: 点击这里,下载jmeter相关版本。下载完成后解压,利用命令行启动(jdk必须安装且正确配置环境变量):

bin/jmeter

如果正常,能看到如下界面:
在这里插入图片描述
出现这个界面,说明jmeter启动成功。

1.1、有个坑

我解压并且通过命令行启动后,也能显示上面的界面,但是不能保存测试计划。查了一下,我前几天新安装了jdk 21,切换到java8,一切正常。大家注意版本对应的jdk。

2、测试计划

jmeter的压力测试的过程:测试计划 -> 线程组 -> 采样器 -> 断言->结果监听

2.1、新建测试计划

新建测试计划比较简单,给个名字即可,如下图:
在这里插入图片描述

2.2、添加线程组

按下图操作:
在这里插入图片描述
完成后,出现如下界面:
在这里插入图片描述
有三处我已经标出来了,测试时按自己的需求输入对应的参数。我简单解释一下:

  • 线程数:大家就当同时多个用户访问来理解,一个线程对应一个用户
  • Ramp-up:预热时间,实际的环境不可能立即流量上来,有一个缓存时间
  • 循环次数:一个线程循环访问的次数

2.3、添加采样器

按下图操作:
在这里插入图片描述
出现下图界面:
在这里插入图片描述
这里总共有5个地方要填,主要是声明接口的详细地址,大家按自己的实际接口地址填写。我这里只是下了一个很简单的接口,调用时直接返回带时间戳的字符串。

@RequestMapping("/hello")
  public String sayHello() {
      log.info("sayhello() is comming!");
      return "hello - " + LocalDateTime.now();
  }

2.4、添加结果断言

结果断言就是调用接口后,我们如何判断接口调用成功。有开发经验的朋友,一般我们返回信息时,会用code标识实际的返回结果。我们这里实时返回了“hello - xxx”字符串,我们判断返回有“hello”就行了。
我们先添加“响应断言”:
在这里插入图片描述
出现如下界面:
在这里插入图片描述
大家注意匹配的条件,我在图上已经标识出来了。下面,咱们再添加一个响应时间断言,如下图:
在这里插入图片描述
也就是说,接口会在3s后调用失败,不能超过3s。

2.5、添加结果树等

大家按图操作:
在这里插入图片描述
不用配置什么,添加成功就行了。好了,这时候就配置完成了,可以测试了,咱们跑一把,注意先让你测试的接口跑起来。
在这里插入图片描述
好了,到这里,jmeter的压力测试已经配置完成了,大家照猫画虎,测试一下自己的接口。

3、测试服务器资源

在实际应用中,我们要实时了解服务器资源的利用率(cpu、内存、网络),这时可以给jmeter安装插件来实现,咱们先来安装插件。

3.1、jmeter插件安装

插件安装分两步:

  1. 插件管理器的安装
  2. 插件的安装

先安转插件管理器。访问官方的提供的地址,链接: https://jmeter-plugins.org,如下图:
在这里插入图片描述
下载下来后,放到jmeter/lib/ext目录下,然后重新启动jmeter。重启完成后,点击主菜单Options,如下图:
在这里插入图片描述
能看到,多了一个插件管理器的选项。点击进去,咱们来执行第二步:安转插件。如下图:
在这里插入图片描述
我们在这里总共选了3个插件,上图中没标出来。

  • 3 Basic Graphs
  • 5 Additional Graphs
  • PerfMon (Servers Performance Monitoring)

好了,插件安装完成了。下面咱们来添加监听器。

3.2 添加PerfMon Metrics

在这里插入图片描述
打开后,按下图配置:

在这里插入图片描述

  • ip:服务器的ip
  • port:serverAgent对外的接口
  • user/system: 配置的要监控的cpu参数

简单说一下serverAgent,他是运行中服务端的一个采集软件,可以进服务器的cpu、内存等资源采集到后,再通过指定的端口发给jmeter,默认端口是4444.

3.3、serverAgent的安装和运行

上面刚刚简单介绍了serverAgent, 先下载下来,地址: https://github.com/undera/perfmon-agent?tab=readme-ov-file
注意:这里为了测试,我使用虚拟机了。相应地,你的项目最好也打成jar包,放到虚拟机上去跑起来。在虚机上启动serverAgent,

sh startAgent.sh

在这里插入图片描述
启动成功了,同时,大家注意命令最上面两行,4444,知道为什么上面端口为什么要配成4444了吧。再看一下jmeter的效果:
在这里插入图片描述

注意:一定要注意防火墙,有时候linux访问不通就是端口没开放!
好了,更多的功能大家去探索,今天就到这里吧。
//~~


网站公告

今日签到

点亮在社区的每一天
去签到