利用步伐控制率来控制率

时间:2016-08-22 02:47:56

标签: gatling

我有以下场景,它有两个请求(RequestOne和RequestTwo)。设置为3个用户运行并重复1次。模拟应该至少花20秒完成,因为我使用20秒作为起搏。但是,每次运行它都会在不到20秒的时间内完成。我尝试了不同的起搏值。

val Workload = scenario("Load Test")
.repeat(1, "repetition") {
    pace(20 seconds)
    .exitBlockOnFail {
        .feed(requestIdFeeder)
        .group("Load Test") {
            .exec(session => {
                session.set("url", spURL)
            })
            .group("RequestOne") {exec(requestOne)}
            .feed(requestIdFeeder)
            .group("RequestTwo") {exec(requestTwo)}
        }
    }
}

setUp(Workload.inject(atOnceUsers(3))).protocols(httpProtocol)

输出

Simulation com.performance.LoadTest completed in 11 seconds

1 个答案:

答案 0 :(得分:2)

发现问题。我只使用了1次重复,所以场景不需要等待20秒的起搏完成并且它提前退出。将重复设置为> 1有助于达到理想的速度。

val Workload = scenario("Load Test")
   .repeat(10, "repetition") {
     pace(20 seconds)
       .exitBlockOnFail {

因此,如果您希望在模拟中实现固定数量的事务,请使用重复,否则请使用“永远(”,如同在docoumentation中提到的那样,以实现一致的速率。

val Workload = scenario("Load Test")
   .forever (
      pace(20 seconds)
        .exitBlockOnFail {