Определение и назначение
Headless режим в Lighthouse представляет собой способ запуска инструментов аудита без графического интерфейса браузера. Это позволяет автоматизировать тестирование веб-страниц, интегрировать проверки производительности, доступности и SEO в CI/CD-процессы, а также получать отчёты без открытия визуального окна браузера.
Запуск Lighthouse в headless режиме
Для запуска в headless режиме используется Node.js API или командная
строка с указанием параметра --chrome-flags="--headless".
Пример CLI-команды:
lighthouse https://example.com --chrome-flags="--headless" --output=json --output-path=report.json
Пояснение ключевых параметров:
--chrome-flags="--headless" — активирует режим без
UI.--output=json — задаёт формат отчёта. Можно
использовать html для визуального представления.--output-path=report.json — путь сохранения
отчёта.Использование Node.js API
Headless режим полностью поддерживается через JavaScript API:
const lighthouse = require('lighthouse');
const chromeLauncher = require('chrome-launcher');
async function runLighthouse(url) {
const chrome = await chromeLauncher.launch({ chromeFlags: ['--headless'] });
const options = { logLevel: 'info', output: 'json', port: chrome.port };
const runnerResult = await lighthouse(url, options);
const reportJson = runnerResult.report;
console.log('Отчёт Lighthouse создан');
await chrome.kill();
}
runLighthouse('https://example.com');
Преимущества headless режима
Тонкости работы
--disable-gpu или --no-sandbox.--screenshot), либо включают частично headful режим
(--headless=false) при локальном тестировании.Расширенные возможности
emulatedFormFactor и
throttling, чтобы headless режим имитировал реального
пользователя.Примеры расширенной конфигурации Node.js
const lighthouse = require('lighthouse');
const chromeLauncher = require('chrome-launcher');
async function runAdvancedLighthouse(url) {
const chrome = await chromeLauncher.launch({ chromeFlags: ['--headless', '--disable-gpu', '--no-sandbox'] });
const options = {
logLevel: 'info',
output: 'json',
port: chrome.port,
emulatedFormFactor: 'mobile',
throttling: {
rttMs: 150,
throughputKbps: 1638,
cpuSlowdownMultiplier: 4
}
};
const runnerResult = await lighthouse(url, options);
console.log(runnerResult.report);
await chrome.kill();
}
runAdvancedLighthouse('https://example.com');
Рекомендации по оптимизации
performance, accessibility, seo,
best-practices) для ускорения анализа.Headless режим является ключевым инструментом для систематизированного тестирования и автоматического мониторинга качества веб-страниц, обеспечивая баланс между точностью измерений и эффективностью работы.