Введение
Screenshot (screen capture, скриншот) – цифровое изображение, фиксирующее содержимое экрана или его части в определённый момент времени. В ИТ-контексте скриншоты применяются значительно шире, чем в бытовом использовании: они являются ключевым инструментом тестирования ПО, баг-репортинга, документирования пользовательского интерфейса и регрессионного тестирования.
В автоматизированном тестировании (например, в фреймворке Serenity BDD) скриншоты создаются автоматически на каждом шаге теста, формируя визуальный отчёт о выполнении сценария.
История и контекст
Функция создания снимков экрана появилась в первых GUI-системах в 1980-е годы. В ОС Mac и Windows команды PrintScreen/Cmd+Shift+3 стали стандартными горячими клавишами. Развитие веб-тестирования в 2000-е породило концепцию автоматических скриншотов при сбоях Selenium-тестов. В 2010-е появилось визуальное регрессионное тестирование (VRT), при котором скриншоты сравниваются попиксельно для выявления незамеченных UI-изменений. Инструменты: Percy, Applitools, Backstop.js.
Как это работает
Технические аспекты создания скриншотов:
- Системные API – OS предоставляет API для захвата экрана (GDI+/Direct3D в Windows, CoreGraphics в macOS, X11/Wayland в Linux).
- Браузерные скриншоты – Selenium WebDriver, Playwright, Puppeteer поддерживают метод takeScreenshot() для создания снимка DOM-содержимого браузера.
- Headless-браузеры – создание скриншотов без отображения GUI, необходимо для CI/CD-сред без монитора.
- Частичные скриншоты – захват конкретного HTML-элемента, а не всего экрана.
- Форматы – PNG (без потерь, для UI), JPEG (с потерями, для фото), WebP (современный формат с хорошим сжатием).
Где применяется
- Тестирование ПО: автоматические скриншоты при сбое теста для диагностики
- Баг-репортинг: скриншот как доказательство воспроизведения дефекта
- Документирование UI: создание руководств пользователя и обучающих материалов
- Визуальное регрессионное тестирование: сравнение попиксельно для выявления UI-изменений
- Служба поддержки: скриншоты от пользователей для диагностики проблем
Преимущества и ограничения
Преимущества: быстрая фиксация состояния UI, наглядность при баг-репортинге, визуальные доказательства в тест-отчётах (Serenity BDD, Allure), автоматизация в CI/CD для мониторинга UI-регрессий.
Ограничения: скриншоты не захватывают динамику и анимации (для этого нужна запись экрана), большой объём файлов при хранении истории тестов, ложные срабатывания в VRT при минимальных различиях рендеринга шрифтов.
Связь с другими понятиями
Screenshot/Screen Capture тесно связан с Scriptless Testing (инструменты без кода часто делают скриншоты автоматически) и Serenity BDD (генерирует living documentation со скриншотами каждого шага). В контексте автоматизированного тестирования скриншоты хранятся в артефактах CI/CD-пайплайна для анализа сбоев.