Как проверить сайт после релиза: smoke-тест и критерии отката

Как принять релиз в production: подтвердить версию, пройти критичный путь, проверить интеграции и заранее понять, когда нужен откат.

Релиз нельзя считать успешным только потому, что главная страница открылась. После выкладки нужно подтвердить, что в production работает новая версия, пройти короткий smoke-тест ключевых страниц и действий, проверить интеграции, а затем наблюдать за сайтом по заранее выбранным сигналам. Если критичный сценарий нарушен, команда должна применить согласованный план: откатить релиз, отключить проблемную функцию или начать восстановление.

Ниже — порядок проверки для владельца сайта, вебмастера и небольшой команды. Он подходит для выкладки кода, конфигурации, шаблона или серверного окружения. Для обновления только CMS, темы или плагина пригодится отдельный чек-лист после обновления CMS.

Чем приёмка релиза отличается от проверки главной

Открытая главная подтверждает лишь один запрос. Релиз может затронуть маршруты, кеш, фоновые задачи, права, базу данных, формы, API и файлы интерфейса. Сервер способен вернуть успешный HTTP-ответ, хотя посетитель увидит старую версию, пустой блок или нерабочую кнопку.

Приёмка должна ответить на три вопроса:

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

Доступность удобно контролировать внешним мониторингом. Исправность бизнес-сценария дополнительно проверяют действиями пользователя и данными самого приложения.

Подготовьте контрольный лист до выкладки

Для каждого критичного сценария запишите начальный URL, действие, ожидаемый результат и способ его подтвердить. Для формы недостаточно сообщения «Отправлено»: нужно проверить, что обращение дошло до разрешённого тестового получателя или тестового контура интеграции. Для каталога может потребоваться карточка, поиск или фильтр, если они менялись.

Зафиксируйте исходное состояние

Перед релизом сохраните:

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

Используйте собственную стабильную базовую линию, а не универсальный выдуманный порог. Для одного проекта важнее ответ каталога, для другого — личный кабинет или приём заявок.

Определите условия остановки

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

Если релиз меняет данные так, что простой возврат старой версии небезопасен, нужен отдельный план восстановления. Не стоит выяснять это уже после поломки.

Проведите smoke-тест сразу после релиза

Начните с небольшого набора проверок, который быстро показывает, можно ли оставлять новую версию в production.

Подтвердите версию и маршрут запроса

Используйте доступный команде идентификатор сборки, страницу версии, служебный health endpoint или другой безопасный признак. Если сайт работает через несколько серверов или CDN, убедитесь, что старый и новый варианты не чередуются из-за неполной выкладки или кеша.

Откройте основной адрес и важные внутренние URL. Проверьте итоговый адрес после редиректов, HTTP-статус, ожидаемый текст, загрузку стилей, скриптов и изображений. Повторите проверку в приватном окне без административной авторизации: пользователь может получать другой ответ, чем разработчик с активной сессией.

Пройдите главный пользовательский путь

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

Проверяйте конечный результат каждого шага. Нажатая кнопка не означает, что запрос обработан, а сообщение об успехе не доказывает передачу данных. Используйте согласованные тестовые учётные записи и не смешивайте техническую проверку с реальными заявками клиентов.

Сосредоточьтесь на изменённых областях

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

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

Проверяйте интеграции по результату, а не по кнопке

После релиза сайт может принять действие, но следующий сервис его не увидит. Для каждой изменённой интеграции нужен проверяемый результат:

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

Если сайт зависит от API, проверяйте endpoint критичных операций, а не только общий адрес. Подход к их выбору описан в материале о мониторинге API.

Сравните внешнюю проверку и данные приложения

Браузер разработчика показывает один маршрут из одной сети. Внешний запрос помогает увидеть, доступен ли домен, завершается ли HTTPS-соединение, какой статус возвращает страница и сколько занимает ответ.

После выкладки проверьте ключевой URL через инструмент проверки сайта и сравните результат с журналами приложения и инфраструктуры. Внешний сигнал отвечает на вопрос «что получил клиент», внутренние данные помогают понять причину.

Особенно важны расхождения:

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

Наблюдайте после успешного smoke-теста

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

Сравнивайте с исходным состоянием:

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

Web-Puls помогает регулярно проверять доступность выбранных страниц и быстрее узнавать, если после релиза URL перестал открываться или начал отвечать ошибкой. Такой контроль не заменяет функциональное тестирование, проверку данных и журналы приложения. Он закрывает другой риск: внешняя недоступность не остаётся незамеченной между ручными проверками.

Когда принимать релиз, а когда откатывать

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

Откат или другой подготовленный способ остановки нужен, если:

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

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

После отката повторите тот же smoke-тест. Возврат старой версии ещё не доказывает восстановление: могли остаться кеш, новая конфигурация, незавершённая миграция или зависшая очередь.

Практический пример: главная работает, заказ — нет

Представим релиз, который меняет карточку товара и обращение к сервису оформления. Главная и каталог отвечают успешно, но на шаге оформления API возвращает серверную ошибку, а заказ не создаётся.

Порядок действий:

  1. Подтвердить, что запрос обслуживает новая версия.
  2. Повторить путь на разрешённом тестовом товаре и тестовой учётной записи.
  3. Зафиксировать URL, действие и ответ без данных клиента.
  4. Сверить внешний результат с журналом приложения и состоянием интеграции.
  5. Выполнить план отката или отключения проблемной функции.
  6. После восстановления снова пройти оформление и проверить внешний мониторинг.

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

Итоговый чек-лист приёмки

Перед релизом:

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

После выкладки:

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

Перед закрытием:

  • завершено согласованное окно наблюдения;
  • нет необъяснимых новых ошибок;
  • мониторинг настроен на действительно важные URL;
  • результат приёмки и отклонения записаны для команды.

Если релиз уже вызвал сбой

Остановите новые изменения, зафиксируйте URL, время проявления, идентификатор версии, фактический ответ и последнее действие. Затем выполняйте свой план отката или восстановления. Не меняйте несколько настроек одновременно без фиксации: так труднее найти причину и подтвердить исправление.

Если проблему нужно разобрать технически, можно отправить заявку через форму профессиональной поддержки Web-Puls или использовать контактную информацию. Передавайте необходимые симптомы без паролей, cookies и данных клиентов.

Вывод

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

Разовый smoke-тест показывает состояние новой версии сейчас. Постоянный мониторинг дополняет его и помогает заметить, если важная страница станет недоступна позже. Вместе они дают проверяемое основание принять релиз.

Мониторинг сайтов

После обновления сайт может открываться, но отдельные страницы, формы или сценарии уже работать неправильно. Разбираем чек-лист, типовые сбои и быстрый следующий шаг: проверить URL или подключить мониторинг.

Проверьте свой сайт прямо сейчас

Введите адрес сайта: Web-Puls покажет HTTP-код, время ответа и базовую диагностику. Для постоянного контроля можно подключить мониторинг.

Хотите видеть такую историю по своему сайту?

Добавьте сайт в Web-Puls: мы будем проверять доступность, SSL и содержимое страницы.