Условия, основанные на сценариях Гатлинга

Я хотел бы знать, возможны ли условия (основанные на сценариях) в 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 ответ

Решение

Можно получить scenarioName от 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),
Другие вопросы по тегам