Оптимизация размера образа — критический аспект при автоматизации браузерного тестирования с использованием Puppeteer. Правильное управление размерами страниц, изображений и ресурсов напрямую влияет на скорость выполнения скриптов, потребление памяти и стабильность тестов. В контексте Puppeteer оптимизация может касаться нескольких ключевых направлений: конфигурации браузера, работы с контентом страницы и обработки скриншотов или PDF.
Размер окна браузера определяет видимую область (viewport) страницы.
Puppeteer позволяет гибко управлять этим параметром через опцию
viewport при создании экземпляра страницы:
const browser = await puppeteer.launch();
const page = await browser.newPage();
await page.setViewport({ width: 1280, height: 720 });
Рекомендации по оптимизации:
viewport, вместо изменения размера одной и той же
страницы динамически.
Скриншоты часто являются самой ресурсоёмкой частью тестов. Puppeteer поддерживает настройку формата и качества изображений, что позволяет оптимизировать их размер без потери информативности.
await page.screenshot({
path: &
type: 'jpeg',
quality: 70,
fullPage: true
});
Ключевые моменты:
jpeg лучше подходит для фотографий и страниц с
большим количеством градиентов, а png — для страниц с
плоской графикой или прозрачными элементами.
quality позволяет снизить размер файла до 30–70%,
что существенно ускоряет обработку и хранение.
clip позволяет снимать только часть страницы, если
весь экран не нужен, что снижает нагрузку на память.
Многие страницы содержат тяжелые изображения, видео или сторонние скрипты, которые замедляют тесты и увеличивают размер используемой памяти. Puppeteer предоставляет возможности блокировки ресурсов:
await page.setRequestInterception(true);
page.on('request', request => {
if (['image', 'stylesheet', 'font'].includes(request.resourceType())) {
request.abort();
} else {
request.continue();
}
});
Преимущества:
Puppeteer часто используется для генерации PDF-документов из веб-страниц. Размер PDF можно оптимизировать за счёт выбора формата страницы, масштаба и качества шрифтов:
await page.pdf({
path: 'document.pdf',
format: 'A4',
printBackground: true,
scale: 0.8
});
Рекомендации:
scale) позволяет уменьшить разрешение
элементов и вес файла без потери читаемости.
A4 или Letter снижает
непредсказуемые разрывы и лишние пустые области.
printBackground) напрямую влияет на размер PDF.
Puppeteer создаёт полноценный экземпляр Chromium, поэтому управление памятью важно для больших тестовых прогонов:
page.goto(‘about:blank’).
headless:
true экономит ресурсы, особенно при множественных параллельных
тестах.
Оптимизация размера образа в Puppeteer — комплексная задача, включающая:
viewport.
Следование этим принципам позволяет ускорять тесты, уменьшать использование дискового пространства и создавать стабильные, масштабируемые сценарии автоматизации.