在 gatling 中使用 pace 来控制速率

Use of pace in gatling to control rate

我有以下场景,其中有两个请求(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 次重复,所以场景不需要等待 20 秒的节奏完成,它会提前退出。将重复设置为 > 1 有助于实现所需的速率。

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

因此,如果您想在模拟中实现固定数量的交易,请使用重复,否则使用 "forever (",如加特林中所述 docoumentation 以实现一致的速率。

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