加特林从进纸器中获取变量
Gatling get variable out of feeder
我的加特林版本是2.2.0,例如:
# resource.csv file
===============
user
user1
user2
# object file
===============
object REntity {
val feeder = csv("resources.csv").circular
val entity =
// ==================
// log in
// ==================
feed(feeder)
.exec(
http("example")
.post("/authentication?name=${user}")
.body(session => s"${Utils.getCredential(user)}")
).exitHereIfFailed.pause(Config.ThinkTime)
}
Utils.getCredential(user: String): String
只是一个接受用户名的函数,return 一个凭证字符串。
如您所见,用户名存储在 resources.csv
文件中。我可以简单地用 .post("/authentication?name=${user}")
来引用它。但是我怎么能像 ${Utils.getCredential(user))}
这样的变量来引用它,这会引发错误。
有什么想法吗?感谢您的宝贵时间!
我搜索了 Gatling 的文档,找到了答案 here。
它有两个部分介绍 1)。设置属性和 2) 获取属性。
基本上来说获取属性的方式应该是:
// say resources.csv looks like this:
// =====================
// user,entityID
// Jim,1001
// Mike,1002
val feeder = csv("resources.csv").circular
val name = session("user").as[String] // => "Jim"
答案应该是:
object REntity {
val feeder = csv("resources.csv").circular
val entity =
// ==================
// log in
// ==================
feed(feeder)
.exec(
http("example")
.post("/authentication?name=${user}")
.body(session => Utils.getCredential(session("user").as[String]))
).exitHereIfFailed.pause(Config.ThinkTime)
}
我的加特林版本是2.2.0,例如:
# resource.csv file
===============
user
user1
user2
# object file
===============
object REntity {
val feeder = csv("resources.csv").circular
val entity =
// ==================
// log in
// ==================
feed(feeder)
.exec(
http("example")
.post("/authentication?name=${user}")
.body(session => s"${Utils.getCredential(user)}")
).exitHereIfFailed.pause(Config.ThinkTime)
}
Utils.getCredential(user: String): String
只是一个接受用户名的函数,return 一个凭证字符串。
如您所见,用户名存储在 resources.csv
文件中。我可以简单地用 .post("/authentication?name=${user}")
来引用它。但是我怎么能像 ${Utils.getCredential(user))}
这样的变量来引用它,这会引发错误。
有什么想法吗?感谢您的宝贵时间!
我搜索了 Gatling 的文档,找到了答案 here。
它有两个部分介绍 1)。设置属性和 2) 获取属性。
基本上来说获取属性的方式应该是:
// say resources.csv looks like this:
// =====================
// user,entityID
// Jim,1001
// Mike,1002
val feeder = csv("resources.csv").circular
val name = session("user").as[String] // => "Jim"
答案应该是:
object REntity {
val feeder = csv("resources.csv").circular
val entity =
// ==================
// log in
// ==================
feed(feeder)
.exec(
http("example")
.post("/authentication?name=${user}")
.body(session => Utils.getCredential(session("user").as[String]))
).exitHereIfFailed.pause(Config.ThinkTime)
}