#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 на каждой итерации:
- Запрос «Войти» отправит файл cookie после первой итерации, вероятно, сделав его недействительным
- Это
.check(header("Set-Cookie").saveAs("Cookie")
довольно бесполезно, Гатлинг будет обрабатывать файлы cookie для вас
Не создавайте свой тест таким образом, это очень неправильно. Не перерабатывайте виртуальных пользователей, иначе вы переработаете соединения и сеансы SSL и получите больше номеров, чем следовало бы.
Просто вводите новых пользователей.