在 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 {
我有以下场景,其中有两个请求(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 {