Переменная сеанса Гатлинга возвращает одно и то же значение в цикле

#scala #gatling #scala-gatling

Вопрос:

У меня есть приведенный ниже код, здесь переменная «${Cookie}» всегда возвращает одно и то же значение (первое). Второй API вызывается с одинаковым значением ${Cookie} во всех итерациях. Как установить переменную сеанса для каждой итерации?

 val loginScenario = scenario("SignIn")
.repeat(100) {
  feed(csv(dataPath   "user_list_2.csv").circular)
  .exec(
    http("Sign In")
      .post("/members/sign_in")
      .queryParam("user[email]", "${email}")
      .queryParam("user[password]", "${password}")
      .check(status.is(200))
      .check(header("Set-Cookie").saveAs("Cookie"))
  )
  .exec(
    http("Current user Info")
      .get("/users/current_user_info")
      .header("cookie",  "${Cookie}")
      .check(status.is(200))
  )
}
 

Ответ №1:

Gatling поставляется с включенной поддержкой файлов cookie, поэтому, если вы явно не удаляете CookieJar на каждой итерации:

  1. Запрос «Войти» отправит файл cookie после первой итерации, вероятно, сделав его недействительным
  2. Это .check(header("Set-Cookie").saveAs("Cookie") довольно бесполезно, Гатлинг будет обрабатывать файлы cookie для вас

Не создавайте свой тест таким образом, это очень неправильно. Не перерабатывайте виртуальных пользователей, иначе вы переработаете соединения и сеансы SSL и получите больше номеров, чем следовало бы.

Просто вводите новых пользователей.