最近需要进行一组性能测试,用到了 JMeter 这个测试工具,简单记录下对它的了解以及安装过程。

JMeter 简介

JMeter的使用说明 - 图1

全名为 Apache JMeter

JMeter 是一个软件,使负载测试或业绩为导向的业务(功能)测试不同的协议或技术。
它是 Apache 软件基金会的Stefano Mazzocchi JMeter 最初开发的。
它主要对 Apache JServ(现在称为如 Apache Tomcat 项目)的性能进行测试。
Apache 后来重新设计 JMeter 增强的图形用户界面和添加功能测试能力。

JMeter 的作用

Apache JMeter 是100%纯 JAVA 桌面应用程序,被设计为用于测试客户端/服务端结构的软件(例如 web 应用程序)。
JMeter 可以用来测试静态和动态资源的性能,例如:静态文件,Java Servlet,CGI Scripts,Java Object,数据库和 FTP 服务器等等。
JMeter 可用于模拟大量负载来测试一台服务器,网络或者对象的健壮性或者分析不同负载下的整体性能。

同时,JMeter 可以帮助你对你的应用程序进行回归测试。通过你创建的测试脚本和 assertions 来验证你的程序返回了所期待的值。
为了更高的适应性,JMeter 允许调用二次开发的 jar 包来丰富你的测试场景;JMeter 允许你使用正则表达式来创建这些 assertions.

JMeter 的使用范围

JMeter 是一个具有图形界面,使用 Swing 图形 API 的 Java 桌面应用程序,因此可以运行在任何环境/工作站接受一个 Java 虚拟机,例如:在 Windows,Linux,MAC等。

JMeter 支持的协议

  • web —— HTTP,HTTPS 站点的 Web1.0的Web 2.0 (ajax, flex and flex-ws-amf)
  • Web Services: —— SOAP / XML-RPC
  • 通过 JDBC 驱动程序的数据库
  • 目录: —— LDAP
  • 通过 JMS 面向消息的服务
  • Service: —— POP3, IMAP, SMTP
  • FTP 服务

JMeter 的特点

以下是一些 JMeter 的特点:

  • 它是免费的。开放源码软件。
  • 它具有简单,直观的图形用户界面。
  • JMeter中负载和性能测试许多不同的服务器类型:网站 - - HTTP,HTTPS,SOAP,数据库通过 JDBC,LDAP,JMS,邮件 POP3
  • 它是独立于平台的工具。在 Linux / UNIX,JMeter 中 JMeter 中 shell 脚本点击可以调用。在 Windows 上,它可以调用启动 JMeter.bat 文件。
  • 它具有完整的 Swing 和轻量级组件支持(预编译的 JAR 使用包 javax.swing 中*)。
  • JMeter 测试计划存储为XML格式。这意味着可以使用文本编辑器生成一个测试计划。
  • 它的完整的多线程框架,允许并发多线程和同步采样不同的功能由单独的线程组采样。
  • 它是高度可扩展的。
  • 也可用于执行应用程序的自动化测试和功能测试。

JMeter 的安装

  1. 进入 Apache JMeter 官网 ,选择 Download Release,如下图:
    JMeter的使用说明 - 图2
  2. 根据操作系统,选择要下载的压缩包:
    JMeter的使用说明 - 图3> 注意事项:
    1. 注意图片标题中的 Java 版本要求,这里要求的是 Java8 及以上的版本。
    2. 我们一般选择 Binaries 下的压缩包,除非是你想要使用它的源码做研究,则可以选择 Source 下的资源包。
  1. 解压下载下来的压缩包,得到如下的文件结构:
    JMeter的使用说明 - 图4
  2. 打开 bin 目录,通过双击 ApacheJMeter.jar 即可启动JMeter:
    JMeter的使用说明 - 图5> 1. 也可以通过可执行文件进行启动,不同系统上的可执行文件在上图中有标出。
    1. JMeter 的运行需要 Java 环境的支持,需要提前安装 JDK

JMeter 根目录结构说明

  1. backup 目录
    脚本备份目录,里边的文件都是以 .jmx 后缀结尾的文件。
    实际开始安装解压后是不存在这个目录的,在使用过 JMeter 后,JMeter 自动创建这个目录,然后备份了脚本文件。
  2. bin 目录
    可执行文件目录

    • Jmeter.bat:是启动 JMeter 的主脚本。
    • Jmeter-server.bar:是用来实现联机负载。
    • Jmeter.properties:是 JMeter 主要的配置文件,超过 80% 的配置项都是通过这个文件实现。(PS:修改配置文件后,要重启 Jmeter 才能生效)。

      Jmeter.bat 打开 Jmeter 主界面。 Jmeter 使用的日志文件名称被定义到 Jmeter.properties 中,默认在 Jmeter.log 可查看日志。

  3. dosc 目录
    docs 目录下的文件是 JMeter 的 Java Docs。
    printabledocs 的 usermanual 子目录下的内容是 JMeter 的用户手册文档,其中 component_reference.html 是最常用到的核心元件帮助文档。该目录下存放的是 JMeter 官方文档的 API 文档,主要是用于二次开发_。

  4. extras 目录
    该目录下的文件提供了对构建工具 Ant 的支持,可以使用 Ant 来实现测试自动化,例如批量脚本执行,产生 HTML格式的报表,测试运行时,可以把测试数据记录下来,Jmeter 会自动生成一个 .jtl 文件,将该文件放到 extras 目录下,运行 “ant -Dtest=文件名 report”,就可以生成测试统计报表。
  5. lib 目录
    该目录包含两个子目录,其中 ext 子目录存放有 JMeter 的核心 jar 包,另一个 junit 子目录存放 JUnit 测试脚本。
    用户扩展所依赖的包,应该直接放到 lib 目录下,而非 lib/ext 下。> 注意:无法识别 zip 格式的包文件,所以需要的包文件均要求以 .jar 结尾
  1. Licenses JMeter 软件许可文件目录
  2. printable_docs 目录
    该目录存放的是 JMeter 官方提供的帮助文档。
    printable_docs 的 demos 子目录下有一些常用的 JMeter 脚本案例,可以作为参考。
  3. LICENSE JMeter ——许可说明
  4. NOTICE JMeter ——简单信息说明
  5. README.md ——JMeter 官方基本介绍

bin 目录说明

window 下

  • JMeter.bat
    启动 JMeter (默认 GUI 模式)
  • jmeterw.cmd
    启动 JMeter 没有 windows shell 控制台 (默认 GUI 模式)
  • JMeter-n.cmd
    删除一个 JMX 文件在运行非 GUI 测试
  • JMeter-n-r.cmd
    删除一个 JMX 文件在运行非 GUI 远程测试
  • JMeter-t.cmd
    删除一个 JMX 文件在 GUI 模式下加载它
  • JMeter-server.bat
    在服务器模式启动 JMeter
  • mirror-server.cmd
    在非 GUI 模式下运行 JMeter 镜像服务器
  • shutdown.cm
    运行关闭客户端,以优雅地停止非 GUI 实例
  • stoptest.cmd
    运行关闭客户端,停止非 GUI 实例

在大多数 Linux / UNIX 系统上

  • JMeter
    启动 JMeter (默认 GUI 模式). 定义一些可能不适用于所有 JVM 的 JVM 设置。
  • JMeter-server
    在服务器模式启动 JMeter (使用适当的参数调用 JMeter 脚本)
  • JMeter.sh
    非常基础的 JMeter 脚本 (你可能需要调整 JVM 选项,比如内存设置).
  • mirror-server.sh
    在非 GUI 模式下运行 JMeter 镜像服务器
  • shutdown.sh
    运行关闭客户端,以优雅地停止非 GUI 实例
  • stoptest.sh
    运行关闭客户端,停止非 GUI 实例

JMeter 插件安装

  1. 进入 JMeter 插件网站,下载 JMeter 插件包
    JMeter的使用说明 - 图6
  2. 解压插件,找到 JMeterPlugins-Extras.jar,把 JMeterPlugins-Extras.jar 放到 apache-JMeter-5.4.1\lib\ext 目录。