今天为大家带来的是面向初学者的JMeter实战手册:从环境搭建到组件解析,废话不多说,让我们直接开始~
Apache JMeter 是 Apache 组织基于 Java 开发的压力测试工具,用于对软件做压力测试。
JMeter 最初被设计用于 Web 应用测试,但后来扩展到了其他测试领域,可用于测试静态和动态资源,如静态文件、Java 小服务程序、CGI 脚本、Java 对象、数据库和 FTP 服务器等等。JMeter 可对服务器、网络或对象模拟巨大的负载,在不同压力类别下测试它们的强度和分析整体性能。另外,JMeter 能够对应用程序做功能/回归测试,通过创建带有断言的脚本来验证程序是否返回了期望结果。为了最大限度的灵活性,JMeter 允许使用正则表达式创建断言。
.zip
或.tgz
包(推荐最新稳定版)双击即可运行,但是有两点注意:
JMETER_HOME
设置为 JMeter 解压路径。%JMETER_HOME%\bin
添加到系统 PATH
环境变量中。HTTP 请求
、JDBC Request
、FTP 请求
。查看结果树
、聚合报告
、图形结果
。HTTP 请求默认值
、CSV 数据集配置
。响应断言
、JSON 断言
。正则表达式提取器
、JSON 提取器
。jmeter.properties
文件,添加language=zh_CN
到文件中即可在选项中选择自己喜欢的主题即可,这里选择的是idea同款主题
在测试计划上点鼠标右键,选择添加>线程(用户)>线程组,填写线程信息,以下是线程属性解读:
例如:设置为 100
表示 JMeter 会模拟 100 个用户同时操作。
例如:线程数=100,Ramp-Up=50,表示 JMeter 会在 50 秒内均匀启动 100 个线程(每秒约启动 2 个)。
例如:设置为 5
表示每个线程会执行 5 次完整的测试计划。
勾选 永远
:线程会无限循环执行,直到手动停止或达到测试时长限制(需配合调度器使用)。
在已创建的HTTP请求上点鼠标右键,添加http取样器,并编写取样器内容,以下是属性解读:
基本配置项 | 说明 |
---|---|
名称 | 取样器的描述性名称(如 "登录接口"),便于后续结果分析。 |
注释 | 可选,添加备注信息。 |
协议 | 请求的协议类型,默认为 http 或 https(需完整填写,如 https://)。 |
服务器名称或 IP | 目标服务器的域名或 IP 地址(如 api.example.com),⚠️ 如果测试计划中已配置 HTTP 请求默认值,此处可留空。 |
端口号 | 服务器的端口号(HTTP 默认为 80,HTTPS 默认为 443)。 |
HTTP 请求方法 | 选择请求方法:GET、POST、PUT、DELETE 等。 |
路径 | 请求的 URL 路径(如 /api/login),⚠️ 不要包含协议和域名(已在前面配置)。 |
内容编码 | 请求体的编码格式(如 UTF-8),通常保持默认。 |
自动重定向 | 若勾选,JMeter 会自动跟随 3xx 重定向(不记录重定向过程)。 |
跟随重定向 | 若勾选,JMeter 会记录重定向的每个步骤(在结果树中显示多次请求)。 |
使用 KeepAlive | 保持 HTTP 长连接,默认勾选(性能测试建议启)。 |
对POST使用multipart/form-data | 勾选后启用文件上传或表单提交(适用于POST请求) |
与浏览器兼容的头 | 兼容浏览器的头信息 |
在已创建的HTTP请求上点鼠标右键,添加监听器:
监听器名称 | 主要功能 | 适用场景 |
---|---|---|
查看结果树 | 显示每个请求的详细请求/响应数据(Header、Body、状态码等)。 | 调试阶段,检查请求是否正确。 |
聚合报告 | 统计所有请求的响应时间、吞吐量、错误率等关键指标(平均值、中位数、90% Line等)。 | 性能测试分析,评估整体性能。 |
图形结果 | 以折线图形式展示响应时间、吞吐量随时间的变化趋势。 | 直观观察性能波动。 |
汇总报告 | 类似聚合报告,但更简洁,仅显示关键统计值(平均、最小、最大、错误率)。 | 快速查看测试概况。 |
响应时间图 | 绘制每个请求的响应时间变化曲线。 | 分析响应时间稳定性。 |
断言结果 | 显示断言(如状态码、内容匹配)是否通过。 | 验证接口功能是否符合预期。 |
后端监听器 | 将测试结果发送到外部系统(如InfluxDB + Grafana)。 | 实时监控 & 可视化大屏展示。 |
监听器核心指标解析
指标 | 含义 | 理想情况 |
---|---|---|
样本数 | 总共发送的请求数量。 | 与预期并发量一致。 |
平均响应时间 | 所有请求的平均响应时间(毫秒)。 | 越低越好(取决于业务需求)。 |
中位数 | 50%的请求响应时间低于此值。 | 比平均值更稳定,不受极端值影响。 |
90% Line | 90%的请求响应时间低于此值(反映绝大多数用户的体验)。 | 越接近平均值越好。 |
吞吐量 | 每秒处理的请求数(Requests/sec)。 | 越高越好(系统处理能力)。 |
错误率 | 失败请求的百分比。 | **0%**(无错误)。 |
以下是部分监听器显示效果:
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有