首页 > 解决方案 > 加特林中的常数UsersPerSecond

问题描述

我正在使用 Gatling 运行负载测试。

我已将所有查询(总共 300 万个查询)放在一个日志文件中并将其加载到一个提要中

val feeder = tsv(logFileLocation).circular
val search =
  feed(feeder)
      .exec(
         http("/")
         .get("${params}")
         .headers(sentHeaders)
       ).pause(1)

至于模拟,我希望同时有 50 个用户和 50 个/秒的峰值请求,所以我这样设置

setUp(myservicetest.inject(atOnceUsers(50))).throttle(
    reachRps(50) in (40 minutes), jumpToRps(20), holdFor(20 minutes)).maxDuration(60 minutes).protocols(httpProtocol)

我的假设是这 50 个用户每个都加载查询并从第一个查询开始到最后一个查询。因为有足够多的查询要执行,这 50 个用户将在整个持续时间内(60 分钟)始终保持在线

但是当我运行它时,我看到 user1 运行 query1,user2 运行 query2,.. user50 运行 query50。每个用户只运行 1 个查询然后退出。所以在负载测试中恰好执行了 50 个查询,并且很快就完成了。

所以我的问题是,假设我有 300 万个查询tsv(logFileLocation).circular和多个用户,每个用户是否会从 query1 开始并尝试执行所有 3m 个查询。或者每个用户都计划运行 3m 查询的一部分,如果分配了足够的时间,在测试结束时所有 3m 查询只执行一次?

谢谢

标签: gatling

解决方案


免责声明:加特林的作者在这里

后者:“在测试结束时,所有 3m 查询只执行一次”。每个虚拟用户执行其场景。注入配置文件仅控制何时启动新的虚拟用户。如果您希望虚拟用户执行多个请求,则必须将其包含在您的场景中,例如循环暂停

这些是加特林基础知识,我建议您看看我们刚刚推出的新加特林学院课程。


推荐阅读