泪伤荡的编程指南 泪伤荡的编程指南
首页
  • 基础篇
  • 集合篇
  • 并发篇
  • JVM篇
  • 新特性
  • 进阶篇
  • 网络
  • 操作系统
  • 数据结构与算法
  • 硬件
  • 基础篇
  • MySql
  • Oracle
  • PostgreSQL
  • 达梦
  • Redis
  • Mongodb
  • Hive
  • 数据库比较
  • Spring
  • SpringMvc
  • SpringBoot
  • Hibernate
  • iBatis
  • Mybatis
  • Mybatis-plus
  • Mybatis-plus-join
  • 各个框架对比
  • UML画图
  • 设计须知
  • 开发流程
  • 开发理论
  • 架构体系
  • 设计模式
  • 开源知识
  • 分布式解决方案
  • SpringCloud
  • API网关
  • 注册中心
  • 配置中心
  • 服务调用
  • 分布式事务
  • 消息队列
  • 调度作业
  • 链路追踪
  • 服务保障
  • 搜索引擎Elk
  • 安全框架
  • 监控体系
  • 部署容器
  • Netty
  • Tomcat
  • Nginx
  • 图片云存储
  • 云存储
  • 虚拟机Linux
  • 项目部署
  • 容器部署
  • 开发工具篇
  • 工具库篇
  • 开发技巧篇
  • 工具类系列
  • Bug记录仓库
  • 随笔
  • HTML与CSS
  • JS学习
  • Vue3入门
  • Vue3进阶
  • 黑马Vue3
  • 视频网站
  • 音乐网站
  • 商城网站
  • 论坛网站
  • scrm项目
  • Yudao-cloud
  • RuoYi-Vu-cloud
  • 博客搭建
  • 网站收藏箱
  • 断墨寻径摘录
  • 费曼学习法
  • Java术语
  • 命名英语
  • 业务英语
  • 表字段英语
  • 包名英语
Github (opens new window)
首页
  • 基础篇
  • 集合篇
  • 并发篇
  • JVM篇
  • 新特性
  • 进阶篇
  • 网络
  • 操作系统
  • 数据结构与算法
  • 硬件
  • 基础篇
  • MySql
  • Oracle
  • PostgreSQL
  • 达梦
  • Redis
  • Mongodb
  • Hive
  • 数据库比较
  • Spring
  • SpringMvc
  • SpringBoot
  • Hibernate
  • iBatis
  • Mybatis
  • Mybatis-plus
  • Mybatis-plus-join
  • 各个框架对比
  • UML画图
  • 设计须知
  • 开发流程
  • 开发理论
  • 架构体系
  • 设计模式
  • 开源知识
  • 分布式解决方案
  • SpringCloud
  • API网关
  • 注册中心
  • 配置中心
  • 服务调用
  • 分布式事务
  • 消息队列
  • 调度作业
  • 链路追踪
  • 服务保障
  • 搜索引擎Elk
  • 安全框架
  • 监控体系
  • 部署容器
  • Netty
  • Tomcat
  • Nginx
  • 图片云存储
  • 云存储
  • 虚拟机Linux
  • 项目部署
  • 容器部署
  • 开发工具篇
  • 工具库篇
  • 开发技巧篇
  • 工具类系列
  • Bug记录仓库
  • 随笔
  • HTML与CSS
  • JS学习
  • Vue3入门
  • Vue3进阶
  • 黑马Vue3
  • 视频网站
  • 音乐网站
  • 商城网站
  • 论坛网站
  • scrm项目
  • Yudao-cloud
  • RuoYi-Vu-cloud
  • 博客搭建
  • 网站收藏箱
  • 断墨寻径摘录
  • 费曼学习法
  • Java术语
  • 命名英语
  • 业务英语
  • 表字段英语
  • 包名英语
Github (opens new window)
  • 开发工具篇

    • idea设置

      • 配置篇
      • 快捷键篇
      • debug篇
      • 插件篇
    • 玩转Git

      • 基础知识梳理
      • Git配置相关操作
      • git修改已提交人的用户名和邮箱
      • git提交规范
      • 常见问题
    • Maven相关

      • Maven简介
      • Maven常用命令
      • 依赖管理
      • Maven生命周期与插件
      • Maven项目管理工具
    • Apifox使用小结
    • nvm使用小结
    • JMeter使用小记
      • 设置中文界面
        • 方法1
        • 方法2
        • 方法3
      • 设置使用中文
      • 提取并设置全局变量
      • 线程组的串行与并行执行
      • 聚合报告相关信息
      • 测试小记
        • 基础概念
        • QPS 和吞吐量的区别?
        • 测试方向
        • 最高并发数探测方法
        • JVM 参数解释
        • 内存泄漏(Memory Leak)
        • 内存泄漏的影响
        • 如何检测内存泄漏
        • 调整 JVM 参数的目的
      • 学习参考
  • 工具库篇

    • lombok工具库

      • lombok注解使用小结
      • Builder用法解析
      • 异常相关注解
    • EasyExcel小记

      • 工具类
      • 文件导入
      • 文件导出
    • 定时任务相关

      • 基础入门
      • SpringTask学习
      • Quartz学习
    • Hutool工具库

      • 图片压缩
    • 极光推送学习
    • OkHttp学习
    • BigDecimal类详解
    • PdfBox学习
  • 开发技巧篇

    • 常见数据校验注解
    • 字符串拼接的5种方式
    • 遍历集合的N种方式
    • 集合使用注意事项总结
    • MP使用小记
    • Stream流技巧总结
    • 字符串处理最佳实践
    • SQL语句优化
    • 时间字段处理小记
    • Curl用法解析
    • 列表分页的两种实现方案
    • HashMap根据value获取key
    • Map的7种遍历方式
    • 唯一索引和逻辑删除冲突解决方法
    • 正则表达式
    • 二维码扫码登录学习
    • 脱敏最佳实践
    • 日志记录相关
  • 工具类系列

    • 手写一个文件阅读器
    • 手写一个运行耗时计算器
    • 自定义实现Java Bean属性中列表元素格式校验注解及其实现
    • 父子工程项目搭建
    • 自制代码生成器
  • 随笔

    • HttpServletRequest知识小结
    • Spring MVC 项目构建流程
    • 虚拟机固定ip地址
    • 项目部署
    • 深入理解数组
    • IIS使用小记
    • From的两种类型解析
    • 开发疑惑
    • 开发小记
    • bug解决
  • 开发日常
  • 开发工具篇
泪伤荡
2024-05-07
目录

JMeter使用小记

# JMeter 使用小记

# 设置中文界面

JMeter 安装打开后默认语言是英文,修改为中文的方法也很简单,目前笔者发现了 3 种修改语言的方法,如下文。

# 方法1

——修改 Options 依次点击 Options-->Choose Language-->Chinese(Simplified) 即可配置成中文简体,需注意的是该方法只对当次生效,下次打开 Jmeter 依然是英文。如需永久生效,请使用下面两种方法。

# 方法2

——修改 jmeter.properties 文件

  • 打开 jmeter 解压缩文件下的 bin 目录,找到 jmeter.properties 文件并用编辑器打开,
  • 在 #Preferred GUI language 下面插入一行 language=zh_CN,修改后保存(如果有 language=en 需要注释掉)
  • 重新启动 Jmeter 界面显示为中文简体

# 方法3

——修改 jmeter.bat 文件

  • 使用编辑器打开 JMeter 启动文件 jmeter.bat
  • 将 set JMETER_LANGUAGE=-Duser.language="en" -Duser.region="EN" 修改成 set JMETER_LANGUAGE=-Duser.language="zh" -Duser.region="CN",保存代码
  • 重新启动 Jmeter 界面显示为中文简体

# 设置使用中文

修改默认编码

# The encoding to be used if none is provided (default ISO-8859-1)
#sampleresult.default.encoding=ISO-8859-1
1
2

修改成 UTF-8 并放开注释:

# The encoding to be used if none is provided (default ISO-8859-1)
sampleresult.default.encoding=UTF-8
1
2

# 提取并设置全局变量

  1. 需要添加【后置处理器】:JSON 提取器、调试后置处理程序、BeanShell 后置处理程序,进行参数变量的提取。
  2. 需要添加【配置元件】:HTTP 信息头处理器,进行变量的传递。
  3. 其中用到的表达式可用 Jmeter 工具自动生成。(函数助手)

需要用到的工具:

1、JSON 提取器

image

2、BeanShell 后置处理程序

image

函数助手的使用:

1、提取全局变量

image

2、使用全局变量

image

# 线程组的串行与并行执行

勾选【测试计划】界面中的以下这个按钮,则为【串行】否则为【并行】。

image

# 聚合报告相关信息

聚合报告(Aggregate Report)是 JMeter 中一个非常重要的监听器,用于展示性能测试结果的统计信息。

以下是对聚合报告的一些关键点的解释:

  1. 生成方式:聚合报告可以通过两种方式生成,一种是从已有的 .jtl 文件加载生成报告,另一种是在运行 JMeter 时动态生成聚合报告。

  2. 数据来源:聚合报告的数据来源于 SampleResult,每一行代表一个请求,同名请求的结果会合并显示。

  3. 界面介绍:聚合报告界面提供了多个指标,包括【Label(请求名称)、#Samples(样本数,即请求数量)、Average(平均响应时间)、Median(中位数)、90% Line、95% Line、99% Line(这些指标表示响应时间的百分位数)、Min(最小响应时间)、Max(最大响应时间)、Error%(错误率)、Throughput(吞吐量,每秒完成的请求数)以及数据传输速率(KB/sec)】。

  4. 关键指标:在分析聚合报告时,需要特别关注异常%、吞吐量、最大TPS和最大并发数等指标。异常%表示错误请求的比例,吞吐量反映了服务器的处理能力,最大TPS和最大并发数有助于确定系统的性能瓶颈。

  5. 结果分析:聚合报告提供了详尽的数据,帮助我们全面了解系统在不同负载下的表现,找到性能瓶颈,并制定相应的优化方案。

  6. 注意事项:在使用聚合报告时,注意不要在测试计划中使用相同的请求取样器名称,因为聚合报告是累加的,即每次运行的结果统计都是基于前一次运行的结果进行统计。

  7. 百分位数:聚合报告中的百分位数(如90% Line、95% Line、99% Line)表示相应百分比的请求响应时间不会超过该值,这有助于我们了解响应时间的分布情况。

  8. 图形结果:JMeter 的“图形结果”(Graph Results)监听器可以以图形形式展示响应时间随时间的变化趋势,帮助我们发现哪些请求响应时间较长。

# 测试小记

# 基础概念

  • 并发量:指在同一时间点内,系统中同时处理的用户请求数(是个相对的值,不是绝对值)
  • 响应时间:指系统处理一个请求所需的时间
  • 吞吐量:是指系统在给定时间内处理的业务请求数量
  • QPS (Queries Per Second):表示系统每秒钟处理的请求数量
  • TPS(Transactions Per Second):表示系统每秒钟完成的事务数量(实际就是吞吐量)

# QPS 和吞吐量的区别?

QPS(Queries Per Second)和吞吐量(Throughput)都是衡量系统性能的指标,但它们的含义和计算方式有所不同。

  1. QPS(Queries Per Second):QPS 是指每秒钟系统能够处理的请求数量,通常用于衡量系统的并发处理能力。在 Web 应用中,QPS 表示每秒钟能够处理的 HTTP 请求次数。QPS 越高,系统的并发处理能力越强,能够同时处理更多的请求。
  2. 吞吐量(Throughput):吞吐量是指在一定时间内系统实际处理的任务量或数据量。在计算机领域,吞吐量通常表示每秒钟系统能够处理的数据量或事务量。吞吐量越高,表示系统能够在单位时间内处理更多的任务或数据。

# 测试方向

  1. 测试接口的性能,通过【聚合报告】查看相关信息
  2. 通过修改服务器的【jvm参数】来检测内存大小对接口性能的影响,查看是否会有【内存泄漏】的现象
    • jvm 参数示例:-Xms2048m -Xmx2048m,-Xms128m -Xmx128m

# 最高并发数探测方法

  1. 增加线程数,指到出现异常
  2. 增加线程数,直到平均响应时间超过预期的值(依项目而定,比如买票最多让用户等待 2 秒)

# JVM 参数解释

  • -Xms:设置JVM启动时的初始内存大小。例如,-Xms2048m 表示初始内存大小为2048兆字节(MB)。
  • -Xmx:设置JVM最大可用内存大小。例如,-Xmx2048m 表示最大内存限制为2048MB。

# 内存泄漏(Memory Leak)

内存泄漏是指在计算机程序中因为疏忽或错误导致的一种内存分配问题。当一个程序的可执行文件在运行时分配了内存给某个变量或对象,但在释放这个内存之前失去了对这块内存的引用,就会发生内存泄漏。简单来说,内存泄漏就是指程序在申请内存后,无法释放已经申请的内存空间。

# 内存泄漏的影响

  • 性能下降:随着时间的推移,内存泄漏可能导致应用程序消耗越来越多的内存,从而降低性能。
  • 响应延迟:内存泄漏可能导致垃圾回收器频繁运行,增加系统的响应延迟。
  • 服务中断:在极端情况下,内存泄漏可能导致应用程序或系统耗尽所有可用内存,从而引发服务中断或崩溃。

# 如何检测内存泄漏

  1. 监控工具:使用内存监控工具(如 Java 的 VisualVM、MAT 等)来观察内存使用情况。
  2. 性能测试:在不同的 JVM 参数设置下进行压力测试和性能测试,观察内存使用模式。
  3. 日志分析:分析应用程序日志,检查是否有异常或错误可能与内存泄漏相关。
  4. 代码审查:审查代码,特别是那些管理资源分配和释放的部分,确保没有逻辑错误。

# 调整 JVM 参数的目的

  • 性能评估:评估不同内存设置对应用程序性能的影响。
  • 资源优化:找到最优的内存配置,以提高应用程序的响应速度和吞吐量。
  • 稳定性测试:测试在高负载情况下应用程序的稳定性和内存管理。

# 学习参考

  • https://www.jianshu.com/p/77b8d202deb1 (opens new window)
上次更新: 2024/12/7 09:03:44
nvm使用小结
lombok注解使用小结

← nvm使用小结 lombok注解使用小结→

Theme by Vdoing | Copyright © 2024-2025 泪伤荡 | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式