Таким образом, у меня есть сценарий, который работает отлично, он определен следующим образом:
val basicLoginScenario = createScenario(Config.testName, feeder.random,
setSessionParams(PARAM1, Config.param1),
setSessionParams(PARAM2, Config.param2),
setSessionParams(PARAM3, Config.param3),
setSessionParams(PARAM4, Config.param4),
exec(RestApi.userLogin))
exec(RestApi.transaction1))
exec(RestApi.transaction2)))
Но когда я окружаю его exitBlockOnFail, я получаю следующую ошибку, и, кажется, это происходит до того, как любой HTTP-запросотправлено или любой JSON запроса / ответа анализируется.
[GatlingSystem-akka.actor.default-dispatcher-4] ERROR io.gatling.http.action.HttpRequestAction - 'httpRequest-5' failed to execute: No attribute named 'cookie' is defined
Это код с exitBlockOnFail:
val basicLoginScenario = createScenario(Config.testName, feeder.random,
exitBlockOnFail{
setSessionParams(PARAM1, Config.param1)
setSessionParams(PARAM2, Config.param2)
setSessionParams(PARAM3, Config.param3)
setSessionParams(PARAM4, Config.param4)
exec(RestApi.userLogin))
exec(RestApi.transaction1))
exec(RestApi.transaction2))
})
Обратите внимание, что параметр cookie используется из транзакции userLoginи нигде не используется до того, как будет получено в этом сценарии, очевидно, не в setSessionParam, который:
def setSessionParams(key: String, value: Any) = {
exec(_.set(key, value))
}
Вот транзакция userLogin:
val userLogin = {
exec(http("Login")
.post("/login")
.body(ElFileBody("json/Login.json")).asJson
.check(jsonPath("$.result.cookie").saveAs("cookie")))
}
Мой фидер не имеетв нем есть параметр «cookie», а в Login.json нет параметра «cookie», он только возвращает его. Как я сказал в начале, сценарий работает отлично - проблема возникает только тогда, когда я окружаю свои транзакции с помощью exitBlockOnFail. Есть идеи, что может вызвать это?