2.JMeter压测接口

概述

今日目标:

  • JMeter使用
    • 配置线程组
    • 配置 HTTP 接口
    • 配置断言
      • 配置响应断言
      • 配置断言响应时间
    • 配置结果监听
    • 压测报告
      • 接口准备
      • 聚合报告
      • 察看结果树
      • 其它
    • 线程组配置详解
      • 线程数
      • Ramp-Up
  • bug
  • 结束

JMeter使用

双击 ApacheJMeter.jar 启动,然后修改名称,点击保存,选择路径
在这里插入图片描述

配置线程组

配置线程组,相当于多少 并发数
在这里插入图片描述
在这里插入图片描述
线程属性说明:

  • 线程数:20,线程数据,这里设置20个线程
  • ramp-up:表示在指定时间之内将这些线程全部启动起来。如果n=1,表示要在1s以内将20个线程全部启动起来。
  • 循环次数:200,表示将 20 线程 循环 200 次,也就是说,每个线程调用接口 200

配置 HTTP 接口

http://localhost:8080/jMeter/test

在这里插入图片描述
在这里插入图片描述选择 keepalive 方式,表示使用了长连接。使用长连接可以防止频繁的建立连接,关闭连接消耗性能。一般浏览器都支持 keepalive,如果这里不勾选,压测的部分性能会消耗在建立,关闭连接上,导致压测的数据不准。

配置断言

JMeter 断言常用有两种,一种是响应断言 ,一种是响应时间断言,如果响应内容不满足断言的配置,则认为这次的请求是失败的。

  • 响应断言:判断响应内容是否包含指定的字符信息,用于判断 api 接口返回内容是否正确
  • 响应时间断言:判断响应时间,是否超过预期的时间,用于判断 api 接口返回时间是否超过预期
    断言添加方式:右击测试计划的 http 请求,选择添加 --> 断言 -->加响应断言断言持续时间

配置响应断言

接口正常返回 code 值为 200 ,如果返回 code 不是 200 ,表示接口异常。
在这里插入图片描述
在这里插入图片描述

配置断言响应时间

设置请求接口时间超3秒,则认为请求失败。

配置结果监听

配置监听器:监听压测结果(聚合报告和汇总结果很类似,看一个就行)

  • 1.聚合报告:查询结果信息聚合汇总,例如样本,平均值,吞吐量,最大值,最小值等
  • 2.察看结果树:记录每一次压测请求
  • 3.图像结果:分析了所请求的平均值,终止,偏离值和吞吐量之间关系(一般)
  • 4.汇总结果:汇总压测结果
  • 5.汇总图:将压测结果以图像形式展示

上面5点,12两点重要;后面三个都在 添加 —> 监听器下面

在这里插入图片描述

压测报告

接口准备

@RestController
@RequestMapping("/jMeter")
public class JMeterController {

    @GetMapping("/test")
    public Result<String> testJMeter() {
        return new Result<>("200", "测试JMeter!");
    }
}

聚合报告

在这里插入图片描述

  • 样本(sample):发送请求的总样本数量
  • 响应时间[单位 ms]
    • 平均值(average):平均的响应时间
    • 中位数(median):中位数的响应时间,50%请求的响应时间
    • 90% 百分位(90% line) :90% 请求的响应时间,意思是90%的请求是<=3ms返回
    • 95% 百分位类似
    • 最小值(min):请求返回的最小时间,其中一个用时最少的请求
    • 最大值(max):请求返回的最大时间,其中一个用时最大的请求
    • 异常(error):出现错误的百分比,错误率 = 错误请求的数量/请求的总数
    • 吞吐量TPS(throughout) :吞吐能力
    • Received kb/sec :每秒从服务器端接收到的数据量
    • Sent kb/sec :每秒从客户端发送请求的数据量

察看结果树

在这里插入图片描述

其它

其它的意义不大,在此略过

线程组配置详解

线程数

用来发送http请求的线程的数量

  • 线程组常用来模拟一组用户访问系统资源(API接口)
  • 假如客户机没有足够的能力来模拟较重的负载,可以使用JMeter的分布式测试功能 ,通过一个JMeter的Master来远程控制多个JMeter的Slave完成测试

Ramp-Up

建立全部线程耗时
Ramp-Up (in-seconds) 代表隔多长时间执行,默认是0,0代表同时并发。

bug

在这里插入图片描述
原因是使用的是 spring boot 3.0.x 版本,但 jdk 版本使用的是 8 ,修改 jdk 版本至 17,问题得以解决
在这里插入图片描述

结束

至此 JMeter 压测使用就结束了,如有疑问,欢迎评论区留言。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

流月up

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值