Sur*_*non 2 gatling scala-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))
Run Code Online (Sandbox Code Playgroud)
根据文档,该值应存储在会话中,并且标头“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)
Run Code Online (Sandbox Code Playgroud)
有人可以帮忙解释为什么会发生这种情况吗?
您没有正确使用 Session API。请正确阅读文档。
Session是不可变的并set返回一个新实例。
exec { session =>
val id = Instant.now.toEpochMilli.toString + scala.util.Random.nextInt(1000).toString
session.set("STARTED_PROCESS_ID",id)
}
Run Code Online (Sandbox Code Playgroud)