基于加特林场景的条件
Conditionals based on Gatling scenarios
我想知道条件语句(基于场景)在 Gatling 中是否可行。
我在 Gatling 2.1.7 中有一个登录 post,如下所示:
.exec(http("User login")
.post("/api/user_login")
.headers(Headers.headers_1))
以及几个场景:
val user1 = scenario("user1").exec(
Action.login,
Action.addDocument,
Action.logout
)
val user2 = scenario("user2").exec(
Action.login,
Action.deleteDocument,
Action.logout
)
setUp(
user1.inject(atOnceUsers(1))
user2.inject(atOnceUsers(1))
).protocols(httpProtocol)
每个用户都有单独的登录凭据(在 header 中),并且只能以特定方式与应用程序交互。
那么(在伪代码中)Gatling 支持这样的东西吗?
.exec(http("User login")
.post("/api/user_login")
.doIf(scenario == "users1") {
.headers(Headers.headers_1) // login info for user1
}
.doIf(scenario == "users2") {
.headers(Headers.headers_2) // login info for user2
})
可以从 io.gatling.core.session.Session
:
得到 scenarioName
http("User login")
.post("/api/user_login")
.headers(if(session.scenarioName.equals("user1")) Headers.headers_1 else Headers.headers_2)
session
但您可以选择使用参数 actions
:
def login(header: Map[String, String]) = {
http("User login")
.post("/api/user_login")
.headers(header)
}
//...
Action.login(Headers.headers_1),
我想知道条件语句(基于场景)在 Gatling 中是否可行。
我在 Gatling 2.1.7 中有一个登录 post,如下所示:
.exec(http("User login")
.post("/api/user_login")
.headers(Headers.headers_1))
以及几个场景:
val user1 = scenario("user1").exec(
Action.login,
Action.addDocument,
Action.logout
)
val user2 = scenario("user2").exec(
Action.login,
Action.deleteDocument,
Action.logout
)
setUp(
user1.inject(atOnceUsers(1))
user2.inject(atOnceUsers(1))
).protocols(httpProtocol)
每个用户都有单独的登录凭据(在 header 中),并且只能以特定方式与应用程序交互。
那么(在伪代码中)Gatling 支持这样的东西吗?
.exec(http("User login")
.post("/api/user_login")
.doIf(scenario == "users1") {
.headers(Headers.headers_1) // login info for user1
}
.doIf(scenario == "users2") {
.headers(Headers.headers_2) // login info for user2
})
可以从 io.gatling.core.session.Session
:
scenarioName
http("User login")
.post("/api/user_login")
.headers(if(session.scenarioName.equals("user1")) Headers.headers_1 else Headers.headers_2)
session
但您可以选择使用参数 actions
:
def login(header: Map[String, String]) = {
http("User login")
.post("/api/user_login")
.headers(header)
}
//...
Action.login(Headers.headers_1),