如何使用JMeter的Beanshell后置处理器提取响应中的JSON数组对象
在JMeter中提取JSON数组的所有元素
你的JSON响应内容:
{
"error": false,
"data": {
"seq": [
"71128dfa",
"cbfda925",
"9d9bfa68",
"0ca86cf2",
"8bc3cfa7",
"4ea9aee3"
],
"request_id": "1db799cf-8f2b-4982-a23e-b2fb95b609b9"
}
}
按以下步骤提取seq数组的所有数据:
添加JSON Extractor:右键点击你的HTTP请求 -> 选择「后置处理器」-> 「JSON Extractor」
配置JSON Extractor参数:
- 引用名称:输入
seq_values(后续用这个前缀引用提取到的元素) - JSON Path表达式:填入
$.data.seq[*]($表示根节点,data.seq定位到目标数组,[*]匹配数组内所有元素) - 匹配数字:填
-1(表示提取所有匹配项,留空也会默认提取全部) - 默认值:可填
NOT_FOUND(提取失败时返回该值)
- 引用名称:输入
验证与使用提取结果:
添加Debug Sampler到测试计划,运行后在「查看结果树」中能看到生成的变量:seq_values_1=71128dfa、seq_values_2=cbfda925……seq_values_6=4ea9aee3。如果需要遍历这些值,添加ForEach Controller,设置「输入变量前缀」为seq_values,「输出变量名称」为current_seq,控制器内即可通过${current_seq}引用数组的每个元素。
内容的提问来源于stack exchange,提问作者manju k
相关产品推荐
相关产品推荐

