如何通过JMeter发送大量JSON格式的POST请求?

irtuqstp  于 2022-11-09  发布在  其他
关注(0)|答案(1)|浏览(304)

我有一个很大的json请求文件,需要通过POST发送到API,大约有4000个不同的请求。我尝试了CSV方法,并在代码中引用JSON_FILE,但由于超时错误,它不起作用,我认为4000个文件对这个方法来说太多了
我 * 可以 * 创建4000个线程组,每个线程组都有自己的json请求,但这将是一项巨大的手工劳动
是否有任何方法可以使此过程自动化?
json基本上如下所示:

{
    "u_id": "00",
    "u_operation": "Address",
    "u_service": "Fiber",
    "u_characteristic": 2,
    "u_name": "Address #1"
},
{
    "u_id": "01",
    "u_operation": "Address",
    "u_service": "TV",
    "u_characteristic": 2,
    "u_name": "Address #2"
}

一直到4000

bvhaajcl

bvhaajcl1#

API端点的预期用途是什么?如果它应该一次处理4000个文件,但它没有-这听起来像是一个bug或bottleneck,你需要报告它。
如果您有一个包含4000个对象的大文件,如下所示:

{
  "u_id": "00",
  "u_operation": "Address",
  "u_service": "Fiber",
  "u_characteristic": 2,
  "u_name": "Address #1"
}

并且希望以任意数量的用户/迭代逐个发送它们-您可以使用以下技巧
1.将setUp线程组添加到测试计划
1.将JSR 223采样器添加到setUp线程组
1.将以下代码放入“Script”区域:

def entries = new groovy.json.JsonSlurper().parse(new File('/path/to/your/large/file.json'))

entries.eachWithIndex { entry, index ->
    props.put('entry_' + (index + 1), new groovy.json.JsonBuilder(entry).toPrettyString())
}

它将创建4000个JMeter属性,如entry_1entry_2,每个属性保存大文件中的一个条目:

然后,在主线程组中,您将能够使用__P()和__counter()函数组合,以便每个用户在每次迭代中获取下一个“条目”,如下所示:

${__P(entry_${__counter(FALSE,)},)}

相关问题