【问题标题】:How to extract values out of a array using JSON Extractor in jmeter?如何使用 jmeter 中的 JSON Extractor 从数组中提取值?
【发布时间】:2019-04-22 14:24:45
【问题描述】:

我想提取下面的 json 并相应地使用值。

I/p JSON:-

{
  "status": "Success",
  "message": "User created successfully",
  "id": [
    131188,
    131191
  ]
}

这里我想要 id 字段的值。我使用 JSON Extractor 并将表达式作为 $.id 给我 [131188,131191] 在一个变量中。现在我想使用这个数组中的单个值,即 131188 和 131191。 知道怎么做吗?

更新:我不想使用 2 个 JSON 提取器。

【问题讨论】:

  • 见这个:testingexcellence.com/…。这可能会有所帮助。
  • 使用 '$.id[0'] 表示 131188 和 '$.id[1]' 表示 131191。这个站点非常方便jsonpathfinder.com
  • 为此我必须使用 2 jsonextracter 我试图避免。

标签: arrays jmeter json-extract


【解决方案1】:

只需将 [*] 添加到您的 JSON 路径表达式中,如下所示

$.id[*]

这将为每个值创建一个 jmeter 变量。请注意,您应该在匹配数字字段中使用-1

【讨论】:

    【解决方案2】:

    您可以使用带有 groovy 语言的 json 提取器和“JSR223 PostProcessor”。一个例子:

       import groovy.json.JsonSlurper
    
       //String jsonString = vars.get("jsonFromExtractor")
    
       String jsonString = '''
       {
         "status": "Success",
         "message": "User created successfully",
         "id": [
           131188,
           131191
         ]
       }
       '''
       log.info("jsonString:" + jsonString)
    
       def json = new JsonSlurper().parseText( jsonString )
    
       String idValue1 = json.get("id").get(0)
       String idValue2 = json.get("id").get(1)
       log.info("idValue1:" + idValue1)
       log.info("idValue2:" + idValue2)
    

    希望对你有帮助

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多