JMeter

一、简介与安装

定位:开源性能测试工具,支持 HTTP/HTTPS、JDBC、JMS 等多种协议,可模拟大量并发用户

安装前提:需要 Java 8+,作者的环境是Java 17,安装了JMeter 5.6.3

启动 :解压后进入 bin 目录,双击 jmeter.bat(Windows)或运行 jmeter.sh(Linux/macOS)

设置中文界面:Options → Choose Language → Chinese (Simplified);或修改 jmeter.properties 中的 language=zh_CN 实现永久设置

二、测试计划核心组件

1. 线程组(模拟用户)

线程数:并发用户数

Ramp-Up 时间:启动所有线程所需时间(秒),避免瞬间巨大压力

循环次数:每个线程重复请求次数(勾选"永远"可持续压测)

调度器:可设置持续时间、启动延迟等


2. HTTP 请求

协议、服务器名称、端口:必须与后端一致(如 localhost + 8081)

路径:必须用相对路径(如 /voucher-order/seckill/10),不要包含完整 URL,否则会覆盖前面的服务器和端口设置

方法:GET/POST 等,需与接口定义匹配

参数/消息体数据:根据接口要求填写


3. 配置元件

HTTP 信息头管理器:添加认证头(如 Authorization: Bearer ${token})、Content-Type: application/json 等

HTTP 请求默认值:统一设置服务器、端口,简化后续请求

CSV 数据文件设置:参数化,从文件读取不同用户/数据


4. 断言(验证响应)

响应断言:检查响应文本或状态码

JSON 断言:验证 JSON 响应中特定字段的值

JSON 路径:如 $.success

期望值:布尔值(true/false)不加引号,数字直接写,字符串加双引号

注意:路径不能为空,否则断言会失败(错误信息:path can not be null or empty)

大小断言、持续时间断言:用于性能阈值检查


5. 监听器(查看结果)

察看结果树:调试用,可查看每个请求的请求/响应详情

聚合报告:查看吞吐量、平均响应时间、错误率等关键指标

汇总报告:类似聚合报告,提供更多百分位数

注意:正式压测时应关闭或禁用"察看结果树"以节省内存

三、常见错误与解决方案

|------------------------------------|------------------------|-------------------------------------------------|
| 错误现象 | 常见原因 | 解决方法 |
| Connection refused | 后端服务未启动或端口错误 | 确认后端服务已启动且监听正确端口;检查防火墙 |
| 404 Not Found | 请求路径错误、端口错误、路径中写了完整URL | 使用相对路径,确认服务器名称和端口正确;检查接口路径是否包含上下文根 |
| 200 但请求标红 | 断言失败 | 在"察看结果树"中查看"断言结果"选项卡,根据实际响应调整断言条件 |
| 断言失败:path can not be null or empty | JSON 断言中未填写 JSON 路径 | 填写正确的 JSONPath(如 $.success) |
| 重定向(302) | 缺少认证或会话失效 | 添加 HTTP 信息头管理器,携带登录 token;勾选"跟随重定向" |
| 内存溢出 | 并发线程数过高或监听器过多 | 调整 JVM 堆内存(修改 jmeter.bat 中的 HEAP 参数);使用非 GUI 模式 |
| 数据插入但 JMeter 报错 | 断言条件与实际返回不一致 | 检查实际响应内容,修正断言期望值 |

**PS:**JMeter是作者在学习高并发业务时临时学习的,主要是因为当时不熟悉流程,添加了断言但没有写断言路径导致请求发送后报红 )( 本篇博文草草写出,如有错误联系作者。

相关推荐
IGAn CTOU23 分钟前
王炸级更新!Spring Boot 3.4 正式发布,新特性真香!
java·spring boot·后端
C雨后彩虹30 分钟前
最多等和不相交连续子序列
java·数据结构·算法·华为·面试
tycooncool39 分钟前
Spring中的IOC详解
java·后端·spring
014-code1 小时前
日志规范:怎么写才不算写废话
java·开发语言·设计模式·日志
CQU_JIAKE1 小时前
4.17[Q]
java·linux·服务器
亦暖筑序2 小时前
Spring AI Alibaba 报错合集:我踩过的那些坑
java·后端
Xiaoweidumpb2 小时前
JMeter 压测实战全链路(三):登录接口压测实战・验证码+账号密码+登录全流程
测试工具·jmeter
indexsunny2 小时前
互联网大厂Java面试实战:核心技术与微服务架构在电商场景中的应用
java·spring boot·redis·kafka·maven·spring security·microservices
摇滚侠2 小时前
Java 多线程基础 Java Multithreading Basics
java
今天你TLE了吗2 小时前
LLM到Agent&RAG——AI概念概述 第一章:大模型
java·人工智能·语言模型·大模型