压测工具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插件

相关推荐
文人sec2 天前
性能测试-jmeter9-逻辑控制器、定时器压力并发
测试工具·jmeter·性能优化·模块测试
CesareCheung4 天前
JMeter分布式压力测试
分布式·jmeter·压力测试
测试界清流4 天前
jmeter使用技巧
jmeter
春时似衿里4 天前
jmeter配置数据库连接步骤
数据库·jmeter
新知图书4 天前
JMeter的安装部署
jmeter
程序员杰哥4 天前
什么是Jmeter? Jmeter工作原理是什么?
自动化测试·软件测试·python·测试工具·jmeter·职场和发展·测试用例
乐神嘎嘎嘎4 天前
Jmeter测试
jmeter
卓码软件测评4 天前
第三方软件测试机构【性能测试工具用LoadRunner还是JMeter?】
java·功能测试·测试工具·jmeter·性能优化
BatyTao5 天前
Jmeter执行数据库操作
数据库·jmeter
二宝哥5 天前
性能测试工具Jmeter之java.net.BindException: Address already in use
jmeter