Блог и новости

Добавлена трассировка сбоев Playwright в синтетических проверках Pingera

2025-10-07 17:30 Проверки Новости Блог
Мы уже дали вам полный контроль над синтетическими проверками с помощью собственных Playwright-сценариев, что позволяет имитировать любое сложное поведение пользователя.

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

Трассировка сбоев Playwright теперь в Pingera

Мы рады объявить о внедрении автоматической трассировки (Trace) для всех неудавшихся синтетических проверок на базе Playwright! Это не просто новый отчет – это ваша "машина времени" для отладки, которая позволяет воспроизвести выполнение теста шаг за шагом и быстро найти корень проблемы, даже если сбой носит плавающий характер.
Теперь, когда ваш Playwright-сценарий завершается ошибкой, мы автоматически записываем полную трассировку выполнения (trace) и загружаем её в безопасное хранилище. Вы получите прямую ссылку на скачивание файла трассировки прямо в отчете о проверке. Больше деталей в документации.

Как это работает под капотом?

Playwright Trace Viewer — это золотой стандарт для отладки. Мы используем встроенную функцию трассировки и настроили наш рантайм на режим retain-on-failure.

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

Пример сбоя: Искусственно вызванная ошибка

Чтобы увидеть магию трассировки в действии, давайте напишем простой, но заведомо ломающийся скрипт. Наша задача – перейти на главную страницу Pingera и попытаться найти текст, которого там нет.
import { test, expect } from '@playwright/test';

test('Сценарий: Имитация многошагового процесса и ожидаемый сбой', async ({ page }) => {
    // 1. Переход на главную страницу Pingera
    await page.goto('https://pingera.ru/');
 
    // 2. Имитация клика по кнопке (например, навигация в Документацию)
    await page.getByRole('link', { name: 'Документация' }).click();
 
    // 3. Преднамеренно проваливаем тест: пытаемся найти текст,
    // которого нет на странице Playwright.
    // Тест провалится по таймауту ожидания (обычно 5-10 секунд).
    await expect(page.getByText('Этот текст абсолютно точно отсутствует')).toBeVisible(); 
});
Когда этот скрипт будет запущен в Pingera, Playwright, не найдя элемент, выбросит ошибку, и тест даст сбой. В этот момент наш рантайм автоматически соберет файл трассировки .zip, который вы увидите в деталях результатов проверки.

Как читать трассировку Playwright (Trace Viewer)

Скачав файл, вы можете открыть его двумя способами:
  1. Онлайн-просмотр: Перейдите на официальный сайт trace.playwright.dev и загрузите туда ваш .zip файл.
  2. Локальный просмотр: Если вы хотите анализировать локально, используйте команду:
npx playwright show-trace trace-file-name.zip
После загрузки вы увидите интерфейс, который разделен на несколько ключевых секций :
  • Временная шкала действий (Timeline): Полная последовательность всех шагов, выполненных тестом, с точными таймингами. Здесь вы сразу увидите, на каком шаге произошел сбой.
  • Скриншоты (Screenshots): Визуальное состояние страницы до и после каждого действия. Вы увидите, что видел браузер, когда пытался выполнить шаг с ошибкой.
  • Снимки DOM (DOM Snapshot): Полная структура HTML-документа в момент каждого действия. Это критически важно, чтобы понять, почему селектор не сработал.
  • Сетевая активность (Network): Все HTTP-запросы и ответы, выполненные браузером во время теста. Отлично подходит для диагностики проблем с медленной загрузкой или неработающими API.
  • События и логи консоли (Console): Сообщения об ошибках и отладочная информация, включая console.log из вашего скрипта.
  • Стек вызовов (Call Stack): Точное место в коде, где произошла ошибка.
Трассировка позволяет воспроизвести выполнение теста шаг за шагом, как в замедленной съемке, и ответить на вопрос: "Почему тест не смог сделать то, что я от него ожидал?".

Заключение

Интеграция полной трассировки сбоев Playwright – это значительный шаг в сторону более глубокой и эффективной отладки для наших пользователей. Теперь вы не просто знаете, что ваш сайт не работает; вы знаете, почему, когда и где конкретно произошел сбой.
Этот функционал дополняет и без того богатый отчет о производительности, включая Web Vitals (TTFB, FCP, LCP) и детальные сетевые тайминги , делая синтетические проверки Pingera по-настоящему незаменимым инструментом для QA, SRE и DevOps команд.
Трассировка доступна во всех тарифах, включая Фри. Можно пробовать! :)