Настройка параметров видеозаписи

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

Включение видеозаписи

Для начала, необходимо настроить видеозапись в контексте теста. Playwright позволяет записывать видео для каждого браузерного контекста. Видео будет автоматически сохраняться в указанное место, что облегчает процесс отладки.

Пример включения видеозаписи для контекста:

const { chromium } = require('playwright');

(async () => {
  const browser = await chromium.launch();
  const context = await browser.newContext({
    recordVideo: {
      dir: './videos', // Папка для сохранения видео
      size: { width: 1280, height: 720 } // Размер видео
    }
  });

  const page = await context.newPage();
  await page.goto('https://example.com');
  await page.click('button');
  await page.close();

  await browser.close();
})();

В этом примере создаётся новый контекст браузера, для которого активируется видеозапись с сохранением в папку ./videos и установкой размера видео. Важно помнить, что запись видео будет активна только в контексте этого браузера.

Параметры видеозаписи

При настройке видеозаписи, можно указать несколько ключевых параметров:

  1. dir – папка, в которой будет сохраняться видеозапись. Если путь не указан, видео будет сохраняться в текущей рабочей директории.
  2. size – размер видео. Можно указать разрешение в формате { width: <ширина>, height: <высота> }. Если параметр не задан, будет использован размер экрана по умолчанию.
  3. quality – качество видео (по умолчанию 80). Чем выше значение, тем лучше качество видео, но оно будет занимать больше места на диске.

Пример с параметром качества:

const context = await browser.newContext({
  recordVideo: {
    dir: './videos',
    size: { width: 1920, height: 1080 },
    quality: 90
  }
});

Получение видео по завершении теста

После завершения теста, Playwright предоставляет доступ к объекту видео, которое можно получить для дальнейшего использования или анализа. Важно помнить, что видеозапись будет доступна только после закрытия контекста или страницы, и вы можете извлечь её с помощью метода video.path().

Пример получения пути к записанному видео:

const { chromium } = require('playwright');

(async () => {
  const browser = await chromium.launch();
  const context = await browser.newContext({
    recordVideo: { dir: './videos' }
  });
  
  const page = await context.newPage();
  await page.goto('https://example.com');
  await page.click('button');
  
  const video = await page.video();
  console.log(`Видео сохранено по пути: ${video.path()}`);
  
  await browser.close();
})();

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

Удаление видеозаписи

Иногда требуется удалить видео после того, как оно было записано и проанализировано. Для этого можно использовать метод video.delete(), который удаляет файл видео с диска.

Пример удаления видеозаписи:

const { chromium } = require('playwright');

(async () => {
  const browser = await chromium.launch();
  const context = await browser.newContext({
    recordVideo: { dir: './videos' }
  });

  const page = await context.newPage();
  await page.goto('https://example.com');
  await page.click('button');

  const video = await page.video();
  await video.delete();  // Удаление видео после использования

  await browser.close();
})();

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

Советы по использованию видеозаписи

  1. Ограничение времени записи. Для длительных тестов полезно ограничить время записи, чтобы избежать чрезмерного использования памяти и диска. Playwright не имеет встроенной функции для автоматического ограничения времени записи, но можно контролировать время теста с помощью таймаутов и событий.

  2. Использование с параллельными тестами. В случае параллельного выполнения тестов на нескольких страницах или контекстах, каждый из которых может записывать видео, важно указывать уникальные папки для каждого теста или контекста, чтобы избежать перезаписи файлов.

  3. Использование видеозаписи в CI/CD. Запись видео может быть полезной при выполнении тестов в CI/CD-пайплайнах, так как это позволяет собрать дополнительные данные для отладки ошибок, которые могут возникать в процессе тестирования.

Окончание записи и управление результатами

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

Резюме

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