Описание системы функционального мониторинга интернет-магазинов
Общая логика проверки
В рамках сопровождения проектов мы используем функциональный мониторинг, который эмулирует поведение реального пользователя на сайте интернет-магазина.
Система автоматически открывает сайт в браузере и проходит заранее заданные пользовательские сценарии. Такой подход позволяет проверять не только доступность сайта как такового, но и работоспособность ключевых бизнес-процессов: переходы между страницами, работу каталога, карточки товара, корзины, оформления заказа и взаимодействия с backend-сервисами.
Иными словами, проверяется не просто факт, что сайт открывается, а то, что пользователь действительно может выполнить целевое действие.
Основной проверяемый сценарий
Один из базовых сценариев, который используется для интернет-магазинов, - это оформление заказа.
В рамках автоматической проверки система выполняет следующие действия:
Открывает главную страницу интернет-магазина.
Переходит в каталог товаров.
Открывает заранее подготовленную карточку товара.
Добавляет товар в корзину.
Переходит в корзину.
Переходит из корзины на страницу оформления заказа.
Заполняет необходимые поля покупателя.
Выполняет оформление заказа.
Проверяет, что заказ успешно создан или что пользователь получил корректное подтверждение.
Таким образом, система проходит полный путь покупателя от входа на сайт до завершения заказа.
Что именно проверяется
В процессе выполнения сценария система контролирует каждый этап пользовательского пути.
Проверяется:
- открывается ли сайт;
- доступна ли главная страница;
- корректно ли работает переход в каталог;
- открывается ли карточка товара;
- доступна ли кнопка добавления товара в корзину;
- добавляется ли товар в корзину;
- корректно ли открывается корзина;
- доступен ли переход к оформлению заказа;
- работают ли поля формы оформления заказа;
- отправляется ли запрос на создание заказа;
- приходит ли корректный ответ от backend;
- отображается ли успешный результат для пользователя.
Если на любом из шагов возникает ошибка, система фиксирует, на каком именно этапе произошел сбой.
Используемый инструмент
Для автоматизации таких проверок используется Playwright.
Playwright - это инструмент для browser automation и end-to-end тестирования. Он позволяет управлять реальным браузером и выполнять действия так, как их выполнял бы обычный пользователь: открывать страницы, нажимать кнопки, вводить данные в формы, ожидать загрузки элементов, отслеживать сетевые запросы и проверять итоговое состояние интерфейса.
Ключевое преимущество такого подхода заключается в том, что проверка выполняется не на уровне отдельных технических запросов, а на уровне реального пользовательского сценария.
То есть система видит сайт так же, как его видит пользователь в браузере.
Как работает проверка внутри
Для каждой проверки Playwright запускает изолированную браузерную сессию.
Внутри этой сессии система:
- открывает нужную страницу сайта;
- ожидает полной загрузки интерфейса;
- находит нужные элементы на странице;
- выполняет клики, ввод данных и переходы;
- ожидает завершения навигации и сетевых запросов;
- проверяет появление нужных элементов на экране;
- фиксирует результат выполнения сценария.
При этом Playwright автоматически ожидает готовности элементов перед действием. Например, перед кликом он проверяет, что кнопка действительно отображается, доступна и может быть нажата. Это снижает количество ложных ошибок, связанных с тем, что страница еще не успела загрузиться.
Пример сценария оформления заказа
На практике сценарий может выглядеть следующим образом.
Система открывает сайт интернет-магазина, затем переходит в каталог и выбирает заранее определенный тестовый товар. После этого товар добавляется в корзину, система проверяет, что корзина обновилась, и переходит к оформлению заказа.
Далее автоматически заполняются тестовые данные покупателя: имя, телефон, адрес и другие обязательные поля. После заполнения формы система нажимает кнопку оформления заказа и ожидает ответ от backend-сервиса, отвечающего за создание заказа.
Если backend возвращает успешный ответ, а на сайте появляется страница или сообщение об успешном оформлении заказа, проверка считается успешно пройденной.
Если на каком-либо этапе возникает ошибка, например товар не добавился в корзину, не открылась страница оформления заказа, не отправился запрос или backend вернул ошибку, система фиксирует сбой.
Уведомления об ошибках
Если сценарий завершается с ошибкой, система автоматически формирует уведомление.
На текущий момент уведомления отправляются в Telegram.
В уведомлении указывается:
- какой проект проверялся;
- какой сценарий выполнялся;
- на каком шаге произошла ошибка;
- краткое описание ошибки;
- техническая информация для анализа;
- отчет о прохождении сценария.
Это позволяет оперативно увидеть проблему и понять, на каком этапе пользовательского пути она возникла.
Отчет по ошибке
Помимо короткого уведомления, система формирует отчет по выполнению сценария.
В отчете отражается последовательность действий, которые были выполнены до момента ошибки. Это позволяет технической команде быстрее воспроизвести проблему и определить ее причину.
Например, отчет может показать, что:
- главная страница открылась успешно;
- каталог открылся успешно;
- карточка товара открылась успешно;
- товар добавился в корзину;
- переход в корзину был успешным;
- ошибка возникла при переходе к оформлению заказа.
Такой формат позволяет не тратить время на ручной поиск проблемного участка и сразу переходить к анализу конкретного шага.
Почему это важно для интернет-магазина
Для интернет-магазина критически важно, чтобы пользователь мог пройти весь путь до оформления заказа.
Обычный мониторинг доступности сайта может показать, что сайт работает, даже если при этом не работает корзина, не открывается checkout или не создается заказ. Поэтому мы используем именно функциональные проверки, которые позволяют контролировать ключевые бизнес-сценарии.
Такой подход помогает быстрее выявлять проблемы, которые напрямую влияют на продажи и пользовательский опыт.
Планируемое развитие
Сейчас мы ведем доработку системы уведомлений.
Помимо отправки алертов в Telegram, планируется отправлять уведомления также в корпоративный портал. Это позволит централизованно фиксировать инциденты, распределять их между ответственными специалистами и вести дальнейшую работу по ним внутри корпоративной среды.
Таким образом, Telegram будет использоваться как оперативный канал уведомлений, а корпоративный портал - как рабочая среда для обработки, контроля и дальнейшего сопровождения инцидентов.