加特林(性能测试):如何在后台执行任务,每x分钟(Gatling (performance test

2019-10-30 09:02发布

我想知道如何在背景加特林执行任务每x分钟。

背景:我想写一对夫妇的情况下的对我们的后端。 我们的后端会在这种情况下,另一个后端调用。 一个通常的场景:

  • 客户端(后端)服务器验证(可选)
  • 客户端请求X
  • 客户端请求ÿ
  • 客户端请求ž

我想其中执行请求“X,Y和Z”的情况。

问题:后端(客户端)到后端(服务器)认证与accessTokens执行。 这accesToken将过期几次共模拟中,但我不想做这个认证的每个场景。 (因为这可能比成为瓶颈)。 例如:令牌每10分钟期满时,场景需要5秒钟,总的模拟将是2个小时。

问:我怎样才能创建一个模拟,这将刷新每隔10分钟背景的accessToken。 在真实的生活场景后端(客户端)将只是有一个后台进程更新accesToken(在内存中,或共享,州),每10分钟。 再次:我不想再验证每一个场景(称之为X,叫Y,叫Z)。

Answer 1:

它是否适合考虑循环方案的一部分,那么你应该能够使用的持续时间/期限和条件执行来实现你想要的。

例如

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 (performance test):how to perform task in background every x-minutes