如何在Jmeter中为API请求体创建自定义请求



我需要随机生成多个订单(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"

}
]
}
]
}
]
}

我不认为发送随机数量的项目是你应该真正做的,因为测试需要是可重复的,并且给定每个请求都会假设随机的,因此不同数量的参数,你将无法再次重新运行相同的测试,以解决问题。

如果没有看到"项目"是如何进行的,是不可能给出一个全面的答案的。在您的CSV文件中组织。

你可以像这样在Groovy中读取这个文件:

def lines = new File('/path/to/your/file.csv').readLines()

你可以在Groovy中使用JsonBuilder类

创建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())

修改上面的代码片段以符合您的要求。

更多信息:

  • Apache Groovy: Groovy是用来做什么的?
  • Apache Groovy -解析和生成JSON

最新更新