Jmeter中的Json提取器如何使用?

在JMeter中使用JSON提取器可以方便地从JSON格式的响应数据中提取特定字段的值。以下是详细步骤和示例:

  1. 添加JSON提取器
  • 右击目标HTTP请求 -> 选择 添加 -> 后置处理器 -> JSON提取器。
  1. 配置JSON提取器参数
  • 变量名称(Names of created variables):存储提取结果的变量名(如 userId)。
  • JSON路径表达式(JSON Path Expressions):用于定位JSON字段的路径(如 $.data.id)。
  • 匹配数字(Match No.):指定提取第几个匹配项。0 表示随机,1 表示第一个,-1 表示所有(生成变量名_1, 变量名_2等)。
  • 默认值(Default Values):提取失败时的默认值(如 NOT_FOUND)。
  1. JSON路径表达式示例
  • 简单提取:JSON响应:{"user": {"id": 100, "name": "John"}}路径:$.user.id → 提取 id 的值 100。
  • 提取数组元素:JSON响应:{"items": [{"id":1}, {"id":2}]}路径:$.items[0].id → 提取第一个元素的 id(值为 1)。
  • 提取所有匹配项(需设置 Match No. = -1):路径:$.items[*].id → 生成变量 id_1=1、id_2=2。
  • 条件过滤(部分版本支持):路径:$.users[?(@.status=='active')].id → 提取状态为 active 的用户ID。
  1. 使用提取的变量
  • 在后续请求中通过 {变量名} 引用,如 {userId}。
  • 若提取多个值,使用 {变量名_1}、{变量名_2} 等。
  1. 调试技巧
  • 调试取样器:添加 Debug Sampler 查看变量值。
  • JSON Path Tester:在 View Results Tree 中使用 JSON Path Tester 验证路径。
  • 响应数据检查:确保响应是合法的JSON格式,路径拼写正确。

常见问题

  • 提取失败:检查JSON路径是否正确,或使用在线工具(如 JSONPath Evaluator)验证。
  • 变量作用域:变量仅在当前线程组内有效,跨线程组需使用 __setProperty 传递。
  • 动态键名:若键名动态生成(如含时间戳),需用正则表达式或更灵活的插件(如 JSON JMESPath Extractor)。

通过以上步骤,你可以高效地从JSON响应中提取所需数据,用于参数化测试或断言验证。

相关推荐
se-tester2 天前
JMeter、Postman 和 SoapUI 在做接口测试上的优势和缺点
测试工具·jmeter·接口测试·postman·soapui
上海合宙LuatOS2 天前
LuatOS核心库API——【json 】json 生成和解析库
java·前端·网络·单片机·嵌入式硬件·物联网·json
敲代码的柯基2 天前
一篇文章理解tsconfig.json和vue.config.js
javascript·vue.js·json
万物得其道者成3 天前
前端大整数精度丢失:一次踩坑后的实战解决方案(`json-bigint`)
前端·json
feathered-feathered3 天前
测试实战【用例设计】自己写的项目+功能测试(1)
java·服务器·后端·功能测试·jmeter·单元测试·压力测试
Ai runner3 天前
Show call stack in perfetto from json input
java·前端·json
ID_180079054733 天前
淘宝商品详情API请求的全场景,带json数据参考
服务器·数据库·json
恒云客4 天前
python uv debug launch.json
数据库·python·json
wanderist.4 天前
从 TCP 到 JSON:一次 FastAPI + LLM 生产环境 “Unexpected end of JSON input” 的底层剖析
tcp/ip·json·fastapi
享誉霸王5 天前
15、告别混乱!Vue3复杂项目的规范搭建与基础库封装实战
前端·javascript·vue.js·前端框架·json·firefox·html5