Jmeter json 路径提取器 - 如何从提取的值中删除 []
Jmeter json path extractor - How to Remove [ ] from extracted value
来自json
token_id="token_id":"82903430-f9b3-4f4b-9efa-ee1b991cb735"
我正在使用 json 路径提取器 $..token_id
提取 token_id
。
然后在下一个 post 请求中使用变量,但它在调用中显示额外的括号
"token_id":["82903430-f9b3-4f4b-9efa-ee1b991cb735"]
在JSON中,括号表示字符串、数字、布尔值、对象和数组的数组。
"token_id" 被解释为字符串数组。示例:
"token_id":["82903430-f9b3-4f4b-9efa-ee1b991cb735"]
确保将 "token_id" 更改为字符串。
我认为这是由 jmeterPlugins version 1.3.0 where JSONPath
extractor support of returning multiple matching values 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("\[\"(.*?)\"\]", "");
vars.put("getToken",getToken);
按照 Dmitri T 的建议使用 getToken_1
删除多余的括号,因为在 jmeterregex uses array to store the regexresponse.
${getToken_1}
是从上面的响应中删除 []
括号的正确正则表达式。
来自json
token_id="token_id":"82903430-f9b3-4f4b-9efa-ee1b991cb735"
我正在使用 json 路径提取器 $..token_id
提取 token_id
。
然后在下一个 post 请求中使用变量,但它在调用中显示额外的括号
"token_id":["82903430-f9b3-4f4b-9efa-ee1b991cb735"]
在JSON中,括号表示字符串、数字、布尔值、对象和数组的数组。
"token_id" 被解释为字符串数组。示例:
"token_id":["82903430-f9b3-4f4b-9efa-ee1b991cb735"]
确保将 "token_id" 更改为字符串。
我认为这是由 jmeterPlugins version 1.3.0 where JSONPath
extractor support of returning multiple matching values 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("\[\"(.*?)\"\]", ""); vars.put("getToken",getToken);
按照 Dmitri T 的建议使用 getToken_1
删除多余的括号,因为在 jmeterregex uses array to store the regexresponse.
${getToken_1}
是从上面的响应中删除 []
括号的正确正则表达式。