Я пытаюсь написать несколько нагрузочных тестов, которые выполняют аутентификационный вызов, а затем используют один и тот же токен для каждого вызова в сценарии.
У меня проблемы с тем, чтобы проверить, установлен ли токен, если нет, то позвоню, чтобы получить токен.В противном случае, если токен установлен, затем выполните вызовы.
Мой код, который выполняет эту проверку, выглядит следующим образом:
val scn = scenario("Get All Events")
.doIf(session => session("bearerToken").asOption[String].isEmpty) {
exec(getAuth.getBearerToken)
}
.pause(2)
.exec (http("Get Events")
.get("v1/events")
.header("x-request-id", "perf-test")
.header("HttpLogRequestId", s"${BaseHelpers.getUUID}")
.header("x-api-key", s"${BaseHelpers.getXAPIKey}")
.header("Authorization", "Bearer ${bearerToken}")
.check(status.is(200))
)
Когда он вызывает для установки токена аутентификации, он выглядит так:
val getBearerToken = exec(http("Get Authorization Token")
.post(baseAuthURL + "v1/oauth2/token?grant_type=password&client_id=" + client_id + "&username=" + username + "&password=" + password)
.basicAuth(client_id, client_secret)
.header("x-request-id", "perf-test")
.header("HttpLogRequestId", s"${BaseHelpers.getUUID}")
.check(status.is(200))
.check(jsonPath("$.id_token").saveAs("bearerToken"))
)
Результат для меня, как правило, один из двух.Либо он будет делать этот вызов каждый раз, каким-то образом игнорируя проверку, либо выдает ошибку, сообщая, что ключ не найден.
Я пытался сделать это несколькими различными способами, но все еще не повезло.Надеясь, что вторая пара глаз может указать, где я иду не так.