2.JMeter压测接口

news2024/11/27 2:31:51

概述

今日目标:

  • 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 压测使用就结束了,如有疑问,欢迎评论区留言。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1175594.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Linux笔记-对/dev/vda1和/dev/vda2的理解

首先是这张图&#xff1a; 对于&#xff1a; /dev/vda1和/dev/vda2 可以知道&#xff0c;这个机器是在虚拟机上的&#xff0c;从设备描述中可以看到&#xff0c;与IO有关。 问下ChatGPT 问&#xff1a;linux上 /dev/vda1 和 /dev/vda2是干嘛的 答&#xff1a; /dev/vda1和…

GPT技术的崛起:改变生活与挑战未来

GPT的广泛使用引发了许多关于其影响的讨论&#xff0c;包括可能对就业和互联网公司的存活造成挑战。在这篇博客中&#xff0c;我们将探讨这些问题&#xff0c;并分享我们自己在日常生活中如何使用GPT的经验。 1 GPT技术的广泛应用 GPT&#xff0c;或者通用预训练模型&#x…

软件开发项目文档系列之十一如何撰写系统部署方案

目录 1 引言1.1 编写目的1.2 定义1.3 预期读者1.4 参考资料 2 系统部署要求2.1 硬件要求2.2 软件要求 3 系统结构描述3.1 逻辑结构3.2 物理拓扑 4 系统部署方案4.1 服务器资源4.2 软件资源4.3 应用服务器部署4.3.1 部署描述4.3.2 系统软件4.3.3 系统软件配置 4.4 MYSQL数据库服…

Python 海龟绘图基础教学教案(一)

Python 海龟绘图——第 1 题 题目&#xff1a;绘制下面的图形 解析&#xff1a; 考察 turtle 基本命令&#xff0c;绘制直线&#xff0c;使用 forward&#xff0c;可缩写为 fd。 答案&#xff1a; import turtle as t t.fd(100) # 或者使用 t.forward(100) t.done() Python 海…

【linux进程控制(二)】进程等待--父进程是如何等待子进程死亡的?

&#x1f493;博主CSDN主页:杭电码农-NEO&#x1f493;   ⏩专栏分类:Linux从入门到精通⏪   &#x1f69a;代码仓库:NEO的学习日记&#x1f69a;   &#x1f339;关注我&#x1faf5;带你学更多操作系统知识   &#x1f51d;&#x1f51d; ) 这里写目录标题 1. 前言2. …

一 Java初探

初识Java Java是一门高级语言,如 Python、C、C++、Ruby 和 JavaScript一样。 那么要运行用高级语言编写的程序,必须将其转换为低级语言 (即“机器语言”)有两种将高级语言转换为低级语言的程序:解释器和编译器。解释器(interpreter): 读取并执行用高级语言编写的程序,如…

STM32存储左右互搏 SPI总线读写FLASH W25QXX

STM32存储左右互搏 SPI总线读写FLASH W25QXX FLASH是常用的一种非易失存储单元&#xff0c;W25QXX系列Flash有不同容量的型号&#xff0c;如W25Q64的容量为64Mbit&#xff0c;也就是8MByte。这里介绍STM32CUBEIDE开发平台HAL库操作W25Q各型号FLASH的例程。 W25QXX介绍 W25QX…

多层感知机什么是?有什么作用?解决什么问题?

什么是多层感知机&#xff1f; 多层感知机&#xff08;Multilayer Perceptron&#xff0c;简称 MLP&#xff09;是一种基本的人工神经网络模型&#xff0c;其结构由多个神经元组成的多层结构。它是一种前馈式神经网络&#xff0c;通常用于解决分类和回归问题。 MLP 的基本结构包…

《尚医通》Vue3 项目+TypeScript 前端项目(持续更新,附带源码)

尚硅谷vue项目实战《尚医通》&#xff0c;Vue3项目TypeScript前端项目_哔哩哔哩_bilibili尚硅谷vue项目实战《尚医通》&#xff0c;Vue3项目TypeScript前端项目共计71条视频&#xff0c;包括&#xff1a;001_开篇介绍、002_尚医通项目的简介、003_Vite构建化工具初始化项目等&a…

和女朋友在一起很久,觉得微信聊天记录很有纪念意义,要如何导出微信聊天记录?

12-6 注意&#xff0c;本文比较长&#xff0c;步骤非常详细&#xff0c;请您耐心阅读的实践 和女朋友在一起久了&#xff0c;想把微信的聊天记录都导出来&#xff0c;这该怎么办&#xff0c;其中聊天记录包含了文字、语音、图片、视频等内容&#xff0c;如果和女朋友谈了多年…

RflySim | 滤波器设计实验一

滤波器设计实验一 一. 无人机滤波器简介 无人机在飞行时会使用滤波器来处理传感器数据、控制飞行和稳定飞行&#xff0c;以及实现导航和定位等功能。卡尔曼滤波器是无人机领域中常见滤波器类型之一&#xff0c;也称为线性二次型估计&#xff0c;能够从一系列不完全且包含噪声不…

C/C++网络编程基础知识超详细讲解第三部分(系统性学习day13)

懒大王感谢大家的关注和三连支持~ 目录 前言 一、并发服务器 1.进程并发服务器 实例代码如下&#xff1a; 2.线程并发服务器 实例代码如下&#xff1a; 二、域通信 域通信TCP实例代码如下&#xff1a; 三、广播与组播(UDP) 1.广播 实例代码如下&#xff1a; …

一个可以自动把微信聊天收到的二维码图片实时提取出来并分类的软件

10-1 如果你有需要实时地、自动地把微信各个群收到的二维码图片提取出来的需求&#xff0c;那本文章适合你&#xff0c;本文章的主要内容是教你如何实现自动提取微信收到的二维码图片&#xff0c;助你快速扫码&#xff0c;永远比别人领先一步。 首先需要准备好的材料&#xf…

51单片机汇编-点亮一个led

文章目录 前言1.打开IDE2.设置编辑器3.设置输出4. 原理图5.编写代码6 编译7.下载8.其它代码1.LED闪烁2.跑马灯 前言 51单片机基础 本章主要介绍打开一个led,具体采用51汇编 1.打开IDE 选择STC89C52RC 后缀是.asm 2.设置编辑器 3.设置输出 4. 原理图 5.编写代码 ORG 00H;伪代…

leetcode刷题日记:69.sqrt(x)

给出一个非负的整数x&#xff0c;返回x的平方根向下取整的结果&#xff0c;这个被返回的数也应该是一个非负的值。 对我们的要求是不能使用任何内置的指数函数与操作&#xff0c;官方还给了我们例子&#xff1a; 在C种不能使用pow(x, 0.5) 在python不能使用 x**0.5 既然官方已经…

【漏洞复现】weblogic-SSRF漏洞

感谢互联网提供分享知识与智慧&#xff0c;在法治的社会里&#xff0c;请遵守有关法律法规 文章目录 漏洞测试注入HTTP头&#xff0c;利用Redis反弹shell 问题解决 Path : vulhub/weblogic/ssrf 编译及启动测试环境 docker compose up -dWeblogic中存在一个SSRF漏洞&#xff0…

嵌入式系统中的FPGA

举个栗子 假设你有一台智能家居系统&#xff0c;其中的FPGA可以被类比为智能家居中的中央控制器。 智能家居系统&#xff1a; 定制家居逻辑&#xff1a; 你希望智能家居系统能够根据你的生活习惯、时间表和喜好自动控制灯光、温度、窗帘等设备。就像FPGA中可以根据需求重新配置…

Java面向对象(进阶)-- super关键字的使用与子类对象实例化全过程

文章目录 一、super关键字的使用&#xff08;1&#xff09;为什么需要super&#xff1f;&#xff08;2&#xff09;super的理解&#xff08;3&#xff09;super可以调用的结构1、super调用方法举例1举例2举例3小结 2、super调用属性举例1举例2举例3小结 3、super调用构造器引入…

解决gtihub访问不到的

解决gtihub访问不到的 小编一开始也是找不到git但是通过查询资料&#xff0c;最终也是找到了解决方式 据说git的ip地址通常会变化的&#xff0c;可以通过地址查询网站查询到git当前的ip https://sites.ipaddress.com/github.com/在输入框中github.com&#xff0c;然后搜索 在…

【大数据】常见的数据抽取方法

常见的数据抽取方法 1.基于查询式的数据抽取1.1 触发器方式&#xff08;又称快照式&#xff09;1.2 增量字段方式1.3 时间戳方式1.4 全表删除插入方式 2.基于日志的数据抽取 数据抽取 是指从源数据源系统抽取需要的数据。实际应用中&#xff0c;数据源较多采用的是关系数据库。…