Lighthouse CI — это инструмент автоматизации аудита производительности, доступности, SEO и лучших практик веб-приложений с помощью библиотеки Lighthouse. Он позволяет интегрировать проверки в процессы CI/CD, обеспечивая регулярную оценку качества страниц.
Для начала необходимо установить CLI:
npm install -g @lhci/cli
Инициализация проекта создаёт конфигурационный файл
.lighthouserc.json:
lhci wizard
Этот процесс автоматически задаёт базовые параметры для запуска аудиторов, включая URL тестируемого сайта, количество запусков и типы отчётов.
.lighthouserc.jsonФайл конфигурации содержит ключевые блоки:
ci.collect — настройки сбора данных:
url или urls — список страниц для
анализа.numberOfRuns — количество повторных запусков для
статистической достоверности.settings — опции Lighthouse, включая
emulatedFormFactor, throttlingMethod и
другие.ci.assert — правила прохождения тестов:
"assert": {
"assertions": {
"categories:performance": ["error", {"minScore": 0.9}],
"categories:accessibility": ["warn", {"minScore": 0.95}]
}
}
ci.upload — параметры публикации результатов:
target может быть temporary-public-storage
для быстрого тестирования или интеграция с сервером Lighthouse CI.Команда для запуска аудита:
lhci collect
Основные настройки:
--no-sandbox.Пример запуска для локального приложения:
"collect": {
"staticDistDir": "./build",
"numberOfRuns": 3
}
Каждая страница анализируется несколько раз для получения усреднённых метрик. Это важно, поскольку показатели могут варьироваться в зависимости от загрузки сети и ресурсов.
Модуль assert позволяет автоматизировать контроль качества:
Пример расширенной настройки:
"assert": {
"assertions": {
"categories:performance": ["error", {"minScore": 0.9}],
"metrics:largest-contentful-paint": ["warn", {"maxNumericValue": 2500}],
"metrics:cumulative-layout-shift": ["error", {"maxNumericValue": 0.1}]
}
}
Ошибки и предупреждения отображаются в отчёте CI, что позволяет блокировать слияние PR при ухудшении показателей.
Модуль upload управляет отправкой результатов:
Пример использования:
lhci upload --target=temporary-public-storage
После загрузки можно получить URL с интерактивным отчётом, включая графики производительности, таблицы Lighthouse-метрик и рекомендации по исправлению проблем.
Применение Lighthouse CI в автоматизации включает три этапа:
Пример GitHub Actions workflow:
name: Lighthouse CI
on: [push, pull_request]
jobs:
lhci:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/setup-node@v3
with:
node-version: '20'
- run: npm ci
- run: npm run build
- run: lhci autorun
Команда lhci autorun автоматически выполняет сбор,
проверку и загрузку отчётов.
numberOfRuns снижает влияние случайных колебаний
метрик.Lighthouse CI позволяет превратить Lighthouse из инструментa ручного анализа в полноценный компонент автоматизированного тестирования веб-продукта, обеспечивая контроль качества на всех этапах разработки.