Jmeter如何在循环中将JSON Extractor提取的值存入数组对象
JMeter循环提取响应ID存入统一数组操作步骤
步骤1:循环前初始化空数组
在循环控制器的外层前面添加一个JSR223 前置处理器,语言选择groovy,填入以下代码:
// 初始化空数组存入JMeter变量中 vars.putObject("categoryIdList", [])
步骤2:每次循环提取ID后追加到数组
在你的HTTP请求子节点下,JSON提取器的后面添加一个JSR223 后置处理器,语言选groovy,填入以下代码(假设你JSON提取器设置的变量名为category_id,可自行替换成你实际的变量名):
// 取出本次提取到的分类ID def currentCategoryId = vars.get("category_id") // 取出全局数组 def idList = vars.getObject("categoryIdList") // 把当前ID追加到数组 idList.add(currentCategoryId) // 回存更新后的数组 vars.putObject("categoryIdList", idList)
步骤3:循环结束后使用数组
循环结束后,任意位置都可以通过以下方式调用这个数组:
- 打印日志验证:
log.info("所有分类ID集合:{}", vars.getObject("categoryIdList")) - 转成逗号分隔的字符串使用:
def idStr = vars.getObject("categoryIdList").join(",") - 取指定下标的ID:
def thirdId = vars.getObject("categoryIdList").get(2)
注意事项
- 所有JSR223元件必须选择
groovy作为执行语言,不要使用BeanShell,避免性能问题和兼容性故障 - JSON提取器的匹配编号需设置为
1,仅提取每次响应的第一个目标ID - 如果需要存储数字类型的ID,追加时可以做类型转换:
idList.add(currentCategoryId as Long)
内容的提问来源于stack exchange,提问作者V M
相关产品推荐
相关产品推荐

