В библиотеке Lighthouse пороговые значения (thresholds) представляют собой критически важный механизм для автоматизации оценки качества веб-страниц. Они позволяют задавать минимально допустимые показатели для метрик производительности, доступности, SEO и других категорий аудита, после превышения которых тест считается неудачным.
Lighthouse предоставляет возможность конфигурировать пороговые
значения на уровне отдельных метрик или категорий. Конфигурация
выполняется через объект config.settings.thresholds, где
ключи соответствуют метрикам, а значения — числовым порогам.
Пример структуры:
const config = {
settings: {
thresholds: {
performance: 90,
accessibility: 95,
'first-contentful-paint': 2000,
'largest-contentful-paint': 2500,
'cumulative-layout-shift': 0.1
}
}
};
Пороговое значение метрики задаёт конкретное числовое ограничение, которое является критерием прохождения аудита:
Для категориальных порогов, таких как performance или accessibility, порог задается как процентное соотношение, отражающее оценку Lighthouse от 0 до 100.
Использование пороговых значений позволяет интегрировать Lighthouse в CI/CD процессы, например, через Node.js API:
import lighthouse from 'lighthouse';
import chromeLauncher from 'chrome-launcher';
async function runLighthouse(url) {
const chrome = await chromeLauncher.launch({chromeFlags: ['--headless']});
const options = {port: chrome.port, output: 'json', onlyCategories: ['performance', 'accessibility']};
const runnerResult = await lighthouse(url, options);
const report = runnerResult.lhr;
if (report.categories.performance.score * 100 < 90) {
console.log('Порог производительности не достигнут');
}
await chrome.kill();
}
В этом примере пороговое значение для производительности установлено на уровне 90%. При нарушении порога скрипт сигнализирует о проблеме, что позволяет автоматически контролировать качество на каждом деплое.
Lighthouse позволяет задавать пороги как для отдельных метрик, так и для категорий одновременно. При этом логика проверки учитывает оба уровня:
Такой подход даёт гибкость: можно строго контролировать критические показатели, например, LCP, и одновременно следить за общей производительностью страницы.
Пороговые значения должны быть реалистичными для текущего состояния проекта, но достаточно строгими, чтобы стимулировать оптимизацию и предотвращать деградацию качества.
Настройка порогов позволяет:
Использование порогов становится особенно важным в крупных проектах, где контроль производительности, доступности и SEO критичен для пользовательского опыта и бизнес-показателей.