当前位置: 首页 > 知识库问答 >
问题:

为大型json数据文件创建gatling自定义进纸器

虞华彩
2023-03-14

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

每个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) 我可以把这个代码做成一个feeder,这样我就可以像CSV feeder一样使用它了吗?

2) 我应该什么时候将json从文件加载到内存中?在测试开始时,还是在每个线程需要数据时?

共有1个答案

岳朝
2023-03-14

我还没有收到任何答案,所以我会把我学到的东西贴出来。

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

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

.body(RawFileBody(jsonMessage))

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

 类似资料:
  • 我有一个非常简单的场景,可以从只包含一个标题为的列的CSV文件中获取随机值。然后,我想把这个值粘贴到POST请求的主体中。我的请求主体的示例如下:。因此,我需要使用CSV文件中的值,而不是。以下是我的反馈和场景: 这个例子是我迄今为止所做的最接近的实现。但它并不像我预期的那样有效。我无法将进纸器中的值粘贴到

  • 我已经使用CPT插件创建了一个自定义的post类型产品,然后我创建了三个自定义分类法,用于添加新产品,比如品牌、用法和类型。 我试图实现的是有一个页面,其中列出了自定义分类法中的所有术语,单击该分类法,您将进入一个单独的术语页面,该页面列出了使用该术语标记的所有产品。最后,单击一个产品会将您带到单个产品页面。 基本上我想要这个:家- 这对我来说都是全新的和未知的。我是用分类法发现的。php为我的分

  • 我们不仅可以分配事件处理程序,还可以从 JavaScript 生成事件。 自定义事件可用于创建“图形组件”。例如,我们自己的基于 JavaScript 的菜单的根元素可能会触发 open(打开菜单),select(有一项被选中)等事件来告诉菜单发生了什么。另一个代码可能会监听事件,并观察菜单发生了什么。 我们不仅可以生成出于自身目的而创建的全新事件,还可以生成例如 click 和 mousedow

  • 我正试图让盖特林为每个POST请求创建随机数据。我关注了stackoverflow和其他地方的一些帖子。我想出了这个方案- 然而,当我运行这段代码时,它只调用我的feeder一次,以创建一个UUID,并在整个负载测试中重新使用相同的UUID。 在遵循这条线索之后,我创建了上面的代码。我用的是加特林2.2.5。这是我的sbt配置-

  • 如何在Gatling中创建一个简单的进纸器而不使用csv文件?我尝试了Gatling留档中的脚本。我在留档中看到了一个例子 我不明白上面的代码。 我尝试了一个带有使用csv文件的进纸器的脚本并成功执行。与其从csv文件中馈送数据,不如如何编写可以取定义值的进纸器。

  • 有时Android提供的组件无法满足我们的需求,因此需要自定义组件. 创建自定义组件的一般步骤: 1.新建类文件,要继承View或View的子类. 2.覆写父类的一些方法. 3.使用自定义组件类. Android Studio会通过模板帮我们自动生成文件,并覆写方法. 我们只需要根据自已的实际需求修修攺改就好了. 操作步骤: 菜单栏: File —> New —>UI Component —> C