加特林从进纸器中获取变量

mCY*_*mCY 3 gatling

我的加特林版本是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)
}
Run Code Online (Sandbox Code Playgroud)

Utils.getCredential(user: String): String只是一个函数,它接受用户名并返回凭证字符串。

如您所见,用户名存储在resources.csv文件中。我可以简单地用.post("/authentication?name=${user}")。但是我如何将其称为像${Utils.getCredential(user))}这样的变量,这会引发错误。

有任何想法吗?谢谢你的时间!

mCY*_*mCY 5

我搜索了加特林的文档,在这里找到了答案。

它有两个部分介绍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"
Run Code Online (Sandbox Code Playgroud)

答案应该是:

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)
}
Run Code Online (Sandbox Code Playgroud)