Smoke Testing
Smoke testing — автоматическая проверка развёрнутого приложения в headless-браузере перед активацией. Помогает выявить критические ошибки до того, как пользователи увидят приложение.
Как работает
Заголовок раздела «Как работает»-
Сборка завершена
После успешной сборки создаётся deployment в статусе
READY_TO_DEPLOY -
Deployment активирован
Файлы деплоя развёрнуты и доступны по URL
-
Smoke test запускается
Headless браузер (Playwright) открывает страницу и проверяет на ошибки
-
Результат
- Passed — deployment становится
LIVE - Failed — deployment получает статус
FAILEDс описанием ошибок
- Passed — deployment становится
Что проверяется
Заголовок раздела «Что проверяется»| Проверка | Описание |
|---|---|
| HTTP статус | Страница должна вернуть код 2xx или 3xx |
| Консольные ошибки | console.error в JavaScript коде |
| Сетевые ошибки | Неудачные запросы ресурсов (скрипты, стили, изображения) |
| White Screen | Пустое тело страницы (белый экран смерти) |
| Crash страницы | Критический сбой страницы в браузере |
Настройка
Заголовок раздела «Настройка»Включение/отключение
Заголовок раздела «Включение/отключение»Smoke testing отключён по умолчанию. Вы можете включить его для проекта:
-
Откройте настройки проекта
Перейдите в проект → Settings → Build & Deployment
-
Найдите секцию Smoke Test
-
Выключите переключатель
Режимы проверки
Заголовок раздела «Режимы проверки»Smoke test поддерживает три режима строгости:
| Режим | Описание | Когда использовать |
|---|---|---|
| Строгий | Любая ошибка приводит к неудаче | Production-критичные приложения |
| Обычный | Игнорируются CORS ошибки аналитики и сторонних SDK | Большинство проектов (по умолчанию) |
| Мягкий | Только HTTP 4xx/5xx и белый экран = неудача | Telegram Mini Apps, проекты со сторонними SDK |
Строгий режим (STRICT)
Заголовок раздела «Строгий режим (STRICT)»Максимально строгая проверка. Любая ошибка в консоли или сети приводит к неудаче теста.
Рекомендуется для:
- Production-критичных приложений
- Проектов с высокими требованиями к качеству
- Приложений без сторонних зависимостей
Обычный режим (NORMAL)
Заголовок раздела «Обычный режим (NORMAL)»Игнорирует известные безопасные ошибки:
- CORS ошибки от аналитики (Яндекс Метрика, Google Analytics)
- Ошибки Telegram Mini Apps SDK при запуске вне Telegram
- Ошибки сторонних tracking-систем
Рекомендуется для:
- Большинства веб-приложений
- Проектов с аналитикой
- SPA с социальными виджетами
Мягкий режим (LENIENT)
Заголовок раздела «Мягкий режим (LENIENT)»Тест проваливается только при критических ошибках:
- HTTP статусы 4xx и 5xx
- Белый экран (пустое тело страницы)
- Crash страницы
Все остальные ошибки в консоли игнорируются.
Рекомендуется для:
- Telegram Mini Apps
- Приложений со сторонними SDK
- Проектов с известными некритичными ошибками
Выбор режима
Заголовок раздела «Выбор режима»-
Откройте настройки проекта
Перейдите в проект → Settings → Build & Deployment
-
Найдите секцию Smoke Test
-
Убедитесь что smoke test включён
-
Выберите режим в выпадающем списке
Preview Protection
Заголовок раздела «Preview Protection»При включённой Preview Protection smoke testing автоматически использует внутренний bypass токен для доступа к защищённым деплоям.
Скриншоты
Заголовок раздела «Скриншоты»После каждого smoke test создаётся скриншот страницы. Вы можете просмотреть его на странице deployment.
Скриншот помогает:
- Визуально проверить корректность отображения
- Диагностировать проблемы при неудачном тесте
- Документировать состояние деплоя
Retry логика
Заголовок раздела «Retry логика»При неудаче smoke test автоматически повторяется:
- Инфраструктурные ошибки (проблемы с браузером) — до 5 повторов немедленно
- Ошибки теста (проблемы со страницей) — до 3 повторов
Если все попытки исчерпаны, deployment получает статус FAILED.
Troubleshooting
Заголовок раздела «Troubleshooting»Smoke test падает из-за CORS ошибок аналитики
Заголовок раздела «Smoke test падает из-за CORS ошибок аналитики»Решение: Переключите режим на Обычный или Мягкий.
CORS ошибки от аналитики (Яндекс Метрика, Google Analytics) — нормальное явление и не влияют на работоспособность приложения.
Telegram Mini App не проходит smoke test
Заголовок раздела «Telegram Mini App не проходит smoke test»Решение: Используйте Мягкий режим.
Telegram SDK выдаёт ошибки при запуске вне среды Telegram — это ожидаемое поведение.
White screen of death
Заголовок раздела «White screen of death»Если smoke test находит пустую страницу:
- Проверьте логи сборки на ошибки
- Убедитесь что entry point корректный
- Проверьте что все зависимости установлены
- Попробуйте локально собрать и запустить проект
HTTP 404 или 500
Заголовок раздела «HTTP 404 или 500»- Проверьте настройки output directory
- Убедитесь что фреймворк правильно определён
- Проверьте логи сборки
Тест проходит, но сайт не работает
Заголовок раздела «Тест проходит, но сайт не работает»Smoke test проверяет только начальную загрузку страницы. Для комплексного тестирования используйте:
- E2E тесты (Playwright, Cypress)
- Интеграционные тесты
- Мониторинг (Uptime checks)
Отключение smoke testing
Заголовок раздела «Отключение smoke testing»В некоторых случаях может потребоваться полностью отключить smoke testing:
- Статические сайты без JavaScript
- Быстрые итерации в разработке
- Проекты с нестандартной архитектурой
См. также
Заголовок раздела «См. также»- Деплои — обзор деплоев
- Preview Protection — защита preview деплоев
- Логи — просмотр логов сборки и деплоя