Jmeter json路径提取器 - 如何从提取的值中删除[]

yuk*_*kti 4 json jmeter

来自

token_id="token_id":"82903430-f9b3-4f4b-9efa-ee1b991cb735"
Run Code Online (Sandbox Code Playgroud)

我正在token_id使用路径提取器进行提取$..token_id.

然后在下一个帖子请求中使用该变量,但它在调用中显示额外的括号

"token_id":["82903430-f9b3-4f4b-9efa-ee1b991cb735"]
Run Code Online (Sandbox Code Playgroud)

Dmi*_*i T 6

我相信,这是由引入的变化引起其中插件版本1.3.0 JSONPath提取支持返回多个匹配值的引入.

您可以使用以下3种方法之一来解决它:

  1. 您可以将JSONPath表达式更改为

    $..token_id[0]
    
    Run Code Online (Sandbox Code Playgroud)

    因此,您不必手动删除括号和引号

  2. 我相信你有类似的东西:

    getToken=["82903430-f9b3-4f4b-9efa-ee1b991cb735"]
    getToken_1=82903430-f9b3-4f4b-9efa-ee1b991cb735
    getToken_matchNr=1
    
    Run Code Online (Sandbox Code Playgroud)

    所以只是使用${getToken_1}应该像魅力一样工作

  3. 您可以使用Beanshell PostProcessor删除括号和引号.在Extractor 之后添加它JSONPath并将以下代码放入"Script"区域:

    String getToken = vars.get("getToken");
    getToken = getToken.replaceAll("\\[\"(.*?)\"\\]", "$1");
    vars.put("getToken",getToken);
    
    Run Code Online (Sandbox Code Playgroud)