我在'setUp()'方法中执行了多个场景。我想实现的是每分钟为每个场景获得4000个请求,然后重复所有。我想在晚上运行测试几个小时。
我该怎么做呢?
这是我的实际代码:
{
List<PopulationBuilder> scenarioList = new ArrayList<>();
scenarioList.add(get.injectOpen(constantUsersPerSec(4000).during(Duration.ofSeconds(10))));
scenarioList.add(search.injectOpen(constantUsersPerSec(4000).during(Duration.ofSeconds(10))));
scenarioList.add(download.injectOpen(constantUsersPerSec(4000).during(Duration.ofSeconds(10))));
/* Shuffle list */
Collections.shuffle(scenarioList);
setUp(create.injectOpen(nothingFor(5), constantUsersPerSec(4000).during(Duration.ofSeconds(10)))
.andThen(scenarioList)
.andThen(delete.injectOpen(constantUsersPerSec(4000).during(Duration.ofSeconds(10)))))
.throttle(
reachRps(4000).in(10),
holdFor(Duration.ofMinutes(1))
)
.protocols(httpProtocol);
}
1条答案
按热度按时间fnx2tebb1#
要实现以每分钟4000个请求的速度运行多个场景的目标,您可以通过为每个场景设置注入配置文件并将测试的持续时间调整为运行几个小时来修改现有代码。
在此代码中,我们定义了三个场景-“获取场景”、“搜索场景”和“下载场景”。然后,我们使用constantUsersPerSec注入配置文件为每个场景创建一个InjectionProfileBuilders列表,速率为每秒4000个用户,持续时间为10分钟。
然后,我们使用setUp方法和注入配置文件设置模拟,并将测试限制为在1分钟内达到每秒4000个请求,并保持该速率2小时。我们还将测试的maxDuration设置为2小时,以确保测试不会无限期地运行。
希望这有帮助!