Yandex Cloud
  • Сервисы
  • Решения
  • Почему Yandex Cloud
  • Сообщество
  • Тарифы
  • Документация
  • Связаться с нами
Подключиться
Language / Region
Проект Яндекса
© 2023 ООО «Яндекс.Облако»
Yandex Load Testing
  • Начало работы
  • Пошаговые инструкции
    • Все инструкции
    • Создать агент тестирования
    • Настроить группы безопасности агента тестирования
    • Настроить группы безопасности цели тестирования
    • Создать тест с данными из бакета
    • Передать логи теста в Cloud Logging
  • Практические руководства
    • Нагрузочное тестирование gRPC-сервиса
    • Развертывание и нагрузочное тестирование gRPC-сервиса с масштабированием
    • HTTPS-тест с постоянной нагрузкой с помощью Phantom
    • HTTPS-тест со ступенчатой нагрузкой с помощью Pandora
    • Нагрузочное тестирование с нескольких агентов
  • Концепции
    • Обзор сервиса
    • Агент
    • Генератор нагрузки
    • Профиль нагрузки
    • Тестовые данные и их типы
      • Обзор
      • URI
      • URIPOST
      • PHANTOM
      • RAW
      • HTTP_JSON
    • Тестирующие потоки
    • Автостоп
    • Мониторинг агентов тестирования
    • Отчеты
    • Результаты нагрузочного теста
    • Квоты и лимиты
  • Управление доступом
  • Правила тарификации
  1. Практические руководства
  2. Нагрузочное тестирование с нескольких агентов

Нагрузочное тестирование с нескольких агентов

Статья создана
Yandex Cloud
  • Перед началом работы
    • Необходимые платные ресурсы
  • Подготовьте инфраструктуру
    • Создайте сервисный аккаунт
    • Настройте сеть
    • Настройте группу безопасности
  • Создайте агенты тестирования
  • Запустите тест
  • Посмотрите результаты тестирования
  • Как удалить созданные ресурсы

Yandex Load Testing можно использовать для тестирования сервиса с помощью нескольких агентов тестирования.

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

  • цель тестирования состоит из нескольких виртуальных машин, а суммарный входящий и исходящий трафик с них превышает возможности одного агента;
  • запросы, которые направляются в цель тестирования, требуют много вычислительных мощностей;
  • цель тестирования намного эффективнее генератора нагрузки.

Агенты запускаются и подают нагрузку на цель тестирования синхронно. Результаты тестирования доступны в обобщенном и независимых отчетах с каждого агента.

Чтобы провести нагрузочное тестирование с нескольких агентов:

  1. Подготовьте облако к работе.
  2. Подготовьте инфраструктуру.
  3. Создайте агенты тестирования.
  4. Запустите тест.
  5. Посмотрите результаты тестирования

Если созданные ресурсы вам больше не нужны, удалите их.

Перед началом работы

Перед работой нужно зарегистрироваться в Yandex Cloud и создать платежный аккаунт:

  1. Перейдите в консоль управления, затем войдите в Yandex Cloud или зарегистрируйтесь, если вы еще не зарегистрированы.
  2. На странице биллинга убедитесь, что у вас подключен платежный аккаунт, и он находится в статусе ACTIVE или TRIAL_ACTIVE. Если платежного аккаунта нет, создайте его.

Если у вас есть активный платежный аккаунт, вы можете создать или выбрать каталог, в котором будет работать ваша инфраструктура, на странице облака.

Подробнее об облаках и каталогах.

Необходимые платные ресурсы

Если агент размещается на платформе Yandex Cloud, взимается плата за вычислительные ресурсы (см. тарифы Yandex Compute Cloud).

На стадии Preview использование сервиса Load Testing не тарифицируется.

Подготовьте инфраструктуру

Создайте сервисный аккаунт

  1. Создайте сервисный аккаунт sa-loadtest в каталоге, где будут размещаться агенты.
  2. Назначьте сервисному аккаунту роль loadtesting.generatorClient.

Настройте сеть

Настройте NAT-шлюз в подсети, в которой будут размещаться агенты. Это обеспечит доступ агентов к сервису Load Testing.

Настройте группу безопасности

Примечание

Группы безопасности находятся на стадии Preview. Если они недоступны в вашей сети, для ресурсов будет разрешен весь входящий и исходящий трафик, дополнительной настройки не требуется.

Чтобы включить группы безопасности, запросите в технической поддержке доступ к этой функции.

  1. Создайте группу безопасности для агентов agent-sg.
  2. Добавьте правила:
    • Правило для исходящего HTTPS-трафика к публичному API Yandex Load Testing:

      • диапазон портов: 443;
      • протокол: TCP;
      • тип источника: CIDR;
      • назначение: 0.0.0.0/0.

      Это позволит подключить агенты к сервису Load Testing, чтобы управлять тестами из интерфейса и получать результаты тестирования.

    • Правило для исходящего HTTP-трафика при подаче нагрузки к цели тестирования:

      • диапазон портов: 80;
      • протокол: TCP;
      • тип источника: CIDR;
      • назначение: 0.0.0.0/0.

      Это позволит агентам подавать нагрузку к цели тестирования.

    • Правило для входящего SSH-трафика:

      • диапазон портов: 22;
      • протокол: TCP;
      • тип источника: CIDR;
      • назначение: 0.0.0.0/0.

      Это позволит подключаться к агентам по протоколу SSH и управлять тестами из консоли или собирать отладочную информацию.

В этом примере нагрузка будет подаваться на внешний сервис example.myservice.ru. Подробности о настройке групп безопасности для тестирования сервисов, которые размещены внутри облака, см. в разделах:

  • Настройка групп безопасности агента тестирования.
  • Настройка групп безопасности цели тестирования.

Создайте агенты тестирования

  1. Сгенерируйте пару ключей SSH для подключения к агентам по протоколу SSH.

  2. Создайте первый агент:

    Консоль управления
    1. В консоли управления выберите каталог, в котором будет создан агент.

    2. В списке сервисов выберите Load Testing.

    3. На панели слева перейдите на вкладку Агенты. Нажмите кнопку Создать агент.

    4. Укажите имя агента, например agent-008.

    5. Выберите зону доступности, в которой будет размещен агент.

    6. В блоке Агент:

      • Выберите подходящий тип агента. Подробнее см. в разделе Производительность агентов.
      • Укажите подсеть, в которой будет размещен агент.
      • Укажите группу безопасности агента.
    7. В блоке Доступ укажите данные для доступа к агенту:

      • Выберите сервисный аккаунт sa-loadtest.

      • В поле Логин введите имя пользователя.

        Внимание

        Не используйте логин root или другие имена, зарезервированные операционной системой. Для выполнения операций, требующих прав суперпользователя, используйте команду sudo.

      • В поле SSH-ключ вставьте содержимое файла открытого ключа.

    8. Нажмите кнопку Создать.

    9. Дождитесь завершения процесса создания виртуальной машины. Статус агента должен смениться на READY_FOR_TEST.

      Примечание

      Процесс создания агента может остановиться на статусе INITIALIZING_CONNECTION, если у агента не будет доступа к loadtesting.api.cloud.yandex.net:443, или у сервисного аккаунта, который назначен агенту, не будет необходимых ролей.

  3. Аналогично создайте второй агент с именем agent-009.

Если вам нужно подключиться к агентам по протоколу SSH, привяжите к ним публичный IP-адрес.

Запустите тест

Консоль управления
  1. В консоли управления выберите сервис Load Testing.
  2. На панели слева перейдите на вкладку Тесты. Нажмите кнопку Создать тест.
  3. В блоке Конфигурация 1 укажите параметры тестирования для первого агента:
    1. Агенты — выберите агент agent-008.

      В этом примере конфигурация теста для агентов будет разной, чтобы задать одинаковую конфигурацию, выберите в поле Агенты все агенты, которые нужно применить.

    2. В блоке Настройки теста:

      • Способ настройки — выберите Форма.

      • Генератор нагрузки — выберите генератор Pandora.

      • Адрес цели — введите адрес тестируемого сервиса: example.myservice.ru.

      • Порт цели — укажите 80 (порт для протокола HTTP по умолчанию).

      • Тестирующие потоки — 1000.

        Это будет означать, что генератор сможет параллельно обрабатывать 1000 операций (создать 1000 соединений или ждать 1000 ответов от сервиса одновременно). Подробнее о тестирующих потоках.

      • В меню Расписание нагрузки:

        • Тип нагрузки — выберите тип RPS.

        • Профиль нагрузки — добавьте два этапа теста:

          • {type: line, duration: 60s, from: 1, to: 100}
          • {type: const, duration: 300s, ops: 100}

          Это указание генератору наращивать нагрузку от 1 до 100 запросов в секунду первые 60 секунд, а потом 5 минут поддерживать нагрузку 100 запросов в секунду. Подробнее о профиле нагрузки.

      • Тип запросов — укажите тип URI.

      • В меню Запросы добавьте два запроса:

        • / index
        • /test?param1=1&param2=2 get_test

        Запросы отмечены тегами index и get_test. Генератор будет повторять их по очереди в пределах заданного профиля нагрузки.

      • В меню Заголовки запросов укажите заголовки:

        • [Host: example.myservice.ru]
        • [Connection: Close]

        Обратите внимание на заголовок Connection: Close — каждое соединение будет закрываться после запроса. Для тестируемого сервиса и генератора такой режим тяжелее. Если не нужно закрывать соединения, то следует указать значение Keep-Alive.

  4. Нажмите кнопку Дублировать конфигурацию. Параметры тестирования будут скопированы в блок Конфигурация 2.
  5. В блоке Конфигурация 2 укажите параметры тестирования для второго агента:
    1. Агенты — выберите агент agent-009.

    2. В блоке Настройки теста измените параметры тестирования.

      Например, в меню Автостоп нажмите Автостоп и введите описание:

      • Тип автостопа: INSTANCES.
      • Критерии автостопа: 90%,60s.

      Этот критерий остановит тест, если в течение 60 секунд будет занято 90% тестирующих потоков, что свидетельствует о возникновении проблем тестирования. Подробнее об автостопе.

  6. В блоке Информация о тесте укажите имя, описание и номер версии теста. Это сделает отчеты читаемыми.
  7. Нажмите кнопку Создать.

Конфигурации пройдут проверки, и агенты начнут нагружать тестируемый сервис.

Посмотрите результаты тестирования

Консоль управления
  1. В консоли управления выберите сервис Load Testing.
  2. На панели слева перейдите на вкладку Тесты.
  3. Выберите тест, созданный ранее. Тесты с несколькими агентами отображаются с меткой Multi.
  4. Чтобы посмотреть обобщенные результаты, перейдите на вкладку Результаты теста.
  5. Чтобы посмотреть результаты тестирования по каждому агенту:
    1. Перейдите на вкладку Обзор.
    2. В блоке Тесты выберите нужный агент.
    3. Перейдите на вкладку Результаты теста.

Как удалить созданные ресурсы

Чтобы перестать платить за созданные ресурсы, удалите агенты тестирования.

Была ли статья полезна?

Language / Region
Проект Яндекса
© 2023 ООО «Яндекс.Облако»
В этой статье:
  • Перед началом работы
  • Необходимые платные ресурсы
  • Подготовьте инфраструктуру
  • Создайте сервисный аккаунт
  • Настройте сеть
  • Настройте группу безопасности
  • Создайте агенты тестирования
  • Запустите тест
  • Посмотрите результаты тестирования
  • Как удалить созданные ресурсы