JSON提取器

在JMeter中,JSON提取器是一个强大的插件,用于从返回的JSON响应报文中提取数据。

1. 使用步骤:

  • 添加JSON Extractor:在JMeter的Sampler(例如HTTP Request)下,右键点击 -> 添加 -> 后置处理器-> JSON 提取器。在这里插入图片描述

  • 配置提取器:需要配置的内容如下:
    在这里插入图片描述

    • 名称:Json提取器显示的名称,可以自定义
    • Apply to :应用范围,一般默认为Main sample only,可根据实际使用需求选择
      • Main sample and sub-samples:作用于主请求和子请求 Main sample
      • List item only:仅作用于主请求
      • List item Sub-samples only:仅作用于子请求 JMeter
      • Variable:作用于JMeter变量(输入框内可输入JMeter的变量名称);用法可用于提取正则表达式提取器中的值
  • Names of Created variables:作为引用的变量名称,多个变量名通过分号;隔开,在其他地方引用此提取的数据时会用到这个名称。
  • JSON Path Expression:这是用来定位和提取JSON数据的表达式。可以使用JSON Path语言来编写这个表达式。详见下方举例
  • Match No.:这个参数决定了提取的数据的数量。0代表随机,-1提取所有的匹配项;1提取第一个匹配项。
  • Compute concatenation var(suffix_ALL):保存匹配到的所有数值,一般为空即可
  • Default Value:取值失败时展示的内容,一般为空即可
  1. 使用提取的数据:一旦配置好了提取器,就可以在任何需要的地方引用它。例如,可以在HTTP Request的Body Data中使用${__jsonExtract()}来引用提取的数据。

2. JSON Path表达式:JSON Path是一种查询JSON文档的语言,类似于XML的XPath。通过JSON Path表达式,可以定位到JSON数据中的特定部分并进行提取。例如,对于以下的JSON数据:

{
  "name": "John",
  "age": 30,
  "address": {
    "street": "123 Main St",
    "city": "Anytown"
  }
}

可以使用以下的JSON Path表达式来提取namecity字段:

$.name
$.address.city

写在最后,JMeter中的JSON提取器是一个强大的工具,用于从JSON响应中提取数据。通过使用JSON Path表达式,我们可以精确地定位和提取所需的数据,在性能测试中的参数化,尤其是获取token等时,非常有用。

### 如何使用 JMeter JSON 提取器 #### 添加并配置 JSON 提取器 为了在 Apache JMeter 中使用 JSON 提取器,需先确认已安装 `Jmeter-plugins-manager` 插件。接着,在插件管理界面中找到并安装 `JSON/YAML Plugins (deprecated)` 或者更新版本的相关组件[^1]。 新建测试计划中的线程组之后,添加后置处理器下的 **JSON Extractor** 组件(默认即存在),无需额外加载特定插件。 #### 设置 JSON 提取器属性 打开 JSON Extractor 后,会看到如下几个重要字段: - **名称**: 可自定义描述该提取器功能的名字。 - **适用范围**: 选择应用此提取器的目标取样器。 - **变量名前缀**: 定义用于存储提取结果的变量前缀。 - **JSON 路径表达式**: 输入遵循 JSONPath 规范的路径表达式以定位所需数据项[^2]。 对于简单的 JSON 数据结构,可以直接编写如 `$..name` 这样的通用查询语句;而对于更复杂的嵌套对象,则可能需要用到条件过滤等功能强大的语法。 ```json { "store": { "book": [ {"category": "fiction", "title": "Harry Potter"}, {"category": "non-fiction", "title": "Sapiens"} ] } } ``` 假设上述是一个响应体的一部分,如果想要从中抽取所有书籍标题的话,那么可以在 **JSON 路径表达式** 字段里填入 `.store.book[*].title` 来匹配这些值。 #### 查看提取效果 完成以上步骤后,可以通过向测试方案中加入 Debug Sampler 和 View Results Tree Listener 的方式来验证 JSON 提取器的工作情况。运行脚本时,Listener 将展示由 JSON Extracter 获取的具体数值[^3]。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值