Как начать работать с Yandex Load Testing
С помощью этой инструкции вы создадите в своем облаке агент тестирования, сконфигурируете простейший нагрузочный тест и посмотрите на его результаты.
Перед началом работы
-
Войдите в консоль управления
. Если вы еще не зарегистрированы, перейдите в консоль управления и следуйте инструкциям. -
Перейдите в сервис Yandex Cloud Billing
и убедитесь, что у вас подключен платежный аккаунт, и он находится в статусеACTIVE
илиTRIAL_ACTIVE
. Если платежного аккаунта нет, создайте его. -
Если у вас еще нет каталога, создайте его. Во время создания каталога вы можете создать виртуальную сеть по умолчанию с подсетями во всех зонах доступности.
-
Создайте сервисный аккаунт в каталоге, где будут размещаться агенты, с которых будет подаваться нагрузка. Назначьте ему роль
loadtesting.generatorClient
. -
Агент подключается к сервису Load Testing через публичное API. Чтобы обезопасить себя, создайте группу безопасности. Для соединения с управляющим сервисом агенту нужно разрешить исходящий трафик на порт 443. Для этого в вашей группе безопасности добавьте следующее правило для исходящего трафика:
- Диапазон портов:
443
; - Протокол:
TCP
; - Назначение:
CIDR
; - CIDR блоки:
0.0.0.0/0
.
- Диапазон портов:
-
Агенту потребуется доступ в подсеть, в которой находится цель тестирования. Чтобы агент мог подключиться к сервису Load Testing, настройте для подсети NAT-шлюз.
-
Если у вас еще нет пары SSH-ключей, создайте их.
Создайте агент
- В консоли управления
выберите каталог, в котором будет создан агент. - В списке сервисов выберите Load Testing.
- На вкладке Агенты нажмите кнопку Создать агент.
- Укажите имя агента:
test-agent
. - Укажите ту же зону доступности, в которой находится цель тестирования.
- Выберите подходящий тип агента. Подробнее см. в разделе Производительность агентов.
- Укажите подсеть, в которой находится цель тестирования. В подсети должен быть создан и настроен NAT-шлюз.
- Если вам доступны группы безопасности, выберите заранее настроенную группу.
- Выберите сервисный аккаунт с ролью
loadtesting.generatorClient
. У вас должно быть право на его использование. - Введите логин пользователя. Он будет создан на виртуальной машине.
- Вставьте содержимое файла открытого ключа.
- Нажмите Создать.
- Дождитесь запуска виртуальной машины. Статус агента должен смениться на
Ready for test
.
В вашем каталоге будет создана ВМ, с которой можно будет проводить нагрузочное тестирование целей в пределах выбранной подсети.
Запуск теста
В этом примере будет проведено тестирование сервиса, находящегося по адресу example.myservice.ru
.
В качестве генератора нагрузки будет использоваться Pandora, как наиболее подходящий для тестов облачных приложений генератор.
- Откройте вкладку
-
Агенты — выберите агент
test-agent
. -
Способ настройки — выберите
Форма
. -
Генератор нагрузки — выберите генератор
Pandora
. -
Адрес цели — введите адрес тестируемого сервиса:
example.myservice.ru
. -
Порт цели — укажите
80
(порт для HTTP по умолчанию). -
Тестирующие потоки —
1000
.
Это будет означать, что генератор сможет параллельно обрабатывать 1000 операций (создать 1000 соединений или ждать 1000 ответов от сервиса одновременно).Важно
Важно, чтобы агент имел доступ к
example.myservice.ru:80
. -
Тип нагрузки — выберите тип
RPS
. -
Добавьте Профиль нагрузки:
- Профиль 1 — выберите
line
. - От — укажите
1
. - До — укажите
100
. - Длительность — укажите
60s
.
- Профиль 1 — выберите
-
Добавьте еще один Профиль нагрузки:
- Профиль 2 — выберите
const
. - Ответов в секунду — укажите
100
. - Длительность — укажите
300s
.
Эти настройки дадут генератору указание наращивать нагрузку от 1 до 100 запросов в секунду первые 60 секунд, а потом 5 минут поддерживать нагрузку 100 запросов в секунду.
- Профиль 2 — выберите
-
Тип запросов — укажите тип
URI
. -
В поле Тестовые данные выберите Форма и в открывшемся меню:
-
В подменю Запросы добавьте запросы:
/ index
/test?param1=1¶m2=2 get_test
Запросы отмечены тегами
index
иget_test
. Генератор будет повторять их по очереди в пределах заданного профиля нагрузки. -
В подменю Заголовки запросов добавьте заголовки:
[Host: example.myservice.ru]
[Connection: Close]
Обратите внимание на заголовок
Connection: Close
— каждое соединение будет закрываться после запроса. Для приложения и генератора такой режим тяжелее. Если не нужно закрывать соединения, то следует указать значениеKeep-Alive
.
-
-
В поле Время принудительной остановки теста укажите время, после которого сработает автостоп, если тест не будет остановлен по другим причинам. Значение параметра должно быть немного больше ожидаемой продолжительности теста.
-
В блоке Информация о тесте укажите название, описание и номер версии теста. Это поможет сделать отчет читаемым.
-
Нажмите Создать.
Тесты в сервисе Load Testing. Нажмите кнопку Создать тест. Задайте параметры теста:
-
После этого конфигурация пройдет проверки, и агент начнет нагружать тестируемое приложение. Отчет можно посмотреть на вкладке Тесты.