来自json
token_id="token_id":"82903430-f9b3-4f4b-9efa-ee1b991cb735"
我使用json路径提取器token_id
提取$..token_id
。
然后在下一个帖子请求中使用该变量,但它在调用中显示了额外的括号
"token_id":["82903430-f9b3-4f4b-9efa-ee1b991cb735"]
答案 0 :(得分:6)
我相信它是由jmeter插件版本1.3.0中引入的更改引起的,其中JSONPath
提取器支持返回多个匹配值was introduced。
您可以使用以下3种方法之一来解决这个问题:
您可以将JSONPath
表达式更改为
$..token_id[0]
因此,您不必手动删除括号和引号
我相信你有类似的东西:
getToken=["82903430-f9b3-4f4b-9efa-ee1b991cb735"]
getToken_1=82903430-f9b3-4f4b-9efa-ee1b991cb735
getToken_matchNr=1
所以只使用${getToken_1}
应该像魅力一样工作
您可以使用Beanshell PostProcessor删除括号和引号。在 JSONPath
提取程序后添加,并将以下代码放入"Script"
区域:
String getToken = vars.get("getToken");
getToken = getToken.replaceAll("\\[\"(.*?)\"\\]", "$1");
vars.put("getToken",getToken);
答案 1 :(得分:0)
在JSON中,括号表示字符串,数字,布尔值,对象和数组的数组。
“token_id”被解释为字符串数组。例如:
"token_id":["82903430-f9b3-4f4b-9efa-ee1b991cb735"]
确保将“token_id”更改为字符串。
答案 2 :(得分:0)