第1章:JMeter入门——安装、启动与核心配置
大家好,我是你们的老朋友。今天咱们聊聊JMeter。
说实话,我第一次接触JMeter的时候,心里是有点抵触的。那时候团队里都在用LoadRunner,觉得JMeter就是个“玩具”。直到有一次,客户预算砍了一半,LoadRunner的License买不起……嗯,从那以后,JMeter就成了我的主力工具。
这一章,我带大家把JMeter跑起来。别急,咱们一步步来。
1.1 JMeter安装与启动
JMeter是纯Java写的,所以第一步——装JDK。我建议用JDK 8或11,这两个版本我踩过坑,最稳。
安装前提:
- JDK 8+(推荐JDK 11)
- 内存至少4GB(压测时建议8GB+)
- 操作系统:Windows / macOS / Linux 都行
下载地址我就不贴了,直接去Apache官网找JMeter 5.x版本。下载后解压就行,绿色软件,不用安装。
启动方式:
- Windows:双击
bin/jmeter.bat - macOS/Linux:终端执行
sh bin/jmeter.sh
小技巧:我个人习惯在启动时加参数:jmeter -n -t test.jmx -l result.jtl。这样可以直接跑命令行模式,省得GUI吃内存。GUI模式下,JMeter自己就会吃掉不少资源,你想想看,压测还没开始,工具先把自己压垮了,多尴尬。
启动后你会看到一个带JMeter Logo的界面。别被它吓到,界面虽然老,但功能很能打。
1.2 线程组配置
线程组,说白了就是“虚拟用户池”。你设置多少个线程,JMeter就模拟多少个用户。
右键测试计划 → 添加 → 线程(用户) → 线程组。你会看到这个界面:
| 参数 | 说明 | 我的建议 |
|---|---|---|
| 线程数 | 虚拟用户数量 | 从10开始,逐步增加 |
| Ramp-Up时间(秒) | 用户启动的间隔时间 | 线程数 / 2 左右,别一下子全冲上去 |
| 循环次数 | 每个用户跑几遍 | 压测用“永远”,调试用1次 |
注意:我曾经犯过一个错——线程数设了1000,Ramp-Up设了1秒。结果服务器直接挂了,连JMeter自己都卡死了。后来我才明白,Ramp-Up时间太短,相当于1000个人同时挤电梯,电梯门都关不上。建议Ramp-Up时间至少是线程数的一半。
举个例子:你要模拟100个用户,Ramp-Up设50秒。这样每秒只启动2个用户,服务器压力是慢慢加上去的。你想想看,这样是不是更接近真实场景?
1.3 Sampler(HTTP请求)配置
Sampler就是“发请求的家伙”。我们最常用的是HTTP请求。
右键线程组 → 添加 → Sampler → HTTP请求。配置项如下:
- 协议:http 或 https(别写错了,我见过有人写http://然后协议又填https,结果请求发不出去)
- 服务器名称或IP:填目标地址,比如
api.example.com - 端口号:80(http)或443(https),不填默认80
- 方法:GET / POST / PUT / DELETE 等
- 路径:比如
/api/v1/login - 参数:GET请求的参数在这里加
- Body Data:POST请求的JSON或表单数据
实战示例:模拟一个登录接口
协议:https
服务器:api.example.com
端口:443
方法:POST
路径:/api/v1/login
Body Data:
{
"username": "testuser",
"password": "123456"
}
这里有个坑——参数编码。我曾经遇到一个接口,传中文参数时一直报错。后来发现是URL编码没勾上。在HTTP请求的“高级”选项卡里,有个“参数编码”选项,记得勾上。
1.4 监听器(聚合报告、图形结果)使用
监听器就是“看结果的地方”。没有监听器,你跑完压测都不知道数据长啥样。
聚合报告:
右键线程组 → 添加 → 监听器 → 聚合报告。这个报告会告诉你:
| 指标 | 含义 | 怎么看 |
|---|---|---|
| #Samples | 请求总数 | 越多越有统计意义 |
| Average | 平均响应时间(ms) | 一般要求<200ms |
| Min / Max | 最小/最大响应时间 | 看波动范围 |
| Error% | 错误率 | 超过1%就要查原因 |
| Throughput | 吞吐量(req/s) | 核心指标,越高越好 |
我的习惯:压测时我一般同时开两个监听器——聚合报告看整体数据,图形结果看趋势。图形结果能直观看到响应时间的变化曲线。如果曲线突然飙升,那八成是服务器扛不住了。
图形结果:
右键线程组 → 添加 → 监听器 → 图形结果。它会画出一条实时曲线,横轴是时间,纵轴是响应时间。我一般用它来观察“毛刺”——就是那些突然变高的点。毛刺多了,说明系统不稳定。
注意:监听器本身也会消耗资源。压测时如果监听器太多,JMeter自己就会变慢。我建议:正式压测时只开聚合报告,图形结果在调试时用。跑完压测再用命令行生成报告,这样最省资源。
本章小结
好了,这一章我们走了一遍JMeter的安装、线程组配置、HTTP请求配置和监听器使用。说白了,就是让JMeter能跑起来,能发请求,能看到结果。
下一章我们会深入参数化——让每个虚拟用户用不同的数据去请求。嗯,到时候你会觉得JMeter真的挺灵活的。
想要更多资料,联系可可