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 и в ближайшем будущем появится больше функциональности, например, отладка сетевых запросов и полноэкранный режим.