JMeter- 从 JSON 响应中提取多个变量并将其保存在 CSV 文件中

JMeter- extract multiple variables from JSON response and save it in CSV file

我已经看到几个与此相关的 post,但我找不到与我的情况最接近的匹配项,因此 post 将其作为一个新问题。

我的回复如下JSON

{
  "myshop": [
    { 
      "url": "test1",
      "hits": 1000
    },
    { 
      "url": "test2",
      "hits": 2000
    },
    { 
      "url": "test3",
      "hits": 3000
    }
  ]
}

我想提取每个 URL 及其对应的命中,并将其存储在 CSV 文件中,在这种情况下,CSV 文件中有 3 行

test1,1000
test2,2000
test3,3000

但是没能成功。我的 JSON 提取器:

$..url;$..hits with match number as -1

但它会选择所有 URL,但会选择任何随机命中值。 此外,我能够为每个控制器使用一个变量,从 JSON 中提取,使用 BeanShell post 处理器成功将其写入 CSV,但同样不适用于这种情况。任何指针都会有所帮助。 我确实检查了 JSR223 Post 处理器的答案很少,但没有涵盖这个问题场景。

提前致谢

  1. 添加 JSR223 PostProcessor 作为上述 returns JSON
  2. 请求的子项
  3. 将以下代码放入"Script"区域:

    new groovy.json.JsonSlurper().parse(prev.getResponseData()).myshop.each { entry ->
        new File('entries.csv') << entry.get('url') << ',' << entry.get('hits') << System.getProperty('line.separator')
    }
    
  4. 就是这样,一旦你 运行 你的测试 entries.csv 文件将在 JMeter 的 "bin" 文件夹中生成,其中包含所需格式的信息。

参考文献:


另请注意,如果一次最多使用 1 个线程执行代码,该方法将可靠地工作(即确保使用 Critical Section Controller). Otherwise consider switching to Sample Variables and Flexible File Writer