Запуск — это одно выполнение теста на настоящем сайте. Главное его свойство: после запуска остаются доказательства — снимок каждого шага и результат каждой проверки. Если что-то пошло не так, видно, где именно и как это выглядело. Ниже — как запуск проходит и что означает его результат.
Если тест объявляет снимки для визуальных проверок, тот же запуск называют сборкой: у неё есть ветка (какая версия сайта проверяется), режим — полная, умная или сравнительная — и состояние проверки человеком. Работает всё то же самое плюс сравнение снимков с эталонами.
Как запускается
Тест попадает в очередь на сервере. Оттуда его забирает исполнитель. Браузерных исполнителей два: встроенный — безоконный браузер в контейнере, который работает сразу после установки, — и Chrome с дополнением в режиме исполнителя. Прогон забирает тот, кто первый успел, так что дважды он не выполнится; берётся он мгновенно, потому что исполнитель ждёт у самой двери очереди и хватает прогон, едва тот появился. Вам для этого ничего делать не нужно. Чем эти двое отличаются и когда какой нужен — в разделе Встроенный исполнитель.
Тот браузер, в котором идёт прогон, называют движком: у встроенного исполнителя это Chromium, у Chrome с дополнением — ваш Chrome. Рисуют они страницы чуть по-разному, поэтому снимки встроенного исполнителя образуют отдельное семейство эталонов, и продукт никогда не сравнивает их с образцами из Chrome — иначе каждая сборка выглядела бы как сплошная переделка страницы. Движок выбирают на проект и не смешивают: переход на другой даёт новые эталоны, их один раз просматривают и одобряют. Подробнее — в разделе Встроенный исполнитель.
Исполнителем может быть и сам сервер. Если все шаги теста — скрипты, сервер берёт такой тест из очереди так же мгновенно — без браузера, — а в строке исполнителя видно «сервер». Так серверные проверки не зависят от того, включён ли компьютер с Chrome.
Один браузер выполняет один запуск за раз. Это не недоработка, а осознанное решение: тест занимает вкладку и повторяет действия человека, а два человека в одной вкладке одновременно работать не могут. Если запусков много, ставят несколько исполнителей или отдельный компьютер под них.
У сборки можно сразу указать ветку (какую версию сайта проверяем) и режим: «полная» проверяет всё, «умная» берёт только затронутые места, «сравнительная» ставит рядом две среды. Состояние проверки — ждёт решения, одобрено, отклонено — сборка набирает по ходу. Всё это разобрано в разделе Проверка сборок.
Что происходит во время
- Исполнитель открывает отдельную вкладку и идёт по шагам теста по порядку.
- Каждый шаг оставляет снимок экрана и, где нужно, результаты проверок.
- Шаг со скриптом выполняется на сервере, а его текстовый вывод виден в строке этого шага.
- При сборке дополнительно снимаются визуальные снимки и загружаются на сервер.
- Шаги «Подготовка» и «Очистка» идут отдельными строками — если фаза упала, ошибка называет её по имени.
- В приложении видно, как шаги подсвечиваются по мере выполнения, — можно наблюдать за запуском в реальном времени.
- В конце вкладка закрывается сама.
В браузере прогон занимает отдельную вкладку, и на время запуска её содержимое видно на экране — поэтому такой прогон заметен для того, кто сидит за этим компьютером. У встроенного исполнителя окна нет вовсе: он работает в контейнере и на чьём-то экране ничего не открывает. Отсюда и удобное деление: наблюдать за прогоном глазами стоит на выделенной машине с Chrome, а повседневные и ночные прогоны спокойно идут без окна.
Результат запуска
- Пройдено — все шаги выполнились и все проверки прошли. Значит, проверяемая часть интерфейса работает как ожидалось.
- Проблемы — шаги прошли, но какая-то проверка не прошла. Достаточно одной, чтобы запуск считался проблемным: именно так продукт замечает поломки.
- Ошибка — тест не смог дойти до конца: шаг не сработал. Так бывает и из-за поломки на сайте, и из-за устаревшего действия. Если у шага включено «продолжать при ошибке», тест пойдёт дальше; иначе остановится на нём.
- Визуально — отдельная строка итога: «успех», «требуется ревью», «провал» или «нет данных». Она про сравнение снимков с эталонами и не заменяет вердикт по шагам и проверкам.
Проверки и шаги — это разные вещи, и совмещать их не стоит. Не пройденная проверка означает «на странице проблема», но тест продолжается и собирает остальные результаты. Ошибка шага означает «идти дальше нельзя» — тест останавливается. Визуальные отличия не сваливаются в ошибку шага: снимок отличается — сборка собирает отличия и ждёт решения человека.
Доказательства
Запуск не просто говорит «не прошло» — он показывает. В истории запуска лежат снимки всех шагов и полный список проверок, а проблемные места стоят первыми. Можно открыть нужный шаг и увидеть своими глазами, как выглядела страница в тот момент. Это и есть главное отличие от проверок «на глаз»: через месяц вы всё ещё сможете объяснить, что произошло. У шага со скриптом снимка нет — страницы у него нет; его доказательство — текстовый вывод и записи проверок, а неудачная проверка скрипта заводит проблему так же, как неудачная проверка правила.
Если исполнитель пропал
Компьютер выключили, браузер закрыли, пропала связь — запуск остаётся незавершённым. Через полчаса продукт помечает его ошибкой «исполнитель отключился»: не вечно же ему висеть в работе. Такой запуск можно поставить заново, и он начнётся с начала — незавершённый не продолжается сам, потому что снимки и результаты заново уже не соберёшь. То же правило работает и для прогонов на сервере: если сервер упал посреди такого запуска, через полчаса он закрывается ошибкой «исполнитель отключился», так что зависших запусков не остаётся.
Если прогоны идут по расписанию, теперь достаточно встроенного исполнителя: он живёт на сервере и не зависит от того, включён ли чей-то компьютер. Chrome с дополнением для этого не обязателен — его держат там, где нужно видеть прогон своими глазами.
Исполнителя можно поставить на паузу — например, на время ремонта или обновления. Перед этим он доработает текущую сборку и перестанет брать новые; когда работа возобновится, паузу снимают, и очередь снова идёт. То же самое действие в разделе Операции и работоспособность называется «осушить исполнителя».
Дальше: как запускать тесты по расписанию — в разделе Расписание.