0

刚开始使用 Gatling 并且需要进行 Spike 测试。我正在尝试弄清楚如何做到这一点,因为之后我找不到降低用户数量的方法。

我想做类似的事情 -

setUp(
    scn.inject(
      atOnceUsers(100),
      nothingFor(20 minutes), //think this should hold a flat load for 20 minutes
      rampUsers(900) over (60 seconds) // ramps 900 users over 60 secs,
      //need something to drop the load back to original state
    )
  ).protocols(httpProtocol)

我的替代想法是使用 2 个场景组并运行平坦负载,让第二个在 20 分钟内什么都不做,然后加速,做它的事情并完成,让初始组完成。

谢谢

4

1 回答 1

0

您是否尝试过使用文档中的节流示例

setUp(scn.inject(constantUsersPerSec(100) during (30 minutes))).throttle(
    reachRps(100) in (10 seconds),
    holdFor(1 minute),
    jumpToRps(50),
    holdFor(2 hours)
)

我自己没有使用过,但使用reachRps可能对你有用。我正在尝试概述您的方案,以便您了解:

setUp(scn.inject(constantUsersPerSec(100) during (30 minutes))).throttle(
    reachRps(100) in (10 seconds),
    holdFor(20 minutes),
    reachRps(900) in (60 seconds), //ramp up
    holdFor(1 minute),
    reachRps(100) in (60 seconds), //ramp down again
    holdFor(20 minutes)
)

这只是一个大纲,您肯定需要constantUsersPerSec针对您的用例进行调整,请参阅相关文档:

您仍然必须在场景级别注入用户。节流尝试确保给定场景及其注入配置文件(用户数量和持续时间)的目标吞吐量。这是一个瓶颈,即一个上限。如果你没有提供足够的用户,你就达不到油门。如果您的注入持续时间少于油门,您的模拟将在所有用户完成后停止。如果您的喷射持续时间超过油门,模拟将在油门结束时停止。

于 2018-04-19T09:55:09.190 回答