Настройка Chromatic для автоматического визуального тестирования

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

Разработка и обслуживание любых видов сайтов:

Информационные сайты или веб-приложения
Сайты визитки, landing page, корпоративные сайты, онлайн каталоги, квиз, промо-сайты, блоги, новостные ресурсы, информационные порталы, форумы, агрегаторы
Сайты или веб-приложения электронной коммерции
Интернет-магазины, B2B-порталы, маркетплейсы, онлайн-обменники, кэшбэк-сайты, биржи, дропшиппинг-платформы, парсеры товаров
Веб-приложения для управления бизнес-процессами
CRM-системы, ERP-системы, корпоративные порталы, системы управления производством, парсеры информации
Сайты или веб-приложения электронных услуг
Доски объявлений, онлайн-школы, онлайн-кинотеатры, конструкторы сайтов, порталы предоставления электронных услуг, видеохостинги, тематические порталы

Это лишь некоторые из технических типов сайтов, с которыми мы работаем, и каждый из них может иметь свои специфические особенности и функциональность, а также быть адаптированным под конкретные потребности и цели клиента

Услуги, которые мы предлагаем
Показано 1 из 1Все 2062 услуг
Настройка Chromatic для автоматического визуального тестирования
Простой
от 1 дня до 3 дней
Часто задаваемые вопросы

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

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

Расхождения интерфейса почти никогда не видны на «среднем» экране — они прячутся в узком наборе состояний: пустой список, длинное название, ошибка валидации, переполнение таблицы. Пройти эти состояния руками по всем разрешениям и ролям невозможно, поэтому ручные проверки вёрстки закрывают лишь малую часть реальных сочетаний.

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

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

Что даёт регулярное сравнение сборок интерфейса

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

Сколько расхождений ловится до релиза

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

Время приёмки и срывы сроков выпуска

Когда проверка расхождений стоит в конвейере сборки, приёмка релиза сокращается с нескольких дней до часов: вместо сплошного прохода по страницам команда смотрит короткий список отклонений с подсветкой разницы. Сроки выпуска перестают срываться из-за находок в последний день — спорные места всплывают на этапе правки, когда их правят за минуты. Нагрузка на поддержку интерфейса при этом падает: обращения вида «на телефоне кнопка наехала на текст» перестают приходить пачками после каждого обновления.

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

Сравнение подходов к визуальному тестированию

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

Вариант Когда подходит Ограничения
Снимки на этапе сборки Стабильная вёрстка, частые релизы Требует поддержки эталонов и чистых динамических данных
Проверка в разных браузерных окружениях Широкая аудитория, сложная вёрстка Прогон дольше, часть расхождений — артефакты отрисовки
Ручной просмотр по списку Новые экраны, анимации, состояния без макета Не масштабируется: пропуски на периферийных страницах
Смешанный режим Зрелый продукт с критичными сценариями Нужна дисциплина: пороги, приоритеты, разбор очереди

Где проходит граница пороговых значений

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

Обновление эталонов без остановки релизов

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

Порядок внедрения: от разбора макетов до передачи команды

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

Подготовка эталонов и инвентаризация состояний

  1. Инвентаризация страниц и состояний: собираем список маршрутов, разрешений экрана и вариантов интерфейса — модальные окна, ошибки валидации, пустые списки, гостевой и авторизованный вид. Покрытие фиксируем таблицей, чтобы новые экраны не оставались вне проверок.
  2. Эталонные снимки снимаем с проверенной сборки на фиксированных данных, а не с текущего стенда: иначе в базу сравнения попадают чужие правки и случайный контент.
  3. Запуск проверок в сборке: сравнение через Chromatic встраиваем в конвейер так, чтобы оно шло на каждое изменение в ветке и блокировало слияние при расхождении, а отчёт с подсветкой различий открывался прямо из задачи.

Отсечение ложных срабатываний

  • Ложные расхождения разбираем по причинам: анимации, подгрузка шрифтов, даты, случайные данные, отложенная загрузка изображений. Нестабильные блоки маскируем, время и анимации фиксируем, динамику подменяем предсказуемыми данными.
  • Регламент обновления эталонов: кто вправе обновить снимок, когда это осознанная правка вёрстки, а не подавление ошибки, и как причина фиксируется в истории.
  • Обучение команды: разработчики и тестировщики сами читают отчёт и отличают ложное расхождение от реального дефекта.

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

Артефакты в репозитории: конфигурации, схемы, регламенты

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

  • Файл конфигурации проверок: какие сборки сравниваются, с каким допуском и при каких условиях расхождение блокирует слияние изменений.
  • Карта покрытия страниц и состояний — таблица, где для каждого маршрута отмечено, какие разрешения экрана, темы и варианты данных попадают в сравнение.
  • Набор эталонных снимков с привязкой к ветке и тегу релиза: откат к предыдущей версии не требует пересъёмки.
  • Инструкция по обновлению эталонов — кто и в каком порядке подтверждает новое состояние интерфейса.
  • Регламент разбора расхождений: как отделять настоящую поломку вёрстки от шума анимаций, шрифтов и подгрузки данных.
  • Схема прав: кому доступен просмотр отчётов, кому — подтверждение эталонов.
  • Чек-лист подключения нового раздела: что добавить в карту покрытия, чтобы страница не осталась без проверок.

Политики доступа к отчётам и эталонам

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

Регламент обновления эталонов

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

Кейс: убрали ложные расхождения после смены вёрстки

Что было до: ручной просмотр и пропущенные дефекты

Проект — интернет-магазин с каталогом, корзиной и личным кабинетом: 40 ключевых экранов и по несколько состояний на каждом. Перед выпуском двое инженеров проходили их глазами по чек-листу — это занимало 3-4 часа и оставляло слепые зоны: поведение после ошибки валидации, длинные названия товаров, пустая корзина.

За квартал в выпуск ушло шесть дефектов вёрстки: сломанная сетка карточек на узких экранах, кнопка, наехавшая на текст при локализованных подписях, обрезанный блок цены. Ручной просмотр не масштабировался — чем больше экранов добавляли, тем меньше времени оставалось на каждый.

Что стало после: покрытие и время приёмки

Мы подключили Chromatic к сборке: каждый коммит собирает снимки компонентов и страниц в изолированном окружении, расхождения приходят в ревью с наложением «до/после». Покрытие выросло с двух десятков состояний, которые успевал проверить человек, до 180 снимков — включая состояния загрузки, ошибок и разные ширины экрана.

Отдельная работа — ложные срабатывания. Первые недели снимки «дрожали» на анимациях и подгрузке шрифтов; мы отключили анимации на время снимка, зафиксировали шрифты и замаскировали динамические блоки вроде счётчика товаров в корзине. Доля ложных срабатываний осталась ниже 5% — инженер открывает расхождение и сразу видит, дефект это или шум.

Время приёмки релиза сократилось с 3-4 часов до 40 минут, а пропущенные дефекты вёрстки в выпуске — с шести за квартал до нуля в последних трёх релизах. Если расхождений нет, релиз уходит без ручного обхода.

Что делать, если проверки интерфейса уже настроены

Частично настроенные проверки — частая ситуация: визуальное тестирование запускается, но покрывает один сервис или несколько ключевых экранов, а эталоны собирали вручную. Часть снимков устарела, порог срабатывания размыт, результат читают «на глаз».

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

Путь Когда подходит Ограничения и цена перехода
Расширение покрытия Базовые сценарии уже зелёные, нужны состояния: модальные окна, пустые и переполненные списки, ошибки валидации Растёт число снимков — требуются группировка по компонентам и правила допуска различий
Перенос проверок в сборку Проверки запускают вручную или отдельным заданием после выпуска Нужно стабилизировать окружение и отключить анимации, эталоны придётся принять заново
Перестройка с нуля Эталоны устарели, различий больше, чем совпадений, доверия к результатам нет Полный проход по экранам и состояниям, зато снимается долг ложных срабатываний

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

Начинаем с инвентаризации: какие экраны и состояния покрыты, какие различия помечены допустимыми, где отключены пороги. По ней выбираем путь и фиксируем точки, на которых проверка становится обязательной для выпуска.

Технические сомнения: шум, стабильность, поддержка

Визуальное тестирование ломается не на первом прогоне, а на десятом: снимки начинают падать из-за дат и слайдеров, и команда перестаёт им доверять. Ниже — пять сомнений, которые всплывают до внедрения, и то, как мы их закрываем.

Динамический контент даёт шум — как с ним быть?

Блоки с датами, счётчиками, слайдерами и аватарами маскируются — сравнение идёт по остальному макету. Анимации и карусели на момент снимка отключаются, данные подставляются фиксированные.

Оформление обновляется часто — эталоны переписывать руками?

Нет. Новые снимки принимаются как новая версия эталона и попадают на проверку вместе с кодом — видно, какие правки оформления приняты осознанно, а какие проскочили случайно.

Нужен ли отдельный стенд под прогоны?

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

Где хранятся эталоны и что с ними при ветвлении?

Эталоны лежат в репозитории рядом с кодом и привязаны к коммиту, поэтому откат ветки возвращает и снимки. История версий остаётся прозрачной: видно, кто и когда принял изменение.

Кто сопровождает это после передачи?

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

Обсудим задачу и вернёмся с оценкой и планом

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

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

В ответ присылаем состав покрытия — какие экраны и состояния закроет визуальное тестирование, а какие останутся за ручной проверкой, — схему этапов внедрения проверок и план работ с порядком приёмки результата. Проверки ставим на Chromatic и включаем сначала на одном сервисе: снимаем шум от динамических блоков, договариваемся о пороге расхождений, и только потом расширяем охват. Так первый результат заметен быстро, а правила приёмки не приходится переписывать по ходу.

Наши компетенции:

Последние работы

  • Разработка сайта компании B2B ADVANCE
    Разработка сайта компании B2B ADVANCE
    1542
  • Разработка веб-приложения для компании FEEDME
    Разработка веб-приложения для компании FEEDME
    1393
  • Разработка веб-сайта для компании БЕЛФИНГРУПП
    Разработка веб-сайта для компании БЕЛФИНГРУПП
    1081
  • Разработка интернет магазина для компании FURNORO
    Разработка интернет магазина для компании FURNORO
    1368
  • Разработка веб-приложения для компании Enviok
    Разработка веб-приложения для компании Enviok
    1139
  • Разработка веб-сайта для компании ФИКСПЕР
    Разработка веб-сайта для компании ФИКСПЕР
    1060