如何检查Gatling / Scala中是否存在属性

时间:2015-03-19 10:11:49

标签: scala gatling

我认为这可能很容易,但我真的根本不了解Scala。

我有一个场景,第一次用户将登录并查看页面,然后如果他们再次登录,他们将看不到此页面。所以我到目前为止所提出的最好的是:

val chain = exec(
http("Login page")
  .get("/en/login")
  .headers(Config.HTML_HEADER)
).exec(
      http("login request")
        .post("/en/j_spring_security_check")
        .formParam("j_username", """${username}""")
        .formParam("j_password", """${password}""")
        .check(status.is(200))
        .check(currentLocationRegex(".*termsAndConditions").optional.saveAs("tc"))
    )
    .doIf(session => !session("tc").equals(null)) { // this doesn't work 
      exec(AgreeTermsAndConditions.chain)
  }

所以我在doIf上尝试了很多东西,如果没有设置会话“tc”,目标就是这样做。有没有一种简单的方法可以做到这一点?

4 个答案:

答案 0 :(得分:2)

加特林提供了exists()内置的EL函数(请参见Galting EL documentation),因此简洁的解决方案是:

.doIf("${tc.exists()}") {
 ...
}

答案 1 :(得分:1)

正确阅读documentation${tc.exists()}

答案 2 :(得分:0)

使用过:

.doIf(session => !session.contains("tc")) {
    ...
}

答案 3 :(得分:-1)

请用Nil检查。这个对我有用。