jMeter 快速入门初体验,压测必备神器

jmeter   java   测试  
发布于 Sep 3, 2024

最近在推进信创转 arm, 遇到的问题是有几个服务在 x86 架构下运行良好,但是在 arm 机器上总是出现问题,为了验证问题,准备使用压测工具做一下压力测试,JMeter 免费开源又好用,趁此机会学习实践一下吧。

JMeter 是开源软件 Apache 基金会下的一个性能测试工具,用于测试部署在服务器端的应用程序的性能。本文旨在帮助想了解性能测试和 JMeter 的初学者。本文将介绍 JMeter 的安装和运行方法,以及如何开始最简单的测试。

下载安装

直接在官网下载最新版即可,JMeter 是免安装版的,下载解压后可以直接使用(前提是你电脑上已经安装过 JDK 8 以上的环境,安装这块应该问题不大,大家自行解决):

https://jmeter.apache.org/download_jmeter.cgi

如需历史版本可以移步:

https://archive.apache.org/dist/jmeter/

我这里使用最新版的 5.6.3

下载解压后,目录结构如下:

目录说明:

  • backups: 默认是没有的,当你运行了测试任务时就会自动将测试脚本(.jmx 文件)备份到这里
  • bin: 可执行脚本和一些模版示例
  • docs: Java doc 文档
  • extras: 提供了对构建工具 Ant 的支持,可以使用Ant来实现测试自动化,例如批量脚本执行,产生HTML格式的报表
  • lib: 该目录包含两个子目录,其中ext子目录存放 JMeter 的核心 jar 包,另一个junit子目录存放JUnit测试脚本
  • licenses: 相关 licenses
  • printable_docs: 该目录存放的是 jmeter 官方提供的帮助文档,可以离线查看

启动 JMeter

在 bin 目录下,Windows 用户运行 jmeter.bat 文件即可启动, JMeter,Unix / MacOS 用户则需要运行 jmeter.sh

启动之后会打开一个 GUI 软件( CMD 窗口也不要关,隐藏即可)

默认字体比较小,可以 Options -> Zoom In 进行放大

也支持简体中文,根据自己的喜好来设置即可,Options -> Choose Language -> Simple

图形化界面,大家可以自己熟悉一下就可以了,接下来,我们来创建一个测试计划

创建测试计划

所谓测试计划,就是要执行的测试任务的合集,对应一个 .jmx 文件,完整的测试计划包含一个或者多个线程组,逻辑控制器,取样发生控制,监听器,定时器,断言和配置元件等组成。

添加线程组

如上图中的 Test Plan, 我们来添加一个线程组:选中 Test Plan - 右键 - Add - Threads(Users) - Thread Group.

JMeter 是由 Java 实现的,使用一个 Java 线程来模拟一个用户,因此线程组(Thread Group)就是指一组用户的意思。

操作完之后就会打开 线程组页面,可以配置线程组相关的内容,如下图

① 名称,起一个名称
② 出错如何处理,这里选择了 continue 继续
③ 总共有多少线程(用户),一个线程代表一个用户
④ 多长时间把 ③ 中设置的线程数拉起来,上面的设置就表示 1 秒时间将 100 个用户拉起来,以用户打卡为例,总共100个用户,大家都在 5 秒内打卡完成,大家有的在第 1 秒打,有的在第 3 秒打,这个设置就是模拟真实生活场景的,用户也不是完全同时的
⑤ 每个用户循环几次,上面的设置就表示 100 个用户,每人做 10 次,总共发出 10 * 1000 = 10000 次请求

添加测试任务

有了线程组,下面要给这批用户(线程)分配活了,同样,在 线程组 上右键进行相关操作,这里配置最简单的 HTTP 请求

配置页面也比较容易理解,跟使用 PostMan 之类的差不多,大家看页面应该就知道怎么填了,比如我这里简单测试接口 http://localhost:8080/hello?name=jack

保存并执行

保存并执行测试计划

点击 三角 执行测试计划,点击 Options - Log Viewer 可以打印日志信息

添加监听器

上面已经可以正常压测了,但是看不到输出的结果,我们可以添加一些监听器进行查看结果,比如 查看结果树 和 聚合报告 这两个。

查看结果树可以查看到每次请求的响应情况

聚合报告用来查看测试计划所执行的情况,比如延迟,吞吐量之类的

先简单知道些入门的东西,后续再探究更加高阶的内容。

命令行执行

在 windows 上可以运行 GUI 界面,但是在 linux 服务器上一般执行 命令行 命令较多,当然,在 windows 上也可以执行 命令行 指令,我们来简单使用一下。

在 bin 目录下有可执行的脚本,在 bin 目录下,windows 系统按住 shift 右键 在此处打开 PowerShell 窗口,可以使用 .\jmeter -v 查看当前版本

使用 .\jmeter -h 查看帮助提示

还记得我们在上面演示的测试计划保存到了下面的目录,我们就用这个为例进行执行

提前再创建一个 E:\App\apache-jmeter-5.6.3\tmp_result 空目录(一定是一个空目录哟)用来存放输出的结果,直接看下面的示例,关键点是: -t 后面指定测试计划脚本,-l 输出csv 结果,-o 输出html结果

 .\jmeter -n -t 'E:\App\apache-jmeter-5.6.3\tmp_tests\Test Plan.jmx' -l E:\App\apache-jmeter-5.6.3\tmp_tests\Test.csv -e -o E:\App\apache-jmeter-5.6.3\tmp_result

执行界面输出结果

Test.csv 文件内容,每个请求的情况

tmp_result 输出结果

双击 index.html 查看

总结

时间关系,先分享到这里,也算带大家入门了 JMeter 的最基本使用吧,后面再继续探索更多实操,届时再做分享,当然你也可以继续搜索更加进阶的内容,带有目的性的去学习更加深入的内容。

我后续会继续在 linux 服务器上进行实践,包括启用多机器联机模式进行加大压力真正实践生产级压测需求,大家感兴趣的话可以关注一下,期待下次分享。

本次的分享到此结束,希望对你有所帮助。

如果你对我分享的内容感兴趣,欢迎扫码关注公众号:新质程序猿,并设置星标,推送更实时哟!

本文由 黄彦祥 创作,采用 知识共享署名 3.0 中国大陆许可协议 进行许可。
可自由转载、引用,但需署名作者且注明文章出处。