Gatling测试增加了每秒的常数用户数量

时间:2015-08-25 20:13:46

标签: scala performance-testing gatling

我最近开始使用gatling进行性能和负载测试。根据他们的文档,有几种方法可以发送并发请求,例如:

rampUsersPerSec(1) to(100) during(1 minute)这应该会线性增加每秒的用户数,但它有很多随机性。我想做的是每秒发送一定数量的请求,然后暂停,然后将用户增加一,然后重复。有点像:

import io.gatling.core.Predef._
import io.gatling.http.Predef._

class PricesSimulation extends Simulation {
  // ...
  // ...

  object GetPrices {
    // ...
  }

  val httpConf = http.baseURL("https://...")
  val scn = scenario("scenario1").exec(...)

  setUp(
    scn.inject(
      constantUsersPerSec(1) during(5 seconds),
      nothingFor(5 seconds),
      constantUsersPerSec(2) during(10 seconds),
      nothingFor(5 seconds),
      constantUsersPerSec(3) during(10 seconds),
      nothingFor(5 seconds),
      constantUsersPerSec(4) during(10 seconds),
      nothingFor(5 seconds),
      constantUsersPerSec(5) during(10 seconds)
      // ...
      constantUsersPerSec(100) during(10 seconds)
    ).protocols(httpConf)
  )
}

所以基本上我试图将setUp中的所有内容都减少为for循环,其中我将constantUsersPerSec的arg增加一(或等效)。然而,我的scala知识非常有限,我惨遭失败......

1 个答案:

答案 0 :(得分:0)

试试这个。

val steps = (constantUsersPerSec(1) during(5 seconds)) :: (2 to 100).toList.flatMap(i =>
  List(
    nothingFor(5 seconds),
    constantUsersPerSec(i) during(10 seconds)
  )
)

setUp(steps: _*).protocols(httpConf)