JMeter 教程

602 阅读6分钟

本文正在参加「金石计划 . 瓜分6万现金大奖」

JMeter 教程

JMeter 是 Apache 旗下的一款开源测试软件。它由纯 Java 语言编写,用于压力负载性能测试。当然,JMeter 不仅仅被使用于压力测试,它旨在覆盖所有类型测试,如负载测试,功能测试,压力测试,回归测试等。本教程将深入介绍 JMeter,包括其测试计划,监听器,函数以及正则表达式等。

注意:JMeter 要求 JDK 1.5 或者更高的版本。

本教程面向读者

本教程专为测试领域的软件专业人员而设计,旨在测试企业级应用的稳健性和可靠性。

阅读本教程前,您需要了解

在学习本教程前,您应该对 Java 编程语言有个基本了解。除此之外,当您打算在项目的不同阶段通过 JMeter执行不同类型的测试(回归,功能,负载,性能等)时,建议您对软件开发和软件测试过程也能有很好的掌握。

JMeter 简介

JMeter 最初被使用在 Web 应用程序或 FTP 应用程序,用于压力,负载,并发,性能方面的测试。而如今,它也用于功能测试,数据库服务器测试等领域。

为什么要选择 JMeter ?

img

作为一名开发人员,您是否测试过后台服务某个接口的性能?这个接口能并发处理多少个请求?

没有?如果有一天,老板命令你做个性能测试,同时模拟 100 个用户并发对 www.google.com 请求?你要怎么做?

img

分配 100 台 PC 来模拟 100 个人同时访问 www.google.site 显然是不可行的!所以,您需要一款像 JMeter 一样的测试工具,来模拟真实用户对目标网站进行性能/负载测试。

JMeter 特性

JMeter 有如下诸多优点:

img

  • 开源许可证:JMeter 完全免费,所以您可以在源代码的基础上进行拓展;
  • 友好的 GUI:JMeter 易于使用,并且您不需要花多长时间来熟悉它;
  • 多环境运行:JMeter 是 100% 纯 Java 桌面应用程序。支持多个平台上运行;
  • 完善的多线程框架: JMeter 允许通过单独的线程组同时和同时采样不同的函数;
  • 测试结果可视化:测试结果可以以不同的格式展示,如图表,表格,树和日志文件等;
  • 易安装:您只需复制并运行 .bat 文件即可运行 JMeter, 绿色无需安装;
  • 高度可扩展:您可以编写自己的测试, JMeter还支持可视化插件,允许您自定义扩展;
  • 丰富的测试策略:JMeter支持多种测试策略,如负载测试,分布式测试和功能测试等;
  • 并发模拟:JMeter 支持多线程并发,模拟多个用户请求;
  • 多协议支持:JMeter 不仅支持 Web 应用程序测试,还能评估数据库服务器性能。另外,JMeter 支持所有基本协议,如 HTTPJDBCLDAPSOAPJMS以及FTP
  • 录制及回放 :能够录制用户在浏览器的行为,通过 JMeter 来模拟;
  • 脚本测试:Jmeter 能够集成 Bean Shell 和 Selenium ,进行自动化测试。

JMeter 是如何工作的?

JMeter 的基本工作流程如下图所示:

img

上图是通过 JMeter 模拟一组用户给目标服务发送请求,然后通过图形表格的方式返回该服务器的统计信息。

再看下一个完整的 JMeter 流程:

img

JMeter 历史版本

版本描述
1第一版本正式发行
2.13Java 6+
3Java 7+
3.1Java 7+
3.2Java 8+
3.3Java 8
4Java 8/9

JMeter 下载 & 安装

本节中,您将学习如何下载和安装 JMeter, 并启动 JMeter。

前面已经提过,JMeter 是个纯 Java 语言开发的桌面应用程序,因为 Java 跨平台的特性,所以 JMeter 支持如下所有主流操作系统:

  • Linux;
  • Windowns;
  • Mac OS;

本节教程,您将学会:

  • 1.如何安装 JMeter;

  • 2.图形化启动 JMeter;

  • 3.如何通过命令行的形式启动 JMeter:

    • 3.1Server 模式启动 JMeter;
    • 3.2命令行模式启动 JMeter;
  • 6.如何在 Linux 环境下使用 JMeter;

安装 JMeter

步骤一:安装 Java 环境

JMeter 是一个纯 Java 语言的桌面端应用程序,它需要 JDK 1.6 或者更高的版本。如果您还没有安装 Java 开发环境,您需要先下载并安装 JDK

img

完成安装后,您可以通过下面步骤来查看,是否安装 JDK 成功:

  • 1.在 Windows/ Linux 系统中,打开终端程序;
  • 2.输入命令 java -version

如果成功安装了 Java 运行时环境,您将看到如下输出:

img

如果您没有显示相关信息,则需要重新安装 Java 环境。

注意:小编这里安装的是 JDK 1.8 版本。

步骤二:下载 JMeter

在撰写本文时,JMeter 的最新版本是 Apache JMeter 5.0 版本,您可以在这里下载:

选择 Binaries 文件(zip 包或者 tgz 包)进行下载,如下图:

img

步骤三:安装 JMeter

安装 JMeter 非常简单,您只需将 zip/tgz 文件解压到您指定的目录下,即可,并没有额外操作!

解压缩完成后,安装目录结构如下图所示:

img

下面让我们了解下 JMeter 的各个文件目录的作用:

  • /bin:包含用于启动 JMeter 的脚本文件;
  • /docs:JMeter 文档;
  • /extras:ant 相关的额外文件;
  • /lib :包含 JMeter 所需的 jar 包;
  • /lib/ext:包含 JMeter 和协议相关的核心 jar 包;
  • /lib/junit:JMeter 的 Junit 测试依赖 jar 包;

步骤四:启动 JMeter

您可以通过三种模式来启动 JMeter:

  • 1.图形界面模式
  • 2.server 模式
  • 3.命令行模式

通过图形界面模式启动 JMeter

如果你使用的是 Windows 操作系统,你可以通过运行 /bin/jmeter.bat 文件来启动 JMeter:

img

双击运行:

img

启动完成后,可以看到如下图形界面:

img

如何在非图形界面模式下运行 JMeter

通过 Server 模式启动 JMeter

Server 模式用于分布式测试中使用,这种测试作用于 客户端 - 服务端 模型,基于此种模型,您需要将 JMeter 以 Server 的模式运行在需要测试的服务器上,然后另一台客户端计算机上,再运行一个 GUI 模式的 JMeter, 相互配合测试。

要想启动 Server 模式 JMeter, 需要运行 /bin/jmeter-server.bat 文件,如下图所示:

img

通过命令行模式启动 JMeter

JMeter 在 GUI 模式下会消耗大量的计算机内存,为了节省资源,您可以选择命令行的模式来运行 JMeter。您可以通过如下命令:

img

下面是一个示例:

 $ jmeter -n -t testPlan.jmx  -l log.jtl -H 127.0.0.1 -P 8000

img

在 Linux 环境下使用 JMeter

在 Linux 中使用 JMeter 与上述在 Windows 系统中大同小异,下面对相关脚本做下说明;

  • 1.通过运行 jmeter 脚本(此脚本无拓展名),JMeter 将以默认的图形界面模式来启动;
  • 2.通过运行 jmeter-server 脚本, JMeter Server 模式将启动;
  • 3.jmeter.sh: 这个脚本是一个非常基础的启动脚本,没有指定任何 JVM 参数;
  • 4.mirror-server.sh: 运行 JMeter Mirror Server(非图形界面模式) ;
  • 5.shutdown.sh: 温柔模式停止非图形界面模式的 jmeter 客户端;
  • 6.stoptest.sh: 强制模式停止非图形界面模式 jmeter 客户端;