【问题标题】:How to extract values from json in jmeter when the keys are unkown?当键未知时,如何从jmeter中的json中提取值?
【发布时间】:2018-04-27 04:20:39
【问题描述】:

我有一个 json 响应, { 'sadasd123242' : 'asdadada122dfsfs', 'dadsadaskljk' : 'adasdasdasdsadds' } 我想使用 JSON 提取器从 jmeter 测试中的响应中提取键。我无法做到这一点,因为我不知道响应中的关键。如何获得钥匙?

【问题讨论】:

    标签: json jmeter


    【解决方案1】:

    假设您的响应格式如下:

    {
      "data": {
        "assets": {
          "sadsad12dwqqwe": "asda1212312",
          "asdasd1213123": "asdas2131231"
        }
      }
    }
    

    您可以使用JSR223 PostProcessor 和以下代码提取键名:

    new groovy.json.JsonSlurper().parse(prev.getResponseData()).data.assets.eachWithIndex{ def node, int idx ->
        log.info('Key ' + idx + '=' + node.getKey())
        vars.put('key_' + idx, node.getKey())
    }
    

    它将键名打印到 jmeter.log 文件中并创建 JMeter 变量,例如:

    - `${key_1}`
    - `${key_2}`
    - etc.
    

    持有所需的“关键”值。

    演示:

    参考资料:

    【讨论】:

      【解决方案2】:

      将第一个值视为动态的键,第二个值则必须获取。

      在这种情况下,您可以通过定义左右边界来使用“边界提取器”后处理器,如下图所示。

      检查以下边界表达式的测试以获得所需的结果:-

      希望对您有所帮助。

      【讨论】:

      • 我的响应格式是 {data:{"assets":{'sadsad12dwqqwe':'asda1212312','asdasd1213123':'asdas2131231''}}} 我该如何使用边界提取器呢?
      • 我使用了相同的示例代码来获取值。检查快照,我使用了边界并显示了结果。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-08-26
      • 1970-01-01
      • 1970-01-01
      • 2021-11-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多