样本json有效负载:
'{
"Stub1": "XXXXX",
"Stub2": "XXXXX-3047-4ed3-b73b-83fbcc0c2aa9",
"Code": "CodeX",
"people": [
{
"ID": "XXXXX-6425-EA11-A94A-A08CFDCA6C02"
"customer": {
"Id": 173,
"Account": 275,
"AFile": "tel"
},
"products": [
{
"product": 1,
"type": "A",
"stub1": "XXXXX-42E1-4A13-8190-20C2DE39C0A5",
"Stub2": "XXXXX-FC4F-41AB-92E7-A408E7F4C632",
"stub3": "XXXXX-A2B4-4ADF-96C5-8F3CDCF5821D",
"Stub4": "XXXXX-1948-4B3C-987F-B5EC4D6C2824"
},
{
"product": 2,
"type": "B",
"stub1": "XXXXX-42E1-4A13-8190-20C2DE39C0A5",
"Stub2": "XXXXX-FC4F-41AB-92E7-A408E7F4C632",
"stub3": "XXXXX-A2B4-4ADF-96C5-8F3CDCF5821D",
"Stub4": "XXXXX-1948-4B3C-987F-B5EC4D6C2824"
}
]
}
]
}'
我正在进行POST通话。有什么办法可以在加特林中将多个json文件作为有效内容提供。我在这里使用body(RawFileBody("file.json")) as json
。
这对于单个json文件而言效果很好。我想检查多个json文件的响应。有什么方法可以对此进行参数化,并获得针对多个json文件的响应。
据我所知,有两种方法可以做到这一点。
使用JSON供稿器(https://gatling.io/docs/current/session/feeder#json-feeders)。这将需要将多个JSON文件放在一个文件中,而根元素是JSON数组。本质上,您将拥有的JSON对象放在单个JSON文件中的数组中)
创建一个Scala迭代器,并在其中使用您要使用的JSON文件的名称。例如:
val fileNames = Iterator("file1.json", "file2.json)
// and later, in your scenario
body(RawFileBody(fileNames.next())
注意此方法不能在用户之间使用,因为迭代器将为每个用户分别初始化。您必须使用repeat
或类似方法以单个用户身份发送多个文件。
您可以通过在Gatling的session
变量中将文件名保留为列表的方式来执行类似的操作,但是,您注入到场景中的不同用户之间仍然无法共享此会话。