3. JMeter入门
好,咱们开始动手了。
前面聊了那么多理论,说实话,没有实操都是空中楼阁。这一章,我带你亲手把JMeter跑起来,配置好线程组,加上Sampler和Listener,然后压测第一个真实的接口。
我个人习惯,学任何工具都是先跑通一个最简单的例子,建立信心。你跟着我走一遍,半小时内就能看到结果。
3.1 JMeter安装:别在第一步卡住
JMeter是纯Java写的,所以前提是你得有JDK。我建议用JDK 8或11,这两个版本我实测最稳。
安装步骤很简单:
- 去Apache官网下载最新版(目前是5.x),选那个
apache-jmeter-xxx.zip。 - 解压到任意目录,比如
D:\jmeter。路径里不要有中文和空格。 - 进入
bin目录,双击jmeter.bat(Windows)或运行jmeter(Mac/Linux)。 - 等几秒,会弹出JMeter的GUI界面。
嗯,这里要注意:第一次启动可能会有点慢,因为JMeter在加载各种插件和配置。别急,给它点时间。
jmeter.bat里加一行set HEAP=-Xms512m -Xmx4096m,把堆内存调大。压测时如果数据量大,默认的256M根本不够用。
3.2 线程组配置:模拟用户的关键
线程组(Thread Group)是JMeter里最核心的概念。说白了,它就是用来模拟“有多少个虚拟用户”在同时访问你的系统。
右键点击“测试计划” → 添加 → 线程(用户) → 线程组。你会看到这样一个配置面板:
| 参数 | 说明 | 我的建议 |
|---|---|---|
| 线程数 | 虚拟用户的数量 | 从10开始,逐步增加 |
| Ramp-Up时间(秒) | 所有线程启动完成需要的时间 | 设为线程数的一半,比如10个线程就设5秒 |
| 循环次数 | 每个线程执行多少次请求 | 压测一般勾选“永远”,然后设置持续时间 |
| 持续时间(秒) | 压测跑多久 | 至少60秒,数据才有统计意义 |
举个例子:你想模拟100个用户持续压测2分钟。那就设线程数=100,Ramp-Up=50秒,勾选“永远”,持续时间=120秒。
3.3 Sampler:发什么请求,你说了算
线程组只是定义了“谁”在发请求,而Sampler定义了“发什么请求”。
右键点击线程组 → 添加 → 取样器 → HTTP请求。这里有几个关键字段:
- 协议: http 或 https
- 服务器名称或IP: 比如
api.example.com - 端口号: 默认80(http)或443(https)
- 方法: GET、POST、PUT等
- 路径: 比如
/api/v1/users - 参数: 如果是GET请求,参数可以在这里添加
我记得有一次帮客户压测一个登录接口,他们用的是POST请求,但参数格式是JSON。这时候就需要在“Body Data”里写JSON字符串,而不是在“参数”里加键值对。
application/json。不然服务端解析不了,会返回400错误。
3.4 Listener:结果怎么看?
压测跑完了,数据在哪?Listener就是干这个的——收集和展示测试结果。
右键点击线程组 → 添加 → 监听器。我常用的有这几个:
- 查看结果树: 调试用。能看到每个请求的请求头和响应体。但压测时别开,会消耗大量内存。
- 聚合报告: 最常用。能看到平均响应时间、吞吐量、错误率等核心指标。
- 图形结果: 可视化展示,适合给老板看。
- 用表格查看结果: 能看到每个请求的详细时间戳和状态码。
我个人习惯,调试阶段用“查看结果树”,正式压测时只开“聚合报告”。你想想看,如果压1000个并发,每个请求都记录完整数据,JMeter自己就先撑不住了。
3.5 压测第一个接口:实战演练
好,理论说完了,咱们来真的。假设我们要压测一个公开的接口:https://jsonplaceholder.typicode.com/posts/1(这是一个免费的测试API)。
步骤很简单:
- 创建测试计划,添加线程组:线程数=10,Ramp-Up=5秒,循环次数=10。
- 添加HTTP请求:协议=https,服务器=jsonplaceholder.typicode.com,方法=GET,路径=/posts/1。
- 添加监听器:聚合报告。
- 点击绿色“启动”按钮。
跑完之后,看聚合报告里的这几列:
| 指标 | 含义 | 正常范围 |
|---|---|---|
| #样本 | 总共发了多少个请求 | 10线程 × 10循环 = 100 |
| 平均值 | 平均响应时间(毫秒) | 一般小于500ms算不错 |
| 中位数 | 50%的请求在这个时间内完成 | 比平均值更有参考价值 |
| 吞吐量 | 每秒处理的请求数(TPS) | 越高越好 |
| 错误率 | 失败请求的比例 | 应该为0% |
3.6 知识体系总览
为了让你对本章内容有个整体认识,我画了一张图:
这张图把本章的核心内容串起来了。你跟着这个流程走一遍,JMeter的基本操作就掌握了。
好了,JMeter入门就到这里。你打开JMeter,照着上面的步骤跑一遍,很快就能看到自己的第一个压测报告。有什么问题,随时翻回来看。