Я использую сеансы в gatling для хранения значений, как показано ниже
exec(session => {
val id = Instant.now.toEpochMilli.toString + scala.util.Random.nextInt(1000).toString
session.set("STARTED_PROCESS_ID",id)
//Store the id somewhere for processing later
session
})
.exec(
http("scenario")
.post(url)
.header("Content-Type", "application/json")
.header("id", session => session("STARTED_PROCESS_ID").as[String])
.body(StringBody(body)
.check(status.is(200))
В соответствии с документацией, значение должно храниться в сеансе, а заголовок "id" должен заполняться, как и ожидалось. Но при запуске симуляции я получаю следующую ошибку
java.util.NoSuchElementException: No attribute named 'STARTED_PROCESS_ID' is defined
at io.gatling.core.session.SessionAttribute.as(Session.scala:46)
at common.HttpUtil$.$anonfun$sendPostRequestForWasStartDefLoad$1(HttpUtil.scala:557)
at io.gatling.core.action.SessionHook.execute(SessionHook.scala:32)
at io.gatling.core.action.Action.$bang(Action.scala:38)
at io.gatling.core.action.Action.$bang$(Action.scala:38)
Может кто-нибудь помочь объяснить, почему это происходит?