压测工具Jmeter的使用

一、安装

下载地址:
国外地址:jmeter.apache.org(下载会很慢,建议使用国内地址)
国内地址:apache-jmeter-binaries安装包下载_开源镜像站-阿里云
在这里插入图片描述

下载好进入bin文件下,双击jmeter.bat
在这里插入图片描述

打开后发现全是英文,可以改成中文
在这里插入图片描述
在这里插入图片描述

二、关于压测工具的那点事

性能调优对各个开发岗位的区别,各个岗位对性能调优的关键节点:

前端工程师:

  • 首屏时间: 初次访问项目等待加载时间
  • 白屏时间: 刷新页面到数据全部展示时间
  • 可交互时间
  • 完全加载时间
    后端工程师:
  • RT: 响应时间
  • TRS: 每秒事务数
  • 并发数: 这应该不会解释了吧
  • 数据库读写, RPC, 网络IO, 代码逻辑复杂度, 缓存
  • JVM(Throughput) - JVM(Throughput)
    移动端工程师:
  • 端到端相应时间
  • Crash率
  • 内存使用率
  • FPS

影响性能的关键要素

产品设计

  • 产品逻辑
  • 功能交互
  • 动态效果
  • 页面元素

基础网络
代码质量&架构

  • 架构不合理
  • 研发功底和经验不足
  • 没有性能意识: 只实现功能不注重代码性能, 当业务上量后系统出现连锁反应, 导致性能问题增加
  • 数据库: 慢查询, 过多查询, 索引使用不当, 数据库服务器瓶颈
    用户移动端环境
  • 设备类型&性能
  • 系统版本
  • 网络(WiFi, 2G, 3G, 4G, 5G)
  • 硬件及云服务(服务器硬件, CPU, 内存…)

三、JMeter的使用

我们先随便创建一个测试用例, 就是简单测试, 同时讲解一下常用的参数
本次测试采用 20线程, 1秒启动时间, 循环100次, Get请求
创建线程组
在这里插入图片描述

  • 线程数: 虚拟的用户数, 一个用户占一个线程
  • Ramp-Up: 等待时间, 设置的虚拟用户(线程数)需要多长时间全部启动
  • 循环次数: 单个线程发送请求的次数
  • 调度器:
    • 持续时间: 该任务执行的时间
    • 启动延迟: 等待多少秒开始执行
      创建 http请求
      右键线程组-添加HTTP请求
      在这里插入图片描述

结果树
结果树, 聚合报告, 图形结果只有新增, 解释在测试
线程组右键-添加-监听器-查看结果树
在这里插入图片描述

执行结果分析(启动之后显示界面)
在这里插入图片描述

列表列出了每一次的HTTP请求, 绿色的是成功, 红色的话就是失败
取样器结果参数详解

  • Thread Name:线程组名称
  • Sample Start: 启动开始时间
  • Load time:加载时长
  • Latency:等待时长
  • Size in bytes:发送的数据总大小
  • Headers size in bytes:发送数据的其余部分大小
  • Sample Count:发送统计
  • Error Count:交互错误统计
  • Response code:返回码
  • Response message:返回信息
  • Response headers:返回的头部信息
    请求
  • 基本数据
  • 入参
  • 请求头
    相应数据
  • 响应码
  • 响应头
    聚合报告
    线程组右键-添加-监听器-聚合报告
    执行结果分析(启动之后界面)
    在这里插入图片描述

参数解释

  • 样本: 并发量

  • 平均值: 接口请求用时(单位毫秒)

  • 中位数: 请求用时中位数(单位毫秒), 例如2000请求以请求时间排序, 排名1000的用时时长

  • 90%百分位, 95%百分位, 99%百分位和中位数同理

  • 最小, 最大值: 请求用时最小和最大

  • 异常% : 请求中异常的百分比

  • 吞吐量: 单位时间内请求次数
    图形结果
    线程组右键-添加-监听器-图形结果
    在这里插入图片描述

  • 样本数目:总共发送到服务器的请求数。

  • 最新样本:代表时间的数字,是服务器响应最后一个请求的时间。

  • 吞吐量:服务器每分钟处理的请求数。

  • 平均值:总运行时间除以发送到服务器的请求数。

  • 中间值:有一半的服务器响应时间低于该值而另一半高于该值。

  • 偏离:表示服务器响应时间变化、离散程度测量值的大小。
    断言
    断言主要用来判断结果返回是否符合预期
    线程组右键-添加-断言-响应断言
    在这里插入图片描述

假设我们接口的返回状态码字段为code, 200为成功, 那么就可以在断言这里进行配置, 来判断请求是否成功
在这里插入图片描述

四、JMeter插件

插件安装地址:jmeter-plugins.org
在这里插入图片描述

点击上图红框即可下载插件, 前面说过了 JMeter是 Java8开发的, 插件对应的也是一个 jar包
在这里插入图片描述
上述操作结束之后, 在选项里面就可以看到插件中心Plugins Manager
在这里插入图片描述

弹出以下界面, 点击 Available Plugins搜索我们需要的插件Basic Graphs和Additional Graphs, 勾选上, 然后安装
在这里插入图片描述

  • Basic Graphs主要显示显示平均响应时间,活动线程数,成功/失败交易数等
    在这里插入图片描述

  • Additional Graphs主要显示吞吐量,连接时间,每秒的点击数等
    在这里插入图片描述

在安装成功之后, 在监听器会相应的多出很多的 jc开头的, 这就代表安装成功了
在这里插入图片描述

五、Linux硬件监控

在压测过程中, 我们需要实时了解服务器的CPU, 内存, 网络, 服务器负载等情况的变化, 这个时候我们就需要对我们的 Linux系统进行监控, 通常来讲, 我们查询 Linux系统的资源占用情况可以使用以下几种方法

  • 使用命令: top, iostat, iotop等
  • 使用 Linux远程连接工具 FinalShell等
  • 宝塔
  • JMeter压测工具 PerfMon

在 JMeter中, 如果需要监控服务器硬件, 那么我们还需要安装 PerfMon插件

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

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

相关文章

哈希传递(PTH)

使用Mimikatz进行PTH Pass The Hash 哈希传递攻击简称 PTH,该方法通过找到与账户相关的密码散列(NTLLHash)来进 行攻击。由于在Windows系统中,通常会使用NTLM Hash对访问资源的用户进行身份认证,所以该攻 击可以在不需…

算法学习笔记(7.2)-贪心算法(最大容量问题)

目录 ##问题描述 ##问题示例 ##释 ##贪心策略的确定 ##代码示例 ##正确性验证 ##问题描述 输入一个数组 ℎ𝑡 ,其中的每个元素代表一个垂直隔板的高度。数组中的任意两个隔板,以及它们之间的空间可以组成一个容器。 容器的容量等于高度和宽…

泛型aaaaa

1、泛型的概述: 1.1 泛型的由来 根据《Java编程思想》中的描述,泛型出现的动机: 有很多原因促成了泛型的出现,而最引人注意的一个原因,就是为了创建容器类。泛型的思想很早就存在,如C中的模板&#xff0…

6个PPT素材模板网站,免费!

免费PPT素材模板下载,就上这6个网站,建议收藏! 1、菜鸟图库 ppt模板免费下载|ppt背景图片 - 菜鸟图库 菜鸟图库是一个设计、办公、媒体等素材非常齐全的网站,站内有几百万的素材,其中PPT模板就有几十万个,…

[stm32]——定时器与PWM的LED控制

目录 一、stm32定时器 1、定时器简介 2、定时器分类 3、通用定时器介绍 二、PWM相关介绍 1、工作原理 2、PWM的一般步骤 三、定时器控制LED亮灭 1、工程创建 2、代码编写 3、实现效果 四、采用PWM模式,实现呼吸灯效果 1、工程创建 2、代码编写 3、实现效果 一、stm3…

STM32 IIC协议

本文代码使用 HAL 库。 文章目录 前言一、什么是IIC协议二、IIC信号三、IIC协议的通讯时序1. 写操作2. 读操作 四、上拉电阻作用总结 前言 从这篇文章开始为大家介绍一些通信协议,包括 UART,SPI,IIC等。 UART串口通讯协议 SPI通信协议 一、…

B端系统:角色与权限界面设计,一文读懂。

一、什么是角色与权限系统 角色与权限系统是一种用于管理和控制用户在系统中的访问和操作权限的机制。它通过将用户分配到不同的角色,并为每个角色分配相应的权限,来实现对系统资源的权限控制和管理。 在角色与权限系统中,通常会定义多个角色…

【深度揭秘GPT-4o】:全面解析新一代AI技术的突破与优势

目录 ​编辑 1.版本对比:从GPT-3到GPT-4,再到GPT-4o的飞跃 1.1 模型规模的扩展 1.2 训练数据的更新 1.3 算法优化与效率提升 1.4 案例分析 2.技术能力:GPT-4o的核心优势 2.1 卓越的自然语言理解 2.1.1 上下文理解能力 2.1.2 语义分…

el-table中的信息数据过长 :show-overflow-tooltip=‘true‘**

可以在 el-table-column中添加 :show-overflow-tooltip‘true’

Kotlin 2.0 重磅发布! 性能提升!新功能上线!开发者必看!

博主猫头虎的技术世界 🌟 欢迎来到猫头虎的博客 — 探索技术的无限可能! 专栏链接: 🔗 精选专栏: 《面试题大全》 — 面试准备的宝典!《IDEA开发秘籍》 — 提升你的IDEA技能!《100天精通鸿蒙》 …

【Java面试】六、Spring框架相关

文章目录 1、单例Bean不是线程安全的2、AOP3、Spring中事务的实现4、Spring事务失效的场景4.1 情况一:异常被捕获4.2 情况二:抛出检查异常4.3 注解加在非public方法上 5、Bean的生命周期6、Bean的循环引用7、Bean循环引用的解决:Spring三级缓…

软考随记(二)

I/O系统的5种不同的工作方式: 程序控制方式: 无条件查询:I/O端口总是准备好接受主机的输出数据,或是总是准备好向主机输入数据,而CPU在需要时随时直接利用I/O指令访问相应的I/O端口,实现与外设的数据交换 …

python-求点积

【问题描述】:给出两个数组,并求它们的点积。 【问题描述】:输入A[1,1,1],B[2,2,2],输出6,即1*21*21*26。输入A[3,2],B[2,3,3],输出-1,没有点积。 完整代码如下: alist(map(int,input().split())) blist(…

vscode 默认终端(Terminal) 为CMD,但是新建是powerShell

☆ 问题描述 vscode 默认终端(Terminal) 为CMD,但是新建是powerShell ★ 解决方案 随便设置其他为默认,然后再设置回来CMD为默认就行了,实在不行就重装vscode吧… ✅ 总结 应该是vscode的小bug

redis windows环境下的部署安装

2024Redis windows安装、部署与环境变量 一、下载 Redis官网目前暂不支持Windows版本,只能从github中下载。 windows 64位系统下载redis路径:https://github.com/tporadowski/redis/releases,下载zip包。 目前Windows版本只更新到5.0的版本…

香橙派OriengePi AiPro 华为昇腾芯片开发板开箱测评

香橙派OriengePi AiPro 华为昇腾芯片开发板开箱测评 文章目录 前言OrangePi AIpro硬件相关及配置外观接口配置虚拟桌面网络配置拓展swap内存 软件相关及配置docker基础镜像搭建pytorch安装及匹配 软件测试使用yolo v8测试使用模型转换 总结 前言 博主有幸受邀CSDN测评香橙派与…

我喜欢的vscode插件

有个更全的:提高编程效率的30个VScode插件 Image preview(图片预览) any-rule(正则表达式大全) px to rem & rpx & vw(cssrem)(px和rem之间转换) 小程序开发助手 Auto Close Tag A…

Java字符串String详解

Java中的String类作为存储和操作文本数据的基本类型,是开发过程中最常用的类型。 String类型的声明及初始化与基本数据类型非常相似: String name "lcy";但是String类型是引用类型,有着非常丰富的处理字符串的方法。正是因为其重…

连锁美容机构行业:如何利用用友BIP收入云实现收入增长

随着消费市场的不断升级和消费者需求的日益多样化,连锁美容机构行业正面临着前所未有的机遇与挑战。在这个竞争激烈的市场环境中,如何有效地利用技术手段提升管理效率、优化客户体验,进而实现收入的持续增长,成为了众多美容机构关…

Javaweb第九次作业

采用XML映射文件的形式来映射sql语句;采用动态sql语句的方式,实现条件查询的分页。 controller Slf4j RestController RequestMapping("supermarket111") public class SupermarketFenyeController {AutowiredSupermarketFenyeService super…