我认为这可能很容易,但我真的根本不了解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”,目标就是这样做。有没有一种简单的方法可以做到这一点?
答案 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检查。这个对我有用。