【问题标题】:Create a gatling custom feeder for large json data files为大型 json 数据文件创建一个加特林自定义馈线
【发布时间】:2020-01-20 21:46:06
【问题描述】:

我是 Gatling 和 Scala 的新手,我正在尝试创建一个具有自定义“馈送器”的测试,这将允许每个负载测试线程使用(和重用)大约 250 个 json 数据文件中的一个作为后负载。

每个 post payload 文件有 1000 条这种形式的记录:

[{
    "zip": "66221-2115",
    "recordId": "18378e10-e046-4ad3-9293-0847f8a05b2f",
    "firstName": "ANGELA",
    "lastName": "MADEUP",
    "city": "Springfield",
    "street": "123 Fake St",
    "state": "KS",
    "email": "AMADEUP@GMAIL.COM"
 }, 
 ...
]

(每个文件大约 250kB)

理想情况下,我想在测试开始时阅读它们,如下所示:

int fileCount = 3;

ClassLoader classLoader = getClass().getClassLoader();
List<File> files = new ArrayList<>();

for (int i =0; i<=fileCount; i++){
  String fileName = String.format("identityMatching/address_data_%d.json", i);
  File file = new File(classLoader.getResource(fileName).getFile());
  files.add(file);
}

然后通过以下方式获取文件内容:

FileUtils.readFileToString(files.get(1), StandardCharsets.UTF_8)

我现在正在努力让这段代码在 scala 中运行,但我想知道一些事情:

1) 我可以将此代码制作成 feeder 以便我可以像 CSV feeder 一样使用它吗?

2) 我应该何时将文件中的 json 加载到内存中?在测试开始时或每个线程需要数据时?

【问题讨论】:

    标签: scala gatling scala-gatling


    【解决方案1】:

    我还没有收到任何答案,所以我会发布我所学到的。

    1) 我可以使用带有文件名的馈线(不是文件内容)

    2) 我认为读取数据的最佳方法是:

    .body(RawFileBody(jsonMessage))

    RawFileBody(path: Expression[String]) 其中 path 是将按原样上传的文件的位置 (来自https://gatling.io/docs/current/http/http_request

    【讨论】:

      猜你喜欢
      • 2023-03-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多