Yandex Cloud
Поиск
Связаться с намиПодключиться
  • Документация
  • Блог
  • Все сервисы
  • Статус работы сервисов
    • Популярные
    • Инфраструктура и сеть
    • Платформа данных
    • Контейнеры
    • Инструменты разработчика
    • Бессерверные вычисления
    • Безопасность
    • Мониторинг и управление ресурсами
    • Машинное обучение
    • Бизнес-инструменты
  • Все решения
    • По отраслям
    • По типу задач
    • Экономика платформы
    • Безопасность
    • Техническая поддержка
    • Каталог партнёров
    • Обучение и сертификация
    • Облако для стартапов
    • Облако для крупного бизнеса
    • Центр технологий для общества
    • Облако для интеграторов
    • Поддержка IT-бизнеса
    • Облако для фрилансеров
    • Обучение и сертификация
    • Блог
    • Документация
    • Контент-программа
    • Мероприятия и вебинары
    • Контакты, чаты и сообщества
    • Идеи
    • Истории успеха
    • Тарифы Yandex Cloud
    • Промоакции и free tier
    • Правила тарификации
  • Документация
  • Блог
Проект Яндекса
© 2025 ООО «Яндекс.Облако»
Yandex Load Testing
  • Начало работы
    • Обзор сервиса
    • Агент
    • Выбор агента
    • Генератор нагрузки
    • Профиль нагрузки
    • Тестирующие потоки
    • Автостоп
    • Resource Check
    • Мониторинг агентов тестирования
    • Отчеты
    • Регрессии нагрузочных тестов
    • Результаты нагрузочного теста
    • Сравнение результатов нагрузочных тестов
    • Артефакты тестирования
    • Квоты и лимиты
  • Управление доступом
  • Правила тарификации
  • Справочник Terraform
  • Аудитные логи Audit Trails
  • История изменений
  • Обучающие курсы

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

  • Основные критерии
  • Дополнительные критерии
  • Критерии для определенного тега
  • Примеры использования
  1. Концепции
  2. Автостоп

Автостоп

Статья создана
Yandex Cloud
Улучшена
Dmitry A.
Обновлена 19 февраля 2025 г.
  • Основные критерии
  • Дополнительные критерии
  • Критерии для определенного тега
  • Примеры использования

Автостоп - это плагин, настраиваемый при создании теста, который позволяет автоматически остановить тест в зависимости от заранее установленных критериев.

Автостоп применяется для ограничения времени и ресурсов, предусмотренных для тестирования, или когда после наступления определенных событий дальнейшее тестирование становится нецелесообразным.

Сработавший критерий автостопа приводит к досрочному завершению теста. Чтобы определить какой именно критерий остановил тест, им присваиваются различные Коды завершения, которые можно использовать для автоматической оценки результатов теста.

Формат блока autostop в файле конфигурации тестирования yaml:

autostop:
  enabled: true
  package: yandextank.plugins.Autostop
  autostop:
    - <критерий_автостопа>(<параметры_критерия>)

Важно

В файле конфигурации блок autostop является обязательным, иначе тест не будет работать в новых версиях системы.
В блоке как минимум должен быть указан критерий limit — предельное время работы теста.
Значение критерия limit рекомендуется выставлять немного большим ожидаемой продолжительности теста, чтобы избежать не предусмотренного завершения теста автостопом при позитивном течении тестирования.

Основные критерииОсновные критерии

Критерий Описание
limit Обязательный критерий.
Тест остановится через указанный период времени.
Пример: limit(1m).
time Тест остановится, если в течение определенного периода среднее время ответа превысит установленное значение.
Примеры: time(1s500ms,30s), time(50,15).
Код завершения — 21.
http Тест остановится, если в течение определенного периода количество ответов с конкретными HTTP-кодами превысит установленные абсолютное или относительное значения. Используйте xx для всех ненулевых значений кодов.
Примеры: http(404,10,15), http(5xx,10%,1m).
Код завершения — 22.
net Аналогично http для net-кодов.
Код завершения — 23.
quantile Тест остановится, если в течение определенного периода выбранный процентиль запросов превысит установленное значение. Доступные процентили: 25, 50, 75, 80, 90, 95, 98, 99, 100.
Пример: quantile(95,100ms,10s), этот критерий остановит тест, если в течение 10 секунд 95 процентиль превысит 100 миллисекунд (в течение 10 секунд время обработки 5% запросов превысит 100 миллисекунд).
instances Тест остановится, если в течение определенного периода количество тестирующих потоков превысит установленное значение.
Примеры: instances(80%,30), instances(50,1m).
Код завершения — 24.
steady_cumulative Тест остановится, если в течение определенного периода совокупные процентили не изменяются.
Пример: steady_cumulative(1m).
Код завершения — 33.

Основные критерии не усредняются, они проверяются каждую секунду за указанный период. Например, критерий autostop=time(50,15) остановит тест, если в течение 15 секунд среднее время ответа за каждую секунду превышает 50 миллисекунд.

Дополнительные критерииДополнительные критерии

Критерий Описание
total_time Аналогично time, но суммарно за весь период времени (ответы, которые соответствуют критерию, могут быть не последовательными, но приходить за указанный период времени).
Пример: total_time(300ms,70%,3s).
Код завершения — 25.
total_http Аналогично http, но суммарно за весь период времени. См. total_time.
Примеры: total_http(5xx,10%,10s), total_http(3xx,40%,10s).
Код завершения — 26.
total_net Аналогично net, но суммарно за весь период времени. См. total_time.
Примеры: total_net(79,10%,10s), total_net(11x,50%,15s).
Код завершения — 27.
negative_http Инвертированный total_http.
Тест остановится, если в течение заданного времени суммарное количество ответов с HTTP-кодами, не соответствующими заданной маске, превысит установленные абсолютное или относительное значения. Используйте HTTP-код 200, чтобы удостовериться, что сервер отвечает.
Пример: negative_http(2xx,10%,10s).
Код завершения — 28.
negative_net Инвертированный total_net.
Тест остановится, если в течение заданного времени суммарное количество ответов с net-кодами, не соответствующими заданной маске, превысит установленные абсолютное или относительное значения.
Пример: negative_net(0,10%,10s).
Код завершения — 29.
http_trend Тест остановится, если в течение определенного периода тренд для определенных http-кодов остается отрицательным. Тренд — это сумма усредненного коэффициента линейной функции, рассчитанный для каждой пары точек за последние n секунд, и стандартного отклонения для него.
Пример: http_trend(2xx,10s).
Код завершения — 30.

Критерии для определенного тегаКритерии для определенного тега

Все критерии, кроме limit, могут применяться для определенного URI, помеченного тегом, а не для всего теста в целом.

Например, критерий time(1s,5s,/latest/index/) остановит тест, если в течение 5 секунд среднее время ответа только с URL-адреса с тегом /latest/index/ превысит 1 секунду.

Таким образом, можно проводить тестирование для каждого конкретного URI. Например:

autostop:
  enabled: true
  package: yandextank.plugins.Autostop
  autostop:
    - limit(5m)
    - http(4xx, 20%, 15s, case1)
    - http(4xx, 5%, 5s, case2)

Такой автостоп остановит тест, если в течение 15 секунд количество ответов URI с тегом case1 с http-кодом 4xx превысит 20%, или в течение 5 секунд количество ответов URI с тегом case2 с http-кодом 4xx превысит 5%.

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

  • HTTPS-тест с постоянной нагрузкой с помощью Phantom
  • HTTPS-тест со ступенчатой нагрузкой с помощью Pandora
  • Добавьте этап нагрузочного тестирования в файл конфигурации сценария CI
  • Нагрузочное тестирование с нескольких агентов
  • HTTP-тест с нагрузкой по сценарию с помощью Pandora
  • Развертывание и нагрузочное тестирование gRPC-сервиса с масштабированием в Yandex Managed Service for Kubernetes
  • Нагрузочное тестирование gRPC-сервиса

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

Предыдущая
Тестирующие потоки
Следующая
Resource Check
Проект Яндекса
© 2025 ООО «Яндекс.Облако»