我看过几篇与此相关的文章,但找不到与我的情况相符的文章,因此将其发布为新问题。
我的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,匹配号为-1
,但它会选择所有URL,但会匹配所有随机值。 而且,我能够为每个控制器使用一个带有一个变量的控制器,以从JSON中提取内容,并成功使用BeanShell后处理器将其写入CSV,但是在这种情况下,该方法不起作用。任何指针都会有所帮助。 我确实检查了JSR223 Post处理器的答案,但是并没有解决这个问题。
预先感谢
答案 0 :(得分:2)
将以下代码放入“脚本”区域:
new groovy.json.JsonSlurper().parse(prev.getResponseData()).myshop.each { entry ->
new File('entries.csv') << entry.get('url') << ',' << entry.get('hits') << System.getProperty('line.separator')
}
就是这样,一旦运行测试entries.csv
,文件就会在JMeter的“ bin”文件夹中生成,其中包含所需格式的信息。
参考文献:
还要注意,如果一次最多执行1个线程(即确保使用Critical Section Controller),则该方法将可靠地工作。否则,请考虑切换到Sample Variables和Flexible File Writer