增加通话/用户数量直至中断

时间:2019-06-11 09:10:44

标签: gatling

我似乎很难做到。

我想随着时间的推移增加对api的并发调用的次数,直到它中断为止。

根据我的理解,这是rampUsersPerSec,初始速率很低,逐渐增加到足以使during破裂的程度,足以观察其实际破裂的时间。

这是我的代码

  val httpProtocol = http
    .baseUrl("http://some.url")
    .userAgentHeader("breaking test")
    .shareConnections()

  val scn = scenario("Ralph breaks it")
    .exec(
      http("root page")
      .get("/index.html")
      .check(status.is(200))
    )

  setUp(
    scn.inject(
      rampUsersPerSec(1) to 100000 during (10 minutes))
    .protocols(httpProtocol))

发生两件事

  1. 运行它时会有很多异常。请求超时,连接超时等。发生这种情况时如何停止测试?
  2. 活动用户似乎比预期的要高得多。我是否理解'rampUsersPerSec'错误?缩放每秒线性呼叫数的正确方法是什么?

2 个答案:

答案 0 :(得分:0)

我正在做与您相似的事情,我设法使用下面的代码解决了该问题

this.modalService.open(content, { 
  windowClass: 'your-class'
  // other properties 
});

答案 1 :(得分:0)

当您使用rampUsersPerSec时,您正在定义用户的到达率。因此,如果将“ rampUsersPerSec(1)在(10分钟)内达到100000个)”,Gatling将在开始时每秒注入1个用户,并逐渐提高速率,直到在10分钟时每秒注入100,000个用户。

根据您对/index.html的调用响应所花费的时间,这可能很快就失控了,因为加特林系统不等待已经注入的用户实际完成-而是不断添加它们。因此,(大约)在第一个第二巡检中可能会注入1个用户,但是在第二个收集中可能会注入166个用户,而在第3个中则可能注入333个用户,依此类推。因此,如果您的方案需要几秒钟来响应,则并发数 用户可以迅速增加。

不幸的是,我不认为有什么方法可以让模拟检测到您达到定义的错误率并停止时。您最好在较长的时间内设置慢得多的坡度。或者,您可以使用针对给定并发级别而不是到达率的封闭式注入方法