You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在JMeter的JSON Extractor中限制选取id数量并随机提取指定个数

实现步骤

1 配置JSON Extractor

保持你当前的JSONPath表达式不变:$..MetaInputList.*.DocumentElementMetaInputId,额外调整两个配置:

  • 「匹配数字」字段填写 -1:作用是提取所有匹配的结果,会自动生成documentElementMetaInputId_1、documentElementMetaInputId_2……格式的变量,同时生成documentElementMetaInputId_matchNr变量存储匹配到的id总数量
  • 变量名称使用你当前设置的documentElementMetaInputId即可

2 添加JSR223后置处理器生成随机id列表

在JSON Extractor所在请求的下级添加JSR223后置处理器,把以下Groovy代码粘贴到脚本区域:

// 自定义要随机提取的id数量,可根据需求改为5或其他值
def expectCount = 4
// 获取提取到的id总数量
def totalCount = vars.get("documentElementMetaInputId_matchNr") as int
// 处理总数量不足的边界情况,直接取全部id
def pickCount = Math.min(expectCount, totalCount)
// 生成1~总数量的索引列表并打乱顺序
def indexRange = (1..totalCount).toList()
Collections.shuffle(indexRange)
// 按打乱后的索引取对应id
def randomIds = []
for (i in 0..<pickCount) {
    randomIds.add(vars.get("documentElementMetaInputId_" + indexRange[i]) as int)
}
// 转换为JSON数组格式存入变量,可直接在后续请求中调用
vars.put("randomMetaInputIdList", new groovy.json.JsonBuilder(randomIds).toString())

3 后续请求参数直接调用变量

你需要传入id列表的请求体直接填写如下内容即可:

{
  "documentElementMetaInputIdList": ${randomMetaInputIdList}
}

内容的提问来源于stack exchange,提问作者Rasik

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 14:54:04