如何在JMeter中从JSON响应随机提取名称及其对应ID
JMeter随机提取chairs节点下id和name的操作方案
完全可以通过JSON提取器搭配内置功能实现,操作步骤如下:
步骤1:给接口添加JSON提取器
在返回目标JSON的HTTP请求节点上右键,依次选择「添加 → 后置处理器 → JSON提取器」,我们需要配置两个提取规则,分别提取所有chair的id和name:
提取所有id的配置:
- 引用名称:
chair_ids - JSON Path表达式:
$..chairs.*.id - 匹配数字:
-1(表示提取所有匹配结果,会自动生成chair_ids_1、chair_ids_2...格式的有序变量,同时生成chair_ids_matchNr变量存储匹配到的总数量) - 其他字段保持默认即可。
提取所有name的配置:
你可以在同一个JSON提取器里新增提取规则,也可以单独再添加一个JSON提取器,配置如下:
- 引用名称:
chair_names - JSON Path表达式:
$..chairs.*.name - 匹配数字:
-1 - 其他字段保持默认即可。
步骤2:生成随机对应的id和name
为了保证随机取到的id和name属于同一个chair对象,推荐在JSON提取器之后添加一个「JSR223后置处理器」,填入以下代码:
// 生成1到总数量之间的随机索引 def randomIndex = new Random().nextInt(vars.get("chair_ids_matchNr") as int) + 1 // 把对应索引的id和name存入变量 vars.put("random_chair_id", vars.get("chair_ids_" + randomIndex)) vars.put("random_chair_name", vars.get("chair_names_" + randomIndex))
步骤3:直接调用变量
后续的测试步骤里,你可以直接通过${random_chair_id}调用随机取到的id,通过${random_chair_name}调用对应的name。
内容的提问来源于stack exchange,提问作者user17071521
相关产品推荐
相关产品推荐

