我有以下场景,它有两个请求(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
答案 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 {