在加特林将多个json作为请求的有效负载传递

问题描述 投票:2回答:1

样本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文件的响应。

scala performance-testing load-testing gatling
1个回答
0
投票

据我所知,有两种方法可以做到这一点。

  1. 使用JSON供稿器(https://gatling.io/docs/current/session/feeder#json-feeders)。这将需要将多个JSON文件放在一个文件中,而根元素是JSON数组。本质上,您将拥有的JSON对象放在单个JSON文件中的数组中)

  2. 创建一个Scala迭代器,并在其中使用您要使用的JSON文件的名称。例如:

val fileNames = Iterator("file1.json", "file2.json)

// and later, in your scenario
body(RawFileBody(fileNames.next())

注意此方法不能在用户之间使用,因为迭代器将为每个用户分别初始化。您必须使用repeat或类似方法以单个用户身份发送多个文件。

您可以通过在Gatling的session变量中将文件名保留为列表的方式来执行类似的操作,但是,您注入到场景中的不同用户之间仍然无法共享此会话。

© www.soinside.com 2019 - 2024. All rights reserved.