Yandex Cloud
Поиск
Связаться с намиПодключиться
  • Документация
  • Блог
  • Все сервисы
  • Статус работы сервисов
    • Популярные
    • Инфраструктура и сеть
    • Платформа данных
    • Контейнеры
    • Инструменты разработчика
    • Бессерверные вычисления
    • Безопасность
    • Мониторинг и управление ресурсами
    • Машинное обучение
    • Бизнес-инструменты
  • Все решения
    • По отраслям
    • По типу задач
    • Экономика платформы
    • Безопасность
    • Техническая поддержка
    • Каталог партнёров
    • Обучение и сертификация
    • Облако для стартапов
    • Облако для крупного бизнеса
    • Центр технологий для общества
    • Облако для интеграторов
    • Поддержка IT-бизнеса
    • Облако для фрилансеров
    • Обучение и сертификация
    • Блог
    • Документация
    • Контент-программа
    • Мероприятия и вебинары
    • Контакты, чаты и сообщества
    • Идеи
    • Истории успеха
    • Тарифы Yandex Cloud
    • Промоакции и free tier
    • Правила тарификации
  • Документация
  • Блог
Проект Яндекса
© 2025 ООО «Яндекс.Облако»
Практические руководства
    • Все руководства
    • Организация сине-зеленого и канареечного развертывания версий веб-сервиса
    • Автоматизация сборки образов с помощью Jenkins и Packer
    • Непрерывное развертывание контейнеризованных приложений с помощью GitLab
    • Тестирование приложений с помощью GitLab
    • Создание тестовых ВМ через GitLab CI
    • Интеграция GitLab с Tracker
    • Высокопроизводительные вычисления (HPC) на прерываемых ВМ
    • Нагрузочное тестирование gRPC-сервиса
    • HTTPS-тест с постоянной нагрузкой с помощью Phantom
    • HTTPS-тест со ступенчатой нагрузкой с помощью Pandora
    • HTTP-тест с нагрузкой по сценарию с помощью Pandora
    • Нагрузочное тестирование с нескольких агентов
    • Миграция результатов нагрузочного тестирования из OverLoad
    • Запуск внешних агентов для нагрузочного тестирования
    • Нагрузочный тест с помощью JMeter
    • Получение статистики запросов к объектам Object Storage с использованием Query
    • Получение количества запросов к объектам Object Storage
    • Вызов нагрузочного тестирования из GitLab CI
    • Развертывание GitLab Runner на виртуальной машине Compute Cloud
    • Сравнение результатов нагрузочных тестов

В этой статье:

  • Перед началом работы
  • Необходимые платные ресурсы
  • Подготовьте инфраструктуру
  • Настройте сервисный аккаунт
  • Создайте секрет с авторизованными ключами
  • Настройте окружение
  • Установите внешний агент
  • Запустите внешний агент
  • Создайте тест
  • Посмотрите результаты тестирования
  • Как удалить созданные ресурсы
  • См. также
  1. Разработка и тестирование
  2. Запуск внешних агентов для нагрузочного тестирования

Запуск внешних агентов для нагрузочного тестирования

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

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

Внешний агент — физический или виртуальный сервер с инструментом для тестирования и генераторами нагрузки, который размещен вне сервиса Load Testing.

Запуск и просмотр результатов нагрузочного тестирования с внешнего агента идентичны работе с агентом Load Testing. Подробнее см. Как начать работать с Yandex Load Testing.

Нагрузочное тестирование с внешнего агента применяется в следующих случаях:

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

Чтобы провести нагрузочное тестирование с внешнего агента:

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

Если подключенный внешний агент вам больше не нужен, удалите его из Load Testing.

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

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

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

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

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

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

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

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

Настройте сервисный аккаунтНастройте сервисный аккаунт

  1. Создайте сервисный аккаунт, например sa-loadtest, в каталоге, где будет подключен внешний агент.

  2. Назначьте сервисному аккаунту роли loadtesting.editor и loadtesting.generatorClient.

  3. Создайте авторизованные ключи для сервисного аккаунта.

    Сохраните открытый и закрытый ключи единым файлом, для этого нажмите кнопку Скачать файл с ключами.

Создайте секрет с авторизованными ключамиСоздайте секрет с авторизованными ключами

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

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

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

  4. В поле Имя введите имя секрета, например secret-loadtest.

  5. В блоке Версия:

    • в поле Ключ введите неконфиденциальный идентификатор, например key-loadtest;
    • в поле Значение загрузите файл с открытым и закрытым авторизованными ключами.
  6. Нажмите кнопку Создать.

    Сохраните имя и ключ секрета.

Настройте окружениеНастройте окружение

  1. Установите и инициализируйте интерфейс командной строки Yandex Cloud.

  2. Установите и запустите Docker.

  3. Аутентифицируйтесь в Container Registry от имени пользователя или с помощью Docker Credential Helper.

    Используйте эндпоинт реестра с Docker-образами внешних агентов: cr.yandex/yc/.

Установите внешний агентУстановите внешний агент

  1. Скачайте Docker-образ с внешним агентом, в терминале выполните команду:

    docker pull cr.yandex/yc/ya-lt-agent:latest
    

    Результат:

    latest: Pulling from yc/ya-lt-agent
    df6635ed1257: Pull complete 
    7a51fa4387ba: Pull complete 
    Digest: sha256:fad262e94a8b4021b13336ae31c738ec1e77eb6a8971528429c67d28********
    Status: Downloaded newer image for cr.yandex/yc/ya-lt-agent:latest
    cr.yandex/yc/ya-lt-agent:latest
    
  2. Скачайте файл с открытым и закрытым авторизованными ключами из Lockbox:

    yc lockbox payload get <имя_секрета> \
      --key <ключ_секрета> \
      > <имя_файла>
    

    Где:

    • <имя_секрета> — имя секрета с авторизованными ключами, например secret-loadtest.
    • <ключ_секрета> — неконфиденциальный идентификатор секрета с авторизованными ключами, например key-loadtest.
    • <имя_файла> — имя файла, в который сохраняются авторизованные ключи, например secret-key.json.

    Важно

    В среде Windows при выполнении команды используйте консоль командной строки CMD. В Powershell файл скачивается с некорректной кодировкой. Убедитесь, что кодировка скачанного файла — UTF-8.

  3. Создайте конфигурационный файл для внешнего агента, например config.yaml, и скопируйте в него следующие параметры:

    client_workdir: '/var/lib/tank_agent/client'
    tankapi_host: localhost
    tankapi_port: 8083
    load_testing_host: 'loadtesting.api.cloud.yandex.net'
    load_testing_port: '443'
    logging_host: 'ingester.logging.yandexcloud.net'
    logging_port: '443'
    object_storage_url: 'https://storage.yandexcloud.net'
    storage_file: '/tmp/yandex-tank/storage.data'
    iam_token_service_url: 'iam.api.cloud.yandex.net:443'
    agent_id_file: '/run/agentid'
    private_key: '/run/sa_key.json'
    
    agent_name: <имя_внешнего_агента>
    folder_id: <идентификатор_каталога>
    

    Где:

    • agent_name — имя внешнего агента, например external-agent.
    • folder_id — идентификатор каталога, где будет подключен внешний агент.

Запустите внешний агентЗапустите внешний агент

  1. Чтобы запустить Docker-контейнер с внешним агентом, в терминале выполните команду:

    docker run \
      -it \
      --mount type=bind,source=<путь_к_файлу_с_авторизованными_ключами>,target=/run/sa_key.json \
      --mount type=bind,source=<путь_к_конфигурационному_файлу>,target=/run/config.yaml \
      --env LOADTESTING_AGENT_CONFIG=/run/config.yaml \
      cr.yandex/yc/ya-lt-agent:latest
    

    Где:

    • <путь_к_файлу_с_авторизованными_ключами> — абсолютный путь к файлу с авторизованными ключами, например /home/user/secret-key.json.
    • <путь_к_конфигурационному_файлу> — абсолютный путь к конфигурационному файлу, например /home/user/config.yaml.

    Также конфигурацию внешнего агента можно задать с помощью переменных окружения для разных Docker-контейнеров.

    Пример запуска внешнего агента с переменными окружения
    docker run \
      -it \
      --mount type=bind,source=<путь_к_файлу_с_авторизованными_ключами_в_ОС_хоста>,target=/run/sa_key.json \
      --env LOADTESTING_AGENT_CONFIG=<путь_к_конфигурационному_файлу_в_контейнере> \
      --env LOADTESTING_AGENT_NAME='<имя_внешнего_агента>' \
      --env LOADTESTING_FOLDER_ID='<идентификатор_каталога>' \
      --env LOADTESTING_SA_KEY_FILE=<путь_к_файлу_с_авторизованными_ключами_в_контейнере> \
      cr.yandex/yc/ya-lt-agent:latest
    

    Где:

    • LOADTESTING_AGENT_CONFIG — (обязательный параметр) путь к конфигурационному файлу внешнего агента в контейнере.
    • LOADTESTING_AGENT_NAME — имя внешнего агента.
    • LOADTESTING_FOLDER_ID — идентификатор каталога.
    • LOADTESTING_SA_KEY_FILE — путь к файлу с авторизованными ключами в контейнере.

    Вместо файла с авторизованными ключами можно использовать следующие переменные окружения:

    • LOADTESTING_SA_ID — идентификатор сервисного аккаунта.
    • LOADTESTING_SA_KEY_ID — идентификатор авторизованного ключа сервисного аккаунта.
    • LOADTESTING_SA_KEY_PAYLOAD — значение закрытого авторизованного ключа сервисного аккаунта.

    Внешний агент авторизуется с помощью JWT.

    При каждом запуске Docker-контейнера внешний агент будет получать новый идентификатор в Load Testing. Вы можете сохранить один и тот же идентификатор между запусками, например, чтобы привязать результаты тестирования к конкретному агенту. Для этого используйте том Docker для хранения файла с идентификатором внешнего агента (параметр agent_id_file в конфигурационном файле агента). Данные в томе хранятся независимо от Docker-контейнера: если вы остановите или удалите контейнер, то том и данные в нем останутся.

    Пример запуска внешнего агента с постоянным идентификатором

    Создайте том Docker, например external_agent_1_volume:

    docker volume create external_agent_1_volume
    

    Запустите внешний агент с подключенным томом:

    docker run \
      -it \
      --mount source=external_agent_1_volume,target=/run \
      --mount type=bind,source=<путь_к_файлу_с_авторизованными_ключами>,target=/run/sa_key.json \
      --mount type=bind,source=<путь_к_конфигурационному_файлу>,target=/run/config.yaml \
      --env LOADTESTING_AGENT_CONFIG=/run/config.yaml \
      cr.yandex/yc/ya-lt-agent:latest
    
  2. Проверьте, что внешний агент доступен в Load Testing:

    Консоль управления
    1. В консоли управления выберите сервис Load Testing.

    2. На панели слева перейдите на вкладку Операции.

    3. Убедитесь, что операция Register an agent успешно завершена.

    4. На панели слева перейдите на вкладку Агенты.

    5. Убедитесь, что внешний агент, например external-agent, находится в статусе Ready for test.

Создайте тестСоздайте тест

Выполните нагрузочное тестирование. В поле Агенты выберите внешний агент, например external-agent.

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

Консоль управления
  1. В консоли управления выберите сервис Load Testing.
  2. На панели слева перейдите на вкладку Тесты.
  3. Выберите созданный ранее тест и посмотрите результаты.

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

Чтобы удалить внешний агент из Load Testing:

Консоль управления
  1. В консоли управления выберите сервис Load Testing.
  2. На панели слева перейдите на вкладку Агенты.
  3. Напротив агента, который вы хотите удалить, нажмите и выберите Удалить.
  4. Подтвердите удаление.

См. такжеСм. также

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

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

Предыдущая
Миграция результатов нагрузочного тестирования из OverLoad
Следующая
Нагрузочный тест с помощью JMeter
Проект Яндекса
© 2025 ООО «Яндекс.Облако»