Перейти к содержимому

Smoke Testing

Smoke testing — автоматическая проверка развёрнутого приложения в headless-браузере перед активацией. Помогает выявить критические ошибки до того, как пользователи увидят приложение.

  1. Сборка завершена

    После успешной сборки создаётся deployment в статусе READY_TO_DEPLOY

  2. Deployment активирован

    Файлы деплоя развёрнуты и доступны по URL

  3. Smoke test запускается

    Headless браузер (Playwright) открывает страницу и проверяет на ошибки

  4. Результат

    • Passed — deployment становится LIVE
    • Failed — deployment получает статус FAILED с описанием ошибок
ПроверкаОписание
HTTP статусСтраница должна вернуть код 2xx или 3xx
Консольные ошибкиconsole.error в JavaScript коде
Сетевые ошибкиНеудачные запросы ресурсов (скрипты, стили, изображения)
White ScreenПустое тело страницы (белый экран смерти)
Crash страницыКритический сбой страницы в браузере

Smoke testing отключён по умолчанию. Вы можете включить его для проекта:

  1. Откройте настройки проекта

    Перейдите в проект → SettingsBuild & Deployment

  2. Найдите секцию Smoke Test

  3. Выключите переключатель

Smoke test поддерживает три режима строгости:

РежимОписаниеКогда использовать
СтрогийЛюбая ошибка приводит к неудачеProduction-критичные приложения
ОбычныйИгнорируются CORS ошибки аналитики и сторонних SDKБольшинство проектов (по умолчанию)
МягкийТолько HTTP 4xx/5xx и белый экран = неудачаTelegram Mini Apps, проекты со сторонними SDK

Максимально строгая проверка. Любая ошибка в консоли или сети приводит к неудаче теста.

Рекомендуется для:

  • Production-критичных приложений
  • Проектов с высокими требованиями к качеству
  • Приложений без сторонних зависимостей

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

  • CORS ошибки от аналитики (Яндекс Метрика, Google Analytics)
  • Ошибки Telegram Mini Apps SDK при запуске вне Telegram
  • Ошибки сторонних tracking-систем

Рекомендуется для:

  • Большинства веб-приложений
  • Проектов с аналитикой
  • SPA с социальными виджетами

Тест проваливается только при критических ошибках:

  • HTTP статусы 4xx и 5xx
  • Белый экран (пустое тело страницы)
  • Crash страницы

Все остальные ошибки в консоли игнорируются.

Рекомендуется для:

  • Telegram Mini Apps
  • Приложений со сторонними SDK
  • Проектов с известными некритичными ошибками
  1. Откройте настройки проекта

    Перейдите в проект → SettingsBuild & Deployment

  2. Найдите секцию Smoke Test

  3. Убедитесь что smoke test включён

  4. Выберите режим в выпадающем списке

При включённой Preview Protection smoke testing автоматически использует внутренний bypass токен для доступа к защищённым деплоям.

После каждого smoke test создаётся скриншот страницы. Вы можете просмотреть его на странице deployment.

Скриншот помогает:

  • Визуально проверить корректность отображения
  • Диагностировать проблемы при неудачном тесте
  • Документировать состояние деплоя

При неудаче smoke test автоматически повторяется:

  • Инфраструктурные ошибки (проблемы с браузером) — до 5 повторов немедленно
  • Ошибки теста (проблемы со страницей) — до 3 повторов

Если все попытки исчерпаны, deployment получает статус FAILED.

Решение: Переключите режим на Обычный или Мягкий.

CORS ошибки от аналитики (Яндекс Метрика, Google Analytics) — нормальное явление и не влияют на работоспособность приложения.

Решение: Используйте Мягкий режим.

Telegram SDK выдаёт ошибки при запуске вне среды Telegram — это ожидаемое поведение.

Если smoke test находит пустую страницу:

  1. Проверьте логи сборки на ошибки
  2. Убедитесь что entry point корректный
  3. Проверьте что все зависимости установлены
  4. Попробуйте локально собрать и запустить проект
  1. Проверьте настройки output directory
  2. Убедитесь что фреймворк правильно определён
  3. Проверьте логи сборки

Smoke test проверяет только начальную загрузку страницы. Для комплексного тестирования используйте:

  • E2E тесты (Playwright, Cypress)
  • Интеграционные тесты
  • Мониторинг (Uptime checks)

В некоторых случаях может потребоваться полностью отключить smoke testing:

  • Статические сайты без JavaScript
  • Быстрые итерации в разработке
  • Проекты с нестандартной архитектурой