JMeter 入门教程:介绍、设置中文与基础使用
一、JMeter 是什么
JMeter 是 Apache 软件基金会旗下的开源压测工具,用纯 Java 编写,主要用于对 Web 应用、接口、数据库等系统做性能测试与压力测试——模拟大量用户同时访问,观察系统在压力下的表现(响应时间、吞吐量、错误率等)。
它最大的两个优势:
- 免费开源:商业压测工具(LoadRunner 等)动辄收费,JMeter 完全免费;
- 跨平台:只要装了 JDK,Windows / macOS / Linux 都能跑。
JMeter 能做什么
| 场景 | 说明 |
|---|---|
| HTTP/HTTPS 接口压测 | 最常用的场景,模拟用户请求 Web 接口 |
| 数据库压测 | 通过 JDBC 采样器压测 MySQL、Oracle 等 |
| FTP / JDBC / JMS / WebSocket | 多种协议采样器 |
| 分布式压测 | 一台机器不够,可用 Agent 模式多机联合压测 |
| 接口功能测试 | 配合断言做简单的接口回归验证 |
| 生成测试报告 | 压测后自动生成 HTML 报告 |
二、环境要求与下载
JMeter 运行依赖 Java 环境,要求 JDK 8 及以上(建议 JDK 11 或 17)。
- 确认本机已安装 JDK:终端执行
java -version,能输出版本号即可; - 到 Apache 官网下载
apache-jmeter-x.x.x.zip(Windows 选 zip,macOS/Linux 选 tar.gz); - 解压到本地目录,进入
bin文件夹:- Windows:双击
jmeter.bat; - macOS / Linux:执行
sh jmeter。
- Windows:双击
小提示:不要下载带
src的源码包,下载bin发行包即可直接运行。
三、如何设置中文界面
JMeter 默认是英文界面,有两种方式切换中文。
方式一:临时切换(仅当前会话有效)
打开 JMeter 后,点击菜单 Options → Choose Language → Chinese (Simplified),界面立刻变成中文。缺点是重启后恢复英文。
方式二:修改配置文件永久生效(推荐)
在 JMeter 的 bin 目录下找到 jmeter.properties:
- 用文本编辑器打开;
- 找到这一行:
#language=en; - 删除行首的
#注释符,改成:
language=zh_CN
- 保存,重启 JMeter 即可永久中文。
更稳妥的做法:
jmeter.properties升级版本时可能被覆盖,官方推荐把自定义配置写到user.properties(同样在 bin 目录下,不存在就新建一个),添加language=zh_CN即可,升级不受影响。
为什么改完没生效?
注意:Windows 的 jmeter.bat / Linux 的 jmeter 启动脚本里默认加了 -Duser.language=en 参数,命令行参数优先级高于配置文件。如果按上面步骤改了还不生效,需要同时检查启动脚本:
- 修改
bin/jmeter.bat(Windows)或bin/jmeter(Linux),把-Duser.language=en -Duser.region=EN这两段删除,或改成zh_CN。
四、基础使用:五分钟压测一个接口
下面以压测一个 HTTP 接口为例,走一遍完整流程。
1. 创建测试计划
打开 JMeter 后,默认已经有一个"测试计划"。右键测试计划 → 添加 → 线程(用户)→ 线程组。
2. 配置线程组(模拟用户)
选中线程组,右侧面板配置三个核心参数:
| 参数 | 含义 | 示例值 |
|---|---|---|
| 线程数(用户数) | 模拟多少个并发用户 | 100 |
| Ramp-Up 时间(秒) | 多少秒内启动完所有线程 | 10 |
| 循环次数 | 每个用户跑几遍 | 10(勾选"永远"则一直跑,需手动停止) |
含义:10 秒内均匀启动 100 个用户,每个用户循环请求 10 次,共发出 100 × 10 = 1000 个请求。
3. 添加 HTTP 请求采样器
右键线程组 → 添加 → 采样器 → HTTP 请求,配置:
- 协议:
http(或https) - 服务器名称或 IP:
www.example.com - 端口号:
80(https 填 443,默认可留空) - 方法:
GET/POST - 路径:
/api/login - 如果接口要传参,在"参数"标签页添加键值对;POST 传 JSON 时,在"HTTP 客户端实现"或"消息体数据"里填入 JSON 字符串,并设置内容类型为
application/json。
4. 添加监听器看结果
右键线程组 → 添加 → 监听器,常用两个:
- 查看结果树:逐条看每个请求的响应内容,适合调试接口是否通了;
- 聚合报告:压测后的核心指标汇总——平均响应时间、吞吐量(Requests/sec)、错误率等。
5. 启动压测
点击顶部绿色启动按钮,观察监听器数据。跑完点击"聚合报告",重点看三个指标:
- Average(平均响应时间):越小越好;
- Throughput(吞吐量):每秒处理请求数,越大越好;
- Error %(错误率):压测后错误请求占比,一般要求 0%。
6. 保存测试计划
测试计划可以保存为 .jmx 文件,下次直接打开复用,也可以配合命令行跑:
jmeter -n -t test.jmx -l result.jtl -e -o report_dir
-n:命令行模式(不弹界面)-t:指定测试计划文件-l:保存原始结果-e -o:生成 HTML 可视化报告到指定目录
五、新手常见问题
Q1:压测自己的电脑会卡死吗?
线程数设置过大(如 1 万线程)压测本地服务,压测机本身也会成为瓶颈。单机压测建议线程数从几十、几百开始逐步加,观察曲线。
Q2:和 Postman 有什么区别?
Postman 侧重接口调试(一次发一个请求看结果),JMeter 侧重并发压测(模拟成百上千用户同时打)。两者定位不同,可以配合使用。
Q3:中文界面显示乱码?
一般是响应编码问题,在"查看结果树"中乱码时,可在 HTTP 请求的"取样器结果"配置中强制指定编码,或在测试计划里添加"HTTP 头管理器"设置 Content-Type 带 charset=UTF-8。
Q4:压测结果不准?
常见原因:压测机性能不足、网络带宽打满、没有先做小流量冒烟测试。建议压测机和被测服务器尽量分离,并多次运行取稳定值。
六、总结
本文介绍了 JMeter 的用途、环境准备、中文界面设置(改 language=zh_CN 或配置文件),以及一个完整的 HTTP 压测流程。核心学习路径建议:
- 先用"线程组 + HTTP 请求 + 查看结果树"跑通一个接口;
- 再用"聚合报告"理解平均响应时间、吞吐量、错误率三个指标;
- 进阶学习断言、参数化(CSV 数据文件)、关联(正则提取)、分布式压测。
掌握了这三步,JMeter 就能从"会打开"变成"会用"。