Gatling: повторное использование нескольких извлеченных значений с помощью .check (regex - PullRequest
0 голосов
/ 26 июня 2019

Я пытаюсь извлечь значения из сеанса только один раз и использовать его в следующих сеансах.

//First transaction used in scenario
val goHomepage = http("OpenHomepage")
.get("/")
.headers(headers_0)
.check(css("ul.sublist a" , "href").findAll.saveAs("categories"))

В последней строке я извлек все категории (например, записные книжки, телефоны и т. Д.)Это моя самая первая транзакция в сценарии.Эти категории используются в следующих.

Итак, если у меня более одного виртуального пользователя, означает ли это, что каждый раз, когда эта строка будет выполнять одно и то же действие, и будет сохранять список этих категорий для каждого сеанса или перезаписывать себя?

Если так, как я могу получить этот список только один раз и сохранить его между запросами, не перезаписывая его?Или он извлекается только один раз, и вам не нужно беспокоиться о потреблении ресурсов?

1 Ответ

0 голосов
/ 27 июня 2019

если вызов OpenHomepage возвращает одинаковые данные для каждого пользователя, то каждый из них будет переносить подсписок в своем сеансе.

Почему вы хотите выполнить это только один раз?Если вы пытаетесь смоделировать 20 пользователей, каждый из которых входит в систему на веб-сайте, разве не реалистично, чтобы каждый из них попадал на домашнюю страницу?

Если это не удастся, если список категорий достаточно постоянен, вы можете просто жестко закодироватьчто в ваш сценарий или положить их в CSV.В любом случае - если вам нужно какое-либо динамическое поведение, основанное на содержании «категорий», вам все равно они понадобятся в сеансе каждого пользователя.

Если вам действительно нужно выполнить «OpenHomepage» только после того, как вы сможете взломатьэто вместе, делая что-то вроде того, что описано здесь

...