基于加特林场景的条件

时间:2016-03-25 16:48:25

标签: scala gatling

我想知道Gatling中是否有条件(基于场景)。

我在Gatling 2.1.7中有一个登录帖子,如下:

.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)

每个用户都有单独的登录凭据(在标题中),并且只能以某种方式与应用程序进行交互。

所以(在伪代码中)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
            })

1 个答案:

答案 0 :(得分:1)

可以从io.gatling.core.session.Session获取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), 使用参数:

{{1}}