笔者使用Gatling做负载测试的时候,发现session的修改有一个比较有趣的状况,特此记录一下
错误做法:
...
.exec{
session =>
val token = "token: " + session("token").as[String]
session.set("token", token)
session
}
.exec{
session =>
println(session("token").as[String])
session
}
...
官方文档解释是,session.set方法会生成出一个新的session,因此在另一个exec块中将不会出现上一个exec块所做的修改
正确做法:
...
.exec(session =>
{
val token = "token" + session("token").as[String]
session.set("token", token)
})
.exec{
session =>
println(session("token").as[String])
session
}
...