在Gatling中创建一个尖峰测试

时间:2018-04-18 12:11:44

标签: gatling scala-gatling

刚开始使用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分钟内什么也不做,然后只是飙升,完成它并完成,让初始组完成。

由于

1 个答案:

答案 0 :(得分:0)

您是否尝试使用example of throttling in the docs

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,请参阅以下文档:

  

您仍然需要在方案级别注入用户。节流尝试   确保给定方案及其目标的吞吐量   注射配置文件(用户数量和持续时间)。这是一个瓶颈,   即上限。如果您没有提供足够的用户,则无法覆盖   油门。如果您的注射持续时间低于油门,那么   所有用户完成后,模拟将停止。如果你的   注射持续时间长于油门,模拟将停止   油门结束。