Apache JMeter 使用指南

使用 JMeter 对服务端进行压测,用来定位服务端的性能问题。

Apache JMeter 基于 Java 编写,所以在各平台都可以快乐使用。有 GUI 和中文,易用性拉满。

下载安装

首先需要到官网下载,进入到官网后点击左上角的 Download Releases,在右下角选择 Binaries 中的 zip 包下载。不要下载到 Source 中文件,程序会无法正常运行。

jmeter-down

将下载的 zip 包解压到任意目录,本文基于 Apache JMeter 5.x+版本,无需进行环境变量的配置,需要 JAVA 8+的环境。请先安装 JDK 以继续。

windows 下,双击/bin/jmeter.bat 文件启动。

MAC 下,双击/bin/jmeter 文件启动。

启动后不要关闭命令行工具,直接使用即可。

修改界面语言

右键启动文件 jmeter.bat/jmeter 使用文本编辑器打开,修改其中的 language 和 region 为想要使用的语言即可,例如中文则如图改成 zh CN,保存退出,重新打开应用即可看到中文界面。

lang

模拟并发场景

新建一个测试计划,右键测试计划 -> 添加 -> 线程 -> 线程组

new-test

添加 http 请求测试,右键线程组 -> 添加 -> 取样器 -> HTTP 请求

new-http

配置 HTTP 请求,请求的 url 和参数等

http-req

选中线程组,配置请求的状态。

user

对三个参数的解释:

  • 线程数即用户数,单次运行时总的请求量
  • ramp-up 时间,发送所有请求所用的时间,例如线程数是 10,ramp-up 时间为 2,则每秒发送五个请求
  • 循环次数,即并行执行的次数。例如线程数是 5,ramp-up 时间为 1,循环次数为 2,则会同时发送 10 个请求。即循环不是等待上一次循环结束才开始的,而是同时开始。

如图将线程数设为 10,ramp-up 时间和循环次数都设为 1,则并发数为 10,最后添加两个监听器来记录结果。

选中线程组,右键线程组 -> 添加 -> 监听器 -> 查看结果树和汇总报告。新建或者选择任意文件保存结果。

addlistener

然后点击上方的绿色按钮运行即可。

配置 POST 请求

在HTTP配置中,将请求方式改为POST。通常情况我们的请求体是JSON,可以在下方切换到消息体数据tab,输入参数。

post

然后添加请求头的配置,右键线程组 -> 添加 -> 配置元件 -> HTTP信息头管理器

header

在打开的配置页中添加Content-Type: application/json

header-content

配置完后即可正常发送POST请求。

报告说明

所有报告说明可以查看官方文档,该节仅摘录结果树和汇总报告两种报告。

查看结果树

结果树中可以看到每个请求的成功或失败的状态和各个请求的参数和响应,选中查看即可。

汇总报告

total

每个不同名称的请求会创建一个表行。对于每个请求,有以下信息

  • Lable:每个样品的名称,如HTTP Request
  • # 样本:具有相同标签的样本数(执行次数)
  • 平均值:平均响应时间
  • 最小值:最小响应时间
  • 最大值:最大响应时间
  • 异常 %:本次测试中出现的错误率,即 错误的请求的数量/请求
  • 吞吐量:以每秒/分钟/小时的请求数衡量
  • 接收 KB/sec:每秒从服务器端接收到的数据量
  • 发送 KB/sec:每秒从客户端发送的请求的数量

实现间隔请求

有时候需要模拟间隔的并发请求,例如并发10个请求,隔两分钟再并发10个,这时候线程组的作用就体现出来了。

可以右键选择刚刚创建的HTTP Request,选中复制,然后右键选中线程组点击黏贴。

对复制出来的HTTP Request,右键添加固定定时器。

settimeout

需要注意的是定时器是相对于上一个任务间隔的时间(而不是第一个任务的时间),也就是定好时间之后,想要执行几次任务,就复制几个刚设定了定时器的任务即可。

其他

点击上方(齿轮 + 扫把)按钮可以清除当前记录的结果。

更多使用说明可查看官方文档,点击跳转