Нагрузочное тестирование на Gatling: конфигурация и профиль нагрузки | OTUS

Нагрузочное тестирование на Gatling: конфигурация и профиль нагрузки

После того, как окружение для нагрузочного тестирования на Gatling подготовлено, можно приступать к разработке скрипта нагрузки. Синтаксически, любой Gatling-скрипт состоит из 2-х частей: конфигурации и непосредственного профиля нагрузки. О них и поговорим.

Конфигурация

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

val users = ssv(fileName).circular

Что здесь что: • ssv (semicolon separated values ) — это формат файла, который совсем необязательно должен совпадать с его расширением (поддерживаются и другие форматы, о чём лучше почитать в официальной документации; • fileName — это строка, содержащая абсолютное имя файла (C:\data\users.csv ); • circular — это метод обхода значений в файле. В нашем примере, когда дойдём до последней строки с пользователем, произойдёт возврат в начало.

Далее надо задать http-конифг, который будет работать для всех запросов:

Screenshot_1-1801-e48f0b.png

Тут следует задать нужные хедеры, базовый URL и прочие настройки: к примеру, указать прокси либо отключить кеширование.

Теперь приступаем к созданию сценария:

Screenshot_2-1801-5f13ce.png

Обратите внимание, что конфигурация должна содержаться в классе, расширяющий касс — Simulation.

Screenshot_3-1801-69b31a.png

Пример полного проекта можно посмотреть здесь. Таким образом создаётся сценарий, в котором используются пользователи и http-конфиг. В течение 20 минут скрипт прогонит профиль BasicLoad.start. В случае, если сервер виснет, на 21-й минуте прогон завершается в принудительном порядке. При этом будут получены все данные, успевшие попасть в лог.

Профиль нагрузки

Профиль нагрузки выглядит следующим образом:

Screenshot_4-1801-340c95.png Screenshot_5-1801-7c2b77.png

Что есть что в этом коде: • exec представляет собой метод, по которому нагрузочный профиль выполняет лишь единичное действие. К примеру, отправляет запрос, открывает сокет, а также отправляет сообщение по сокету либо выполняет анонимную функцию; • http(samplerName: String).(get|post|put…) — выполняет отправку необходимого http-запроса. В функции метода http следует указывать относительный путь. Базовый url уже указан в процессе настройке http-конфига. Далее указываются параметры запроса — queryParam | formParam; • check — для проверки ответа. Мы можем выполнить проверку заголовка ответа. Также можно применять check, если надо проверить и сохранить тело ответа либо его отдельные элементы.

Любые действия мы можем исполнить посредством конструкции:

Screenshot_6-1801-303bb6.png

Внутри данного блока разработчик ограничен лишь возможностями языка программирования Scala. Сессия, с которой осуществляется работа, уникальна для каждого пользователя (потока). Именно поэтому есть возможность задавать для сессии параметры через set — тогда они будут доступны в других exec-блоках. А получить доступ к заданным параметрам вы сможете с помощью вызова:

"${idSkill}"

либо:

_.attributes.getOrElse("idSkill",None)

Хотите знать о Gatling больше? Этот инструмент проходят на курсе «Нагрузочное тестирование» в OTUS!

Источник

Не пропустите новые полезные статьи!

Спасибо за подписку!

Мы отправили вам письмо для подтверждения вашего email.
С уважением, OTUS!

Автор
0 комментариев
Для комментирования необходимо авторизоваться
Популярное
Сегодня тут пусто
🔥 Выгодные предложения!
Успейте начать обучение со скидкой до 10%. Акция до 31 июля →