JMeter 基础组件有哪些
JMeter 是 Apache 的开源压测工具,以线程组(Thread Group)为核心组织负载:线程数、Ramp-up 与循环次数共同描述「多少个虚拟用户、分多久启动、每人跑几轮」。请求由采样器发出,断言校验响应,定时器模拟思考时间,监听器收集结果。界面只用来搭脚本与调试,正式压测一律走命令行,避免图形开销污染数据。
组件
| 组件 | 作用 |
|---|---|
| 线程组 | 定义负载模型(线程数与节奏) |
| 采样器 | 发起各种协议请求 |
| 断言 | 校验响应正确性 |
| 定时器 | 思考时间与吞吐节奏 |
| 配置元件 | 参数化与共享配置 |
| 监听器 | 结果收集与展示 |
命令行执行
命令行执行
jmeter -n -t plan.jmx -l result.jtl -e -o ./report
# -n 非 GUI 模式;-t 指定计划文件;-l 写原始结果
# -e -o 生成 HTML 报告(目标目录必须为空)
jmeter -n -t plan.jmx -R 192.168.1.11,192.168.1.12
# 分布式:主控把负载分发到多台从机(从机需先启动服务)基本信息
| 负载三要素 | 线程数(并发量)、Ramp-up(启动坡度)、循环次数 |
|---|---|
| 结果文件 | jtl/CSV 原始结果,供报告与二次分析 |
| 分布式 | 主控-从机模式横向扩展加压能力 |
| 协议支持 | HTTP、JDBC、JMS、gRPC(插件)等 |
| 堆内存 | 高并发前按需调大堆内存参数 |
| 脚本格式 | JMX 文件可纳入版本库管理 |
典型使用场景
- HTTP 接口压测:参数化请求、断言响应、统计分位延迟。
- 数据库压测:用 JDBC 采样器验证查询性能(注意数据准备)。
- 回归压测:固定脚本定期执行,对比版本间指标。
- 分布式发压:单机能力见顶时用主控调度多台从机。
- CI 冒烟压测:命令行模式跑小规模场景,拦截明显退化。
- 场景编排:用控制器组合登录、浏览、下单等多步流程。
GUI 模式仅用于调试:图形界面自身开销会污染高并发压测结果。
「查看结果树」在压测中必须关闭:全量记录响应会把内存撑爆并拖垮加压机。
分布式场景前先校时:主控与从机时钟不同步时,结果文件里的事件时间线对不齐,排查误判。
脚本用参数化替代硬编码:CSV 数据集喂入账号与商品,提高真实度也避免缓存干扰。