Gatling(性能测试):如何每隔x分钟在后台执行任务
Gatling (performance test):how to perform task in background every x-minutes
我想知道如何使用 Gatling 每 x 分钟在后台执行一次任务。
背景:
我想在我们的后端写几个场景。在这种情况下,我们的后端将被另一个后端调用。通常情况:
- 客户端(后端)到服务器的身份验证(可选)
- 客户请求 X
- 客户请求 Y
- 客户请求 Z
我想要一个执行请求 'X, Y and Z' 的场景。
问题:后端(客户端)到后端(服务器)的身份验证是使用 accessTokens 执行的。此 accesToken 将在整个模拟中过期几次,但我不想在每个场景中都进行此身份验证。 (因为这可能是瓶颈)。例如:令牌每10分钟过期一次,一个场景需要5秒,总共模拟2小时。
问题:如何创建一个每10分钟在后台刷新一次accesstoken的模拟。在现实生活中,后端(客户端)将只有一个后台进程,每 10 分钟更新一次 accesToken(在内存中或共享状态)。再一次:我不想重新验证每个场景(调用 X,调用 Y,调用 Z)。
如果适合考虑循环的一部分场景,那么你应该能够通过使用持续时间/截止日期和条件执行来实现你想要的。
例如
import scala.concurrent.duration._
val executionTime = 2 hours
val authTimeout = 10 minutes
val safetyMargin = 30 seconds
val authenticate : ChainBuilder = exec(login)
.exec(session => session.set("timeout", authTimeout.fromNow))
scn = scenario("scenarioXYZ")
.exec(authenticate)
.during(executionTime) {
doIf(session => {session.get("timeout").as[Deadline].timeleft <= safteyMargin}) {
exec(authenticate)
}
.exec(requestX)
.exec(requestY)
.exec(requestZ)
}
}
所以登录(设置您的令牌)并设置令牌过期的截止日期
然后根据需要循环,在每次循环中,如果身份验证剩余的数量少于指定的数量,则再次进行身份验证并设置新的预期到期时间
我想知道如何使用 Gatling 每 x 分钟在后台执行一次任务。
背景: 我想在我们的后端写几个场景。在这种情况下,我们的后端将被另一个后端调用。通常情况:
- 客户端(后端)到服务器的身份验证(可选)
- 客户请求 X
- 客户请求 Y
- 客户请求 Z
我想要一个执行请求 'X, Y and Z' 的场景。
问题:后端(客户端)到后端(服务器)的身份验证是使用 accessTokens 执行的。此 accesToken 将在整个模拟中过期几次,但我不想在每个场景中都进行此身份验证。 (因为这可能是瓶颈)。例如:令牌每10分钟过期一次,一个场景需要5秒,总共模拟2小时。
问题:如何创建一个每10分钟在后台刷新一次accesstoken的模拟。在现实生活中,后端(客户端)将只有一个后台进程,每 10 分钟更新一次 accesToken(在内存中或共享状态)。再一次:我不想重新验证每个场景(调用 X,调用 Y,调用 Z)。
如果适合考虑循环的一部分场景,那么你应该能够通过使用持续时间/截止日期和条件执行来实现你想要的。
例如
import scala.concurrent.duration._
val executionTime = 2 hours
val authTimeout = 10 minutes
val safetyMargin = 30 seconds
val authenticate : ChainBuilder = exec(login)
.exec(session => session.set("timeout", authTimeout.fromNow))
scn = scenario("scenarioXYZ")
.exec(authenticate)
.during(executionTime) {
doIf(session => {session.get("timeout").as[Deadline].timeleft <= safteyMargin}) {
exec(authenticate)
}
.exec(requestX)
.exec(requestY)
.exec(requestZ)
}
}
所以登录(设置您的令牌)并设置令牌过期的截止日期
然后根据需要循环,在每次循环中,如果身份验证剩余的数量少于指定的数量,则再次进行身份验证并设置新的预期到期时间