Gatling从馈线

时间:2016-09-16 08:34:31

标签: gatling

我的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)
}

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

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

有什么想法吗?谢谢你的时间!

1 个答案:

答案 0 :(得分:2)

我搜索了加特林的文档,找到了答案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)
}