提问人:Raxon 提问时间:11/9/2022 更新时间:11/9/2022 访问量:103
如何在 Jmeter 中为 API 请求正文创建自定义请求
How to create custom request in Jmeter for API request body
问:
我需要随机生成多个订单(1-10),每个订单随机包含产品(1-20)。 项目是从 csv 文件发送的。如何在 Jmeter 中自定义请求正文以实现此目的?
{
"multipleOrders": [
{
"orderId": "12345678",
"products": [
{
"productId": "1",
"value": [
{
"item":"1"
}
]
},
{
"productId": "2",
"value": [
{
"item":"2"
}
]
}
]
},
{
"orderId": "98765432",
"products": [
{
"productId": "4",
"value": [
{
"item":"4"
}
]
}
]
}
]
}
答:
0赞
Dmitri T
11/9/2022
#1
我不认为发送随机数量的项目是您应该真正做的,因为测试需要是可重复的,并且鉴于每个请求都假定随机,因此参数数量不同,您将无法再次重新运行相同的测试以解决问题。
无论什么。
如果不查看 CSV 文件中“项目”的组织方式,就不可能提供全面的答案。
您可以在 Groovy 中读取文件,如下所示:
def lines = new File('/path/to/your/file.csv').readLines()
你可以使用 JsonBuilder 类在 Groovy 中创建 JSON
def payload = [:]
def multipleOrders = []
1.upto(org.apache.commons.lang3.RandomUtils.nextInt(1, 20), index -> {
def order = [:]
def lineFromCsv = lines.get(index as int)
order.put('orderId', lineFromCsv.split(',')[0])
//etc.
multipleOrders.add(order)
})
payload.put('multipleOrders', multipleOrders)
vars.put('payload', new groovy.json.JsonBuilder(payload).toPrettyString())
修改上面的代码片段以符合您的要求。
更多信息:
评论