Java 如何解析和保存JSR223Sampler日志中返回的响应

Java 如何解析和保存JSR223Sampler日志中返回的响应,java,groovy,jmeter,jsr223,Java,Groovy,Jmeter,Jsr223,我需要使用Groovy作为语言,使用JSR223采样器进行HTTP调用 在进行api调用时,我收到了一个响应,并在日志查看器中看到 现在,我想解析日志中的返回值,并将其保存到vaiable,以供后续使用 下面是返回的响应示例 2018-05-31 15:38:09,291 INFO o.a.j.p.j.s.JSR223Sampler: {"access_token":"acdaraffafasvtokenhgsvjdk","token_type":"sample","expires_in":80

我需要使用Groovy作为语言,使用JSR223采样器进行HTTP调用

在进行api调用时,我收到了一个响应,并在日志查看器中看到

现在,我想解析日志中的返回值,并将其保存到vaiable,以供后续使用

下面是返回的响应示例

2018-05-31 15:38:09,291 INFO o.a.j.p.j.s.JSR223Sampler: {"access_token":"acdaraffafasvtokenhgsvjdk","token_type":"sample","expires_in":80,"scope":"map.c map.r","ext_attr":{"enhancer":"aqa","zdn":"map"},"jti":"jhfeayishdgvs77sdzxcfnkjdx"}
在这里,我想将“access_token”值'acdarafasvtokenhgsvjdk'解析为一个变量,以便后续使用

  • 右键单击采样器

  • 选择后处理器,然后选择正则表达式提取器

  • 选择要检查的字段,即正文
  • 在“引用名称”下,为其指定所需的变量名称(即 accessToken)
  • 在正则表达式中输入类似“access_token”:“(\w+)”
  • 在匹配编号中输入1
  • 在http调用之后向测试添加调试采样器
  • 重新运行测试并检查调试采样器以查看变量

  • 然后,您应该能够使用${accessToken}访问变量在测试中的任何其他地方..

    我使用的是JSR223采样器而不是HTTP采样器。解决方案在JSR223采样器上不起作用吗?您尝试过吗?如果无法使用,那么您可以在代码中应用正则表达式,然后使用vars.put添加变量以供进一步使用..如果您使用JSR223后处理器和提供的正则表达式并将Java放入其中它应该会起作用。再看一看数据,它是有效的JSON,即“{”访问令牌“:“acdarafasvtokenhgsvjdk”,“令牌类型“:“sample”,“expires_in”:80,“scope:“map.cmap.r”,“ext_attr:{”增强器“:“aqa”,“zdn:“map”},“jti:“jhfeishdgvs77sdzcfnkjdx”}”,因此您可以使用JsonSlurper(参考[链接])