【问题标题】:How to parse JSON response prepended with {} && in Jmeter如何在 Jmeter 中解析以 {} && 开头的 JSON 响应
【发布时间】:2020-10-01 19:41:43
【问题描述】:

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

但是,我的测试站点在 JSON 字符串的开头返回带有 {}&& 的 JSON,这导致 JMeter JSON 提取器失败。

我该如何解决?

【问题讨论】:

    标签: jmeter


    【解决方案1】:

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

    1. JSR223 PostProcessor 添加为请求的子项,该请求返回以{}&& 开头的JSON 字符

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

      def oldResponse = prev.getResponseDataAsString()
      def newResponse = oldResponse.drop(4)
      prev.setResponseData(newResponse, 'UTF-8')
      
    3. 确保将您的 JSON 提取器置于 JSR223 后处理器

    测试计划结构:

    在上面的代码中,sn-p prev 代表 previous SampleResult,请参阅 JavaDoc 了解所有可用的功能描述,Top 8 JMeter Java Classes You Should Be Using with Groovy 了解有关其他可用JMeter API 快捷方式的更多信息对于JSR223 Test Elements

    【讨论】:

      【解决方案2】:

      可能有很多解决方案。

      解决方案 1 使用JMeter Custom Function StrReplace 删除前缀并将结果分配给变量。

      使用 JSON Extractor 评估变量

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

      【讨论】:

      • 我创建了 JSR223 PostProcessor 并且可以看到字符串进入了变量。我无法从 JSR233 断言脚本打印它,例如 log.info ("aa:"+vars.get("aa"));另外,如果我需要变量是线程本地的,我该怎么办?
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-11-25
      • 2012-09-08
      • 1970-01-01
      • 2021-12-02
      • 2019-10-25
      • 2012-03-27
      相关资源
      最近更新 更多