在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:取值失败时展示的内容,一般为空即可
- 使用提取的数据:一旦配置好了提取器,就可以在任何需要的地方引用它。例如,可以在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表达式来提取name
和city
字段:
$.name
$.address.city
写在最后,JMeter中的JSON提取器是一个强大的工具,用于从JSON响应中提取数据。通过使用JSON Path表达式,我们可以精确地定位和提取所需的数据,在性能测试中的参数化,尤其是获取token等时,非常有用。