本文正在参加「金石计划 . 瓜分6万现金大奖」
JMeter 教程
JMeter 是 Apache 旗下的一款开源测试软件。它由纯 Java 语言编写,用于压力,负载,性能测试。当然,JMeter 不仅仅被使用于压力测试,它旨在覆盖所有类型测试,如负载测试,功能测试,压力测试,回归测试等。本教程将深入介绍 JMeter,包括其测试计划,监听器,函数以及正则表达式等。
注意:JMeter 要求 JDK 1.5 或者更高的版本。
本教程面向读者
本教程专为测试领域的软件专业人员而设计,旨在测试企业级应用的稳健性和可靠性。
阅读本教程前,您需要了解
在学习本教程前,您应该对 Java 编程语言有个基本了解。除此之外,当您打算在项目的不同阶段通过 JMeter执行不同类型的测试(回归,功能,负载,性能等)时,建议您对软件开发和软件测试过程也能有很好的掌握。
JMeter 简介
JMeter 最初被使用在 Web 应用程序或 FTP 应用程序,用于压力,负载,并发,性能方面的测试。而如今,它也用于功能测试,数据库服务器测试等领域。
为什么要选择 JMeter ?
作为一名开发人员,您是否测试过后台服务某个接口的性能?这个接口能并发处理多少个请求?
没有?如果有一天,老板命令你做个性能测试,同时模拟 100 个用户并发对 www.google.com 请求?你要怎么做?
分配 100 台 PC 来模拟 100 个人同时访问 www.google.site 显然是不可行的!所以,您需要一款像 JMeter 一样的测试工具,来模拟真实用户对目标网站进行性能/负载测试。
JMeter 特性
JMeter 有如下诸多优点:
- 开源许可证:JMeter 完全免费,所以您可以在源代码的基础上进行拓展;
- 友好的 GUI:JMeter 易于使用,并且您不需要花多长时间来熟悉它;
- 多环境运行:JMeter 是 100% 纯 Java 桌面应用程序。支持多个平台上运行;
- 完善的多线程框架: JMeter 允许通过单独的线程组同时和同时采样不同的函数;
- 测试结果可视化:测试结果可以以不同的格式展示,如图表,表格,树和日志文件等;
- 易安装:您只需复制并运行
.bat
文件即可运行 JMeter, 绿色无需安装; - 高度可扩展:您可以编写自己的测试, JMeter还支持可视化插件,允许您自定义扩展;
- 丰富的测试策略:JMeter支持多种测试策略,如负载测试,分布式测试和功能测试等;
- 并发模拟:JMeter 支持多线程并发,模拟多个用户请求;
- 多协议支持:JMeter 不仅支持 Web 应用程序测试,还能评估数据库服务器性能。另外,JMeter 支持所有基本协议,如
HTTP
,JDBC
,LDAP
,SOAP
,JMS
以及FTP
; - 录制及回放 :能够录制用户在浏览器的行为,通过 JMeter 来模拟;
- 脚本测试:Jmeter 能够集成 Bean Shell 和 Selenium ,进行自动化测试。
JMeter 是如何工作的?
JMeter 的基本工作流程如下图所示:
上图是通过 JMeter 模拟一组用户给目标服务发送请求,然后通过图形表格的方式返回该服务器的统计信息。
再看下一个完整的 JMeter 流程:
JMeter 历史版本
版本 | 描述 |
---|---|
1 | 第一版本正式发行 |
2.13 | Java 6+ |
3 | Java 7+ |
3.1 | Java 7+ |
3.2 | Java 8+ |
3.3 | Java 8 |
4 | Java 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。
完成安装后,您可以通过下面步骤来查看,是否安装 JDK 成功:
- 1.在 Windows/ Linux 系统中,打开终端程序;
- 2.输入命令
java -version
;
如果成功安装了 Java 运行时环境,您将看到如下输出:
如果您没有显示相关信息,则需要重新安装 Java 环境。
注意:小编这里安装的是 JDK 1.8 版本。
步骤二:下载 JMeter
在撰写本文时,JMeter 的最新版本是 Apache JMeter 5.0 版本,您可以在这里下载:
选择 Binaries 文件(zip 包或者 tgz 包)进行下载,如下图:
步骤三:安装 JMeter
安装 JMeter 非常简单,您只需将 zip/tgz 文件解压到您指定的目录下,即可,并没有额外操作!
解压缩完成后,安装目录结构如下图所示:
下面让我们了解下 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:
双击运行: :
启动完成后,可以看到如下图形界面:
如何在非图形界面模式下运行 JMeter
通过 Server 模式启动 JMeter
Server 模式用于分布式测试中使用,这种测试作用于 客户端 - 服务端 模型,基于此种模型,您需要将 JMeter 以 Server 的模式运行在需要测试的服务器上,然后另一台客户端计算机上,再运行一个 GUI 模式的 JMeter, 相互配合测试。
要想启动 Server 模式 JMeter, 需要运行 /bin/jmeter-server.bat
文件,如下图所示:
通过命令行模式启动 JMeter
JMeter 在 GUI 模式下会消耗大量的计算机内存,为了节省资源,您可以选择命令行的模式来运行 JMeter。您可以通过如下命令:
下面是一个示例:
$ jmeter -n -t testPlan.jmx -l log.jtl -H 127.0.0.1 -P 8000
在 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 客户端;