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

JMeter-从JSON响应中提取多个变量并将其保存在CSV文件中,jmeter,jsr223,post-processor,json-extract,Jmeter,Jsr223,Post Processor,Json Extract,我已经看过几篇与此相关的帖子,但我找不到与我的场景非常匹配的,因此将其作为一个新问题发布 我有一个下面的JSON响应 { "myshop": [ { "url": "test1", "hits": 1000 }, { "url": "test2", "hits": 2000 }, { "url": "test3", "hits": 3000 } ] } 我想提取

我已经看过几篇与此相关的帖子,但我找不到与我的场景非常匹配的,因此将其作为一个新问题发布

我有一个下面的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;$。。匹配号为-1的命中率

但它会选择所有的URL,但不会选择任何随机的点击值。 此外,我还能够使用一个for-each控制器和一个变量从JSON中提取,并使用BeanShell后处理器成功地将其写入CSV,但在这种情况下,同样的方法不起作用。任何指示都会有帮助。 我确实用JSR223后处理器检查了一些答案,但这并没有涵盖这个问题场景

提前谢谢

  • 作为返回上述JSON的请求的子级添加
  • 将以下代码放入“脚本”区域:

    newgroovy.json.JsonSlurper().parse(prev.getResponseData()).myshop.each{entry->
    
    新文件('entries.csv')非常感谢,Dmitri,工作起来很有魅力。有没有办法再从以前的HTTP Get请求中提取一个变量附加到myshop。每个条目?基本上,第一个HTTP Get请求用一个标识符响应,这里提到的第二个HTTP Get请求根据这个标识符生成响应,实际上它包含在HTTP GET方法中,您可以使用
    vars
    速记来访问JMeter变量,它代表类实例,如
    new File('entries.csv')
    
    new groovy.json.JsonSlurper().parse(prev.getResponseData()).myshop.each { entry ->
        new File('entries.csv') << entry.get('url') << ',' << entry.get('hits') << System.getProperty('line.separator')
    }