Видеозапись тестов

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

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

Для включения видеозаписи используется конфигурационный файл cypress.config.js. Основная опция, отвечающая за запись, — video. Она может принимать значение true или false.

const { defineConfig } = require('cypress')

module.exports = defineConfig({
  video: true,
  videoCompression: 32, // уровень сжатия видео, меньшее значение — выше качество
  videosFolder: 'cypress/videos', // путь для хранения видеофайлов
})
  • videoCompression регулирует степень сжатия, что влияет на размер видео и качество. Рекомендуется использовать значения от 0 до 50, где 0 — минимальное сжатие, 50 — сильное сжатие.
  • videosFolder позволяет задать кастомное расположение для сохранения файлов.

Важно учитывать, что видеозапись по умолчанию создается только для тестов, выполняющихся через cypress run, а не через cypress open.

Запись видео отдельных тестов

Для точного контроля можно отключать видеозапись для отдельных тестов с помощью тега video: false в настройках it или describe.

describe('Тест без видео', { video: false }, () => {
  it('Проверка кнопки', () => {
    cy.visit('/example')
    cy.get('button').click()
    cy.contains('Успешно')
  })
})

Также можно включить видеозапись выборочно для определенных тестов или папок, изменяя конфигурацию динамически через Cypress.config().

Cypress.config('video', true)

Интеграция видеозаписи с CI/CD

В системах CI/CD видеозапись позволяет сохранять результаты автоматизированных прогонов, что упрощает анализ ошибок. Рекомендуется настроить сохранение видео только для неуспешных тестов, чтобы уменьшить объём хранилища:

module.exports = defineConfig({
  video: true,
  videoUploadOnPasses: false, // сохранять видео только при падении теста
})

При интеграции с GitLab CI, Jenkins или GitHub Actions можно настроить артефакты для хранения видеофайлов, что позволяет открывать их для просмотра при завершении пайплайна.

Формат и просмотр видео

Cypress сохраняет видео в формате MP4, который поддерживается большинством медиаплееров. Название видео соответствует структуре папок с тестами и имени файла .spec.js.

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

Советы по оптимизации видеозаписи

  • Для ускорения записи рекомендуется отключать дополнительные расширения браузера и минимизировать фоновые процессы.
  • Использовать сжатие (videoCompression) для экономии места, особенно при больших тестовых наборах.
  • Сохранять видео только для тестов, в которых высока вероятность ошибок, чтобы уменьшить объём ненужных файлов.
  • Настроить CI/CD на автоматическое удаление устаревших видео после определённого времени или количества запусков.

Примеры продвинутых конфигураций

Можно комбинировать видеозапись с скриншотами ошибок, чтобы создавать полноценные отчёты о падениях:

module.exports = defineConfig({
  video: true,
  screenshotsFolder: 'cypress/screenshots',
  videoUploadOnPasses: false,
  trashAssetsBeforeRuns: true, // удалять старые видео и скриншоты перед новым прогоном
})

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

Особенности работы в разных браузерах

Cypress поддерживает видеозапись в Chrome, Edge и Electron. В Firefox видеозапись доступна с ограничениями, и качество может быть ниже, чем в Chromium-браузерах. При выборе браузера для CI/CD рекомендуется использовать Electron или Chrome для стабильного качества видео.

Видео Cypress — это инструмент не только для отладки, но и для повышения прозрачности автоматизированного тестирования, особенно в крупных проектах с многокомпонентными интерфейсами. Правильная настройка и интеграция видеозаписи позволяют сократить время на диагностику проблем и ускорить выпуск стабильного ПО.