性能测试工具 – JMeter

导航

  • 我们为什么需要性能测试工具/li>
  • JMeter简介
  • JMeter安装
  • JMeter常用功能介绍
    • 1.添加线程组
    • 2.添加HTTP请求
    • 3.添加HTTP请求头管理器
    • 4.添加各类请求结果查看组件
    • 5.运行
  • JMeter聚合报告

我们为什么需要性能测试工具/h1>

因为web应用,总是开放给多人一起使用的,不少功能就会出现并发的情况。为了测验并发时,系统功能是否正常,我们需要模拟并发的场景,对系统进行并发测试。

那么难题就出现了,如何模拟并发场景呢/p>

找一千名测试人员一起点击速点击发送按钮,连点一千次个for循环/p>

这些解决思路都不太可行,首先就是操作上不可行,然后就算是以for循环等形式,也不是真正意义上的并发,而是“串发”。若想通过java代码实现真正的并发场景,那需要分两步走:1. 开启n个线程,并加上闭锁;2. 待所有线程都准备好后,按下开启按钮。

为了快速、便捷的发送并发请求,我们厄需一个工具!当我们去市场上寻求这类工具时,Apache JMeter 这两个单词抢占了搜索头条,没错,又是Apache软件基金会的开源项目,YYDS,真香!

JMeter简介

Apache JMeter 是 Apache 组织基于 Java 开发的压力测试工具,用于对软件做压力测试。

JMeter 最初被设计用于 Web 应用测试,但后来扩展到了其他测试领域,可用于测试静态和动态资源,如静态文件、Java 小服务程序、CGI 脚本、Java 对象、数据库和 FTP 服务器等等。JMeter 可对服务器、网络或对象模拟巨大的负载,在不同压力类别下测试它们的强度和分析整体性能。另外,JMeter 能够对应用程序做功能/回归测试,通过创建带有断言的脚本来验证程序是否返回了期望结果。为了最大限度的灵活性,JMeter 允许使用正则表达式创建断言。

JMeter的优势:

  • 1.能够对HTTP和FTP服务器进行压力和性能测试, 也可以对任何数据库进行同样的测试(通过JDBC)。
  • 2.完全的可移植性和100% 纯java。
  • 3.完全 Swing 和轻量组件支持(预编译的JAR使用 javax.swing.*)包。
  • 4.完全多线程 框架允许通过多个线程并发取样和 通过单独的线程组对不同的功能同时取样。
  • 5.精心的GUI设计允许快速操作和更精确的计时。
  • 6.缓存和离线分析/回放测试结果。

JMeter安装

JMeter是开源软件,安装起来特别简单,直接前往官网下载:https://jmeter.apache.org/download_jmeter.cgi

需要注意本地需安装有其要求的JDK版本。

性能测试工具 - JMeter

性能测试工具 - JMeter
然后我们对线程组的三个重要属性进行设置,这三个属性决定了测试的并发量:
  • 线程数:即开启多少个线程来跑请求,多个线程见互不干扰;
  • Ramp-Up时间:设置启动所有线程所需要的时间,设置不为0时,均匀启动;设置为0,则表示所有线程同时启动。
  • 循环次数:设置每个线程里串行执行多少个请求,若勾选永远,则会一直执行下去;
    性能测试工具 - JMeter
    这里我的消息里,使用了JMeter的随机数函数,表示随机产生[10,20]之间的整数。
    性能测试工具 - JMeter

    4.添加各类请求结果查看组件

    JMeter提供了许多监听器,用于监听并展示请求的结果。

    基本都会用到的监听器有三个:

    • 察看结果树:可以查看所有线程发起的每个请求的信息,包括请求信息与响应信息;
    • 聚合报告:以表格展示性能指标的结果;
    • 图形结果:以散点图展示性能指标的结果;
      性能测试工具 - JMeter

      JMeter聚合报告

      性能测试工具 - JMeter

      聚合报告是使用JMeter进行性能测试的重要结果,这里对每个指标进行解析:

      • Label:请求的名称,每个HTTP请求为一行,添加了多少个HTTP请求,则会有多少行+汇总行;
      • 样本:发起的请求总数,为 线程数 * 循环次数;
      • 平均值:请求的平均响应时间,单位是毫秒;
      • 中位数:请求响应时间的中位数,单位是毫秒;
      • 90%百分位:90%的请求响应时间,均小于这个数;(就是将所有的请求时间从小打到排列,取处于第90%数据量的数值;则上一个中位数指标,可以理解为50%百分位)
      • 95%百分位:95%的请求响应时间,均小于这个数;
      • 99%百分位:99%的请求响应时间,均小于这个数;
      • 最小值:最快的响应时间;
      • 最大值:最慢的响应时间;
      • 异常:请求出现错误/异常的比例,如响应状态码不为200、丢包等;
      • 吞吐量:每秒完成的请求数;
      • 接收:每秒从服务器接收的数据量;
      • 发送:每秒发送至服务器的数据量;

      来源:再来一块红烧肉

      声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2022年1月15日
下一篇 2022年1月15日

相关推荐