Jmeter 如何解析以{}开头的JSON响应&&;英寸

Jmeter 如何解析以{}开头的JSON响应&&;英寸,jmeter,Jmeter,JMeter提供了一个后处理器JSON提取器来提取响应中的JSON元素 然而,我的测试站点正在返回JSON,JSON字符串的开头带有{}&&使得JMeter JSON提取器失败 我该如何解决这个问题?可能有很多解决方案 解决方案1 使用删除前缀并将结果指定给变量 使用JSON提取器计算变量 解决方案2 使用JSR223后处理器提取值只需从响应中删除前4个符号,并将响应替换为“净化”值 作为请求的子级添加,该请求返回开头带有{}&字符的JSON 将以下代码放入“脚本”区域: 确保将JSON提

JMeter提供了一个后处理器JSON提取器来提取响应中的JSON元素

然而,我的测试站点正在返回JSON,JSON字符串的开头带有{}&&使得JMeter JSON提取器失败


我该如何解决这个问题?

可能有很多解决方案

解决方案1 使用删除前缀并将结果指定给变量

使用JSON提取器计算变量

解决方案2
使用JSR223后处理器提取值

只需从响应中删除前4个符号,并将响应替换为“净化”值

  • 作为请求的子级添加,该请求返回开头带有
    {}&
    字符的JSON

  • 将以下代码放入“脚本”区域:

  • 确保将JSON提取器放在JSR223后处理器之后

  • 测试计划结构:


    在上面的代码片段
    prev
    代表previous中,有关所有可用函数的描述以及有关可用于

    I创建的JSR223后处理器的其他快捷方式的更多信息,请参阅JavaDoc,可以看到字符串进入变量。我无法从JSR233断言脚本打印它,例如log.info(“aa:+vars.get(“aa”));另外,如果我需要变量是线程本地的,我能做什么?
    def oldResponse = prev.getResponseDataAsString()
    def newResponse = oldResponse.drop(4)
    prev.setResponseData(newResponse, 'UTF-8')