Jmeter如何将提取的数组变量转为带括号的字符串作为API参数
JMeter将提取的JSON数组转换为括号包裹的字符串方法
你提取到的boardIDs_ALL已经是完整的数组字符串格式,只需要替换首尾的方括号为圆括号即可,两种实现方式如下:
方法1:使用JSR223元件(推荐,性能最优)
在需要调用参数的接口前添加 JSR223 PreProcessor,选择语言为groovy,填入以下代码:
// 获取提取到的数组字符串 def boardArrayStr = vars.get("boardIDs_ALL") // 替换首尾方括号为圆括号 def formattedStr = "(" + boardArrayStr.substring(1, boardArrayStr.length() - 1) + ")" // 存入变量供后续接口调用 vars.put("formattedBoardIds", formattedStr)
后续接口参数直接使用即可:Parameters.condition=board_id in ${formattedBoardIds} and closedFlag = false
方法2:直接使用__groovy函数(无需新增元件)
可以直接在接口参数值里通过JMeter内置函数完成转换,无需额外添加元件,注意函数内的逗号需要加反斜杠转义:
Parameters.condition=board_id in ${__groovy("(" + vars.get("boardIDs_ALL").substring(1\, vars.get("boardIDs_ALL").length() -1) + "),)} and closedFlag = false
注意事项
- 若存在数组为空的场景,可以增加判空逻辑避免
substring报错,示例判断逻辑:def boardArrayStr = vars.get("boardIDs_ALL") def formattedStr = "()" if (boardArrayStr != null && boardArrayStr.length() > 2) { formattedStr = "(" + boardArrayStr.substring(1, boardArrayStr.length() - 1) + ")" } vars.put("formattedBoardIds", formattedStr) - 优先选择groovy作为脚本语言,性能远高于BeanShell。
内容的提问来源于stack exchange,提问作者Sonal
相关产品推荐
相关产品推荐

