JMeter核心组件使用方法及场景大全

JMeter核心组件使用方法及场景大全

一、取样器(Sampler):请求发送核心(负责发起各类请求)

元件名称 使用方法 使用场景
HTTP 请求(最常用) 1. 填写服务器 IP / 域名、端口;2. 选择请求方法(GET/POST 等);3. 配置路径、参数、Body;4. 关联信息头管理器 接口测试(RESTful API、HTTP 接口)、性能测试(模拟用户请求接口)
FTP 请求 1. 填写 FTP 服务器地址、端口、用户名 / 密码;2. 选择操作类型(上传 / 下载);3. 配置本地文件路径和服务器路径 FTP 服务测试(文件上传 / 下载功能验证、性能压测)
JDBC 请求 1. 先添加「JDBC 连接配置」(配置数据库 URL、驱动类、账号密码);2. 选择查询类型(Select/Update 等);3. 填写 SQL 语句;4. 配置结果变量名 数据库测试(SQL 执行、数据校验、数据库性能压测)
事务控制器 1. 勾选「Generate parent sample」(聚合子请求结果);2. 嵌套需要组合的取样器 性能测试中定义事务(如 "登录 - 下单 - 支付" 为一个事务,统计整体响应时间)
调试取样器 1. 配置需要输出的变量(如${username});2. 运行后通过「查看结果树」查看变量值 脚本调试(验证参数化、提取器是否生效,定位变量赋值问题)

二、逻辑控制器(Logic Controller):控制请求执行逻辑

元件名称 使用方法 使用场景
If 控制器 1. 输入条件表达式(如 s t a t u s = = 200 、 {status}==200、 status==200、{__jexl3(${count}>10)});2. 嵌套需要条件执行的取样器 多分支逻辑(如响应码为 200 时执行后续请求,否则执行异常处理)
循环控制器 1. 填写循环次数(固定值 / 变量,如${loopNum});2. 嵌套需要重复执行的取样器 重复执行用例(如模拟用户重复查询、多次提交表单)
仅一次控制器 直接嵌套取样器(无需额外配置) 只执行一次的操作(如登录请求,后续循环中不再重复执行)
吞吐量控制器 1. 选择控制方式(百分比 / 总次数);2. 填写占比(如 50%);3. 嵌套取样器 按比例分配请求(如 80% 用户执行查询,20% 用户执行下单,模拟真实业务比例)
随机控制器 嵌套多个取样器(无需配置,随机执行一个子取样器) 随机场景模拟(如用户随机访问首页、商品页、个人中心)
录制控制器 1. 配合「HTTP 代理服务器」录制浏览器 / APP 请求;2. 录制后自动生成取样器 快速生成脚本(无需手动编写请求,适合复杂业务流程录制)

三、前后置处理器(Pre/Post Processor):请求前后数据处理

(1)前置处理器(请求发送前执行)

元件名称 使用方法 使用场景
用户定义的变量 1. 添加变量名和值(如username=test、timeout=3000);2. 脚本中通过${变量名}引用 全局参数配置(如服务器地址、固定参数,统一维护方便修改)
CSV 数据文件设置 1. 填写 CSV 文件路径、编码格式;2. 配置变量名(与 CSV 列名对应);3. 选择读取模式(一次 / 循环) 批量参数化(如多用户登录,CSV 中存储账号密码,循环读取执行)
HTTP 信息头管理器 1. 添加请求头字段(如Content-Type=application/json、Token=${token}) 接口请求头配置(JSON 格式接口、需要鉴权的接口、自定义头信息)
JDBC 连接配置 1. 填写 Variable Name(与 JDBC 请求关联);2. 配置 JDBC 驱动类(如 MySQL:com.mysql.cj.jdbc.Driver);3. 数据库 URL(jdbc:mysql://IP:3306/库名);4. 账号密码 数据库连接准备(为 JDBC 请求提供数据库连接信息)

(2)后置处理器(请求响应后执行)

元件名称 使用方法 使用场景
正则表达式提取器 1. 填写引用名称(如token);2. 配置正则表达式(如"token":"(.*?)");3. 填写模板( 1 1 1)、匹配数字 从响应文本中提取数据(如 Token、用户 ID,用于后续请求关联)
JSON 提取器 1. 填写引用名称;2. 配置 JSON 路径表达式(如$.data.token);3. 填写默认值 从 JSON 响应中提取数据(比正则更简洁,适合 RESTful API)
边界提取器 1. 填写左边界(如"token":")、右边界(如");2. 配置引用名称 简单文本提取(无需正则,适合有明确边界的响应数据)
调试后置处理器 1. 勾选需要输出的信息(如响应数据、变量);2. 运行后查看日志 脚本调试(验证响应数据是否正确,定位提取器配置问题)

四、定时器(Timer):控制请求发送时机 / 频率

元件名称 使用方法 使用场景
固定定时器 填写延迟时间(毫秒,如1000=1 秒) 固定请求间隔(如每隔 1 秒发送一次请求,模拟平稳用户行为)
高斯随机定时器 填写偏差值和固定延迟(如偏差500、固定1000,实际延迟 1000±500 毫秒) 模拟真实用户随机操作间隔(比固定定时器更贴近实际场景)
同步定时器(Synchronizing Timer) 1. 填写 "模拟用户数"(如100);2. 填写 "超时时间"(如5000);3. 嵌套取样器 模拟并发请求(等待指定数量用户聚集后同时发送请求,压测接口并发能力)
常数吞吐量定时器 1. 填写目标吞吐量(请求 / 分钟,如600=10 请求 / 秒);2. 选择计算方式(基于线程 / 全局) 控制整体 QPS(性能测试中稳定压测指定吞吐量,验证接口承载能力)
思考时间定时器 填写思考时间(毫秒,如3000) 模拟用户操作间隙(如用户查看页面后 3 秒再点击下一个按钮)

五、配置元件(Config Element):全局配置共享

元件名称 使用方法 使用场景
HTTP 请求默认值 1. 填写默认服务器 IP、端口、路径前缀;2. 后续 HTTP 请求可继承这些配置(无需重复填写) 批量 HTTP 请求配置(如所有请求指向同一服务器,统一维护 IP 和端口)
用户定义的变量 同「前置处理器」中的该元件(全局参数配置,可被所有组件引用) 全局参数统一管理(如环境变量、固定参数)
CSV 数据文件设置 同「前置处理器」中的该元件(批量参数化数据源配置) 多用户 / 多数据场景(如批量登录、批量提交不同表单数据)
连接池配置 1. 配置最大连接数、超时时间;2. 关联 HTTP 请求或 JDBC 请求 优化连接性能(减少频繁创建 / 关闭连接,提升压测效率)
代理服务器配置 1. 填写代理 IP、端口(如 Fiddler 代理127.0.0.1:8888);2. 用于录制或转发请求 跨环境测试(通过代理转发请求到目标环境)、录制加密 / 复杂请求

六、监听器(Listener):结果收集与分析

元件名称 使用方法 使用场景
查看结果树 1. 选择结果展示格式(Text/JSON/HTML 等);2. 运行后查看请求 / 响应详情、状态码 脚本调试(验证请求是否正确、响应是否符合预期)、问题定位(如报错响应分析)
聚合报告 运行后自动统计:样本数、平均值、中位数、90% 响应时间、错误率、吞吐量 性能分析(核心指标查看,判断接口性能是否达标)
响应时间图 运行后生成响应时间趋势曲线(X 轴时间,Y 轴响应时间) 性能波动分析(查看不同时间点的响应时间变化,定位峰值瓶颈)
事务吞吐量图 展示事务的吞吐量趋势(请求 / 秒) 事务性能监控(验证事务吞吐量是否稳定,是否满足业务需求)
断言结果 关联「响应断言」等断言元件,运行后查看断言是否通过 结果验证(确认响应数据、状态码、响应时间是否符合预期)
简单数据写入器 配置输出字段(如时间戳、响应时间、状态码);选择输出文件路径(CSV 格式) 结果持久化(保存测试数据,用于后续二次分析或报表生成)
相关推荐
linweidong2 天前
别让老板等:千人并发下的实时大屏极致性能优化实录
jmeter·clickhouse·性能优化·sentinel·doris·物化视图·离线数仓
我会一直在的4 天前
Jmeter的基础使用
功能测试·jmeter·压力测试
choke2334 天前
软件性能测试实战:从基础概念到 JMeter 全组件使用
jmeter
网络安全-杰克5 天前
Jmeter压力测试工具安装与使用
自动化测试·软件测试·测试工具·jmeter·职场和发展
少云清7 天前
【金融项目实战】6_接口测试 _Jmeter自动化脚本实现(重点)
jmeter·自动化·金融项目实战
少云清7 天前
【金融项目实战】5_接口测试 _Jmeter功能脚本实现
jmeter·金融项目实战
卖个几把萌8 天前
【11】JMeter在GUI页面修改语言后右上角不显示线程数和持续时间问题解决
测试工具·jmeter
张永清-老清8 天前
每周读书与学习->JMeter性能测试脚本编写实战(四)-利用JMeter对MySQL数据库查询进行性能测试
学习·jmeter·性能调优·jmeter性能测试·性能分析·每周读书与学习
Jul1en_8 天前
【性能测试工具】JMeter下载安装、编辑环境变量和中文配置
测试工具·jmeter