Перейти к основному содержимому

Time Travel

Обзор

Time Travel — это новый инструмент Testplane UI, который позволяет наблюдать за ходом выполнения тестов в реальном времени, а также записывать и воспроизводить ход прохождения теста.

  • Time Travel записывает снимки DOM-дерева, то есть не скриншоты или видео, а настоящую DOM-разметку
  • Вес одного снапшота в среднем составляет около 200КБ благодаря сжатию и инкрементальному алгоритму записи
  • Весь функционал доступен как в рамках GUI, так и в статическом отчете, полученном из любого CI

Начало работы

Необходимо установить свежие версии testplane и html-reporter (стабильная поддержка появилась в testplane@8.29.2 и html-reporter@10.18.0):

npm i -D testplane@latest html-reporter@latest

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

npx html-reporter gui

Для того, чтобы включить Time Travel в CI, необходимо задать опцию timeTravel в конфиге testplane:

export = {
/* ... */
timeTravel: "on", // Также можно указать "retries-only" или "last-failed-run"
};

Подробнее об этих опциях можно узнать в справочнике по конфигурации.

Использование Time Travel

После активации Time Travel во всех поддерживаемых браузерах перед запуском будет отображаться окно плеера. Во время прогона теста в него будет стримиться происходящее в браузере.

По завершении прогона теста можно воспроизвести снятые снапшоты и перемещаться во времени. При наведении на конкретный шаг плеер покажет состояние браузера на момент его выполнения.

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

Настройка Time Travel

В данный момент всё управление записью снапшотов происходит с помощью опции timeTravel в конфиге Testplane. Полную информацию можно узнать в справочнике по конфигурации.

Также обратите внимание на то, что html-reporter автоматически выставляет необходимые настройки в режиме GUI. Если по каким-то причинам вам это не подходит, это можно отключить в панели настроек — в этом случае будет использоваться проект конфига без изменений:

к сведению

Мы активно развиваем Time Travel и в ближайшем будущем появится больше функциональности, например, отладка сетевых запросов и полноэкранный режим.