Playwright предоставляет мощный инструмент для тестирования веб-приложений, включая функциональность записи и анализа трассировки тестов с помощью Trace Viewer. Этот инструмент позволяет разработчикам и тестировщикам анализировать каждый шаг теста, выявлять причины ошибок и улучшать стабильность тестов. Он предоставляет визуальное представление всех событий, происходящих во время выполнения теста, включая навигацию, взаимодействие с элементами, сетевые запросы и ошибки.
Трассировка (trace) в контексте Playwright — это детализированное описание всех событий, происходящих в ходе выполнения теста. Это может включать взаимодействие с элементами страницы, навигацию, сетевые запросы, скриншоты, записи видео и другие действия. Трассировка хранится в специальном формате, который можно использовать для последующего анализа.
Для того чтобы использовать Trace Viewer, необходимо сначала включить запись трассировки. Это делается с помощью API Playwright. Важный момент — трассировки записываются автоматически при запуске теста, но нужно настроить соответствующие параметры для их сохранения.
Пример настройки трассировки в Playwright:
const { test, expect } = require('@playwright/test');
test('Тест с трассировкой', async ({ page, browserContext }) => {
await browserContext.tracing.start({
screenshots: true,
snapshots: true,
});
await page.goto('https://example.com');
await page.click('text=Some button');
await expect(page).toHaveText('Some expected text');
await browserContext.tracing.stop({ path: 'trace.zip' });
});
Этот код активирует трассировку, начиная с момента перехода на
страницу, и записывает её в файл trace.zip. Важно, что
параметр screenshots: true позволяет записывать скриншоты,
а snapshots: true — снимки состояния страницы. Это
позволяет получить полную картину происходящего на странице в процессе
теста.
После того как трассировка будет завершена и сохранена в файл, её можно открыть с помощью Trace Viewer. Для этого достаточно ввести команду в терминале:
npx playwright show-trace trace.zip
Этот инструмент откроет трассировку в виде веб-интерфейса, где можно просматривать все действия, происходившие во время теста. Интерфейс Trace Viewer разделён на несколько ключевых разделов.
В Trace Viewer отображается временная шкала всех событий, произошедших в ходе теста. Хронология даёт точное представление о том, в каком порядке происходили действия, а также помогает легко найти моменты, которые могли привести к сбою теста.
Каждое событие на шкале может быть проанализировано, включая:
Каждое событие может быть выведено с дополнительной информацией, такой как время выполнения, ошибки и статусы.
Если трассировка была настроена на запись скриншотов и видео, в Trace Viewer можно просматривать все изображения и видеоматериалы, связанные с тестом. Это позволяет детально анализировать, как менялся интерфейс страницы в процессе выполнения теста и что именно увидел пользователь в момент взаимодействия.
При обнаружении ошибки в тесте можно вернуться к соответствующему скриншоту или кадру видео и понять, что именно привело к сбою.
Каждое действие в тесте отображается на временной шкале, и вы можете кликать на события, чтобы детально увидеть, что происходило в момент их выполнения. Например, можно нажать на событие “клик по кнопке” и увидеть состояние страницы на тот момент, включая все изменения DOM, сетевые запросы и другие действия.
Trace Viewer позволяет просматривать сетевые запросы, сделанные в ходе теста. Для каждого запроса отображаются:
Это полезно для диагностики ошибок, связанных с отсутствием или некорректными данными на сервере. Например, если тест не может продолжиться из-за ошибки в сети, Trace Viewer позволит быстро найти проблему.
Если в тесте произошли ошибки, такие как ассерты или исключения, Trace Viewer выделяет их на шкале времени. Это помогает локализовать точку сбоя и понять, что именно привело к ошибке.
Использование Trace Viewer значительно облегчает процесс отладки, поскольку он предоставляет всю информацию в удобном виде. Чтобы эффективно использовать этот инструмент:
Trace Viewer является незаменимым инструментом для глубокой диагностики и отладки тестов в Playwright, предоставляя всё необходимое для быстрого и точного анализа.