scala - 为大型 json 数据文件创建一个加特林自定义馈线
问题描述
我是 Gatling 和 Scala 的新手,我正在尝试创建一个具有自定义“馈送器”的测试,这将允许每个负载测试线程使用(和重用)大约 250 个 json 数据文件中的一个作为后负载。
每个 post 有效负载文件有 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) 我可以将此代码制作成馈送器,以便我可以像 CSV 馈送器一样使用它吗?
2) 我应该什么时候将文件中的 json 加载到内存中?在测试开始时或每个线程需要数据时?
解决方案
我还没有收到任何答案,所以我将发布我学到的东西。
1)我能够使用带有文件名的进纸器(不是文件内容)
2)我认为读取数据的最佳方法是:
.body(RawFileBody(jsonMessage))
RawFileBody(path: Expression[String]) 其中 path 是将按原样上传的文件的位置(来自https://gatling.io/docs/current/http/http_request)
推荐阅读
- php - Laravel Pagination 使数据记录重复显示
- python - 计算两个日期之间的月份
- python - Python3:如何使用索引更新列表中的变量?
- php - 如何使用 URL 中的特定字符串在 PHP 中显示消息?
- c++ - 修复数组未正确分配
- python - 为什么有些 Github 存储库不能在 colab 中正确导入,而其他存储库则不能?(并非所有公共 Github 存储库都对导入可见)
- php - 如何在不使用 php 函数的情况下从数组中查找缺失的数字?
- python-3.x - ImportError:无法导入名称“cluster_resolver”
- android - 恢复出厂数据以及如何恢复正常
- node.js - 如何解决 npm 安装问题?