Lighthouse предоставляет встроенные возможности эмуляции мобильных устройств для анализа производительности и доступности сайтов в условиях, приближенных к реальным мобильным устройствам. Эмуляция осуществляется через изменение User-Agent, размеров экрана, плотности пикселей и скорости сетевого соединения. Основные параметры эмуляции включают:
Эти настройки позволяют Lighthouse воспроизводить реальные условия, в которых пользователь взаимодействует с сайтом на мобильном устройстве.
Lighthouse включает предустановленные профили для популярных мобильных устройств, таких как iPhone X, Pixel 5 и других. Эти профили автоматически настраивают:
Применение профиля упрощает тестирование и обеспечивает сопоставимые результаты между разными анализами.
Для точной оценки производительности на мобильных устройствах важна эмуляция ограниченной вычислительной мощности и сетевых условий:
Lighthouse использует комбинацию этих параметров для измерения First Contentful Paint (FCP), Time to Interactive (TTI) и других метрик в условиях, близких к реальным.
При использовании Lighthouse в Node.js эмуляция настраивается через
объект config:
const lighthouse = require('lighthouse');
const chromeLauncher = require('chrome-launcher');
(async () => {
const chrome = await chromeLauncher.launch({ chromeFlags: ['--headless'] });
const options = { port: chrome.port, formFactor: 'mobile' };
const config = {
extends: 'lighthouse:default',
settings: {
emulatedFormFactor: 'mobile',
throttlingMethod: 'simulate',
screenEmulation: {
mobile: true,
width: 375,
height: 667,
deviceScaleFactor: 3,
disabled: false
},
throttling: {
rttMs: 150,
throughputKbps: 1600,
cpuSlowdownMultiplier: 4
}
}
};
const result = await lighthouse('https://example.com', options, config);
await chrome.kill();
})();
В этом примере задаются ширина и высота экрана, DPR, а также параметры сетевой и процессорной эмуляции для мобильного устройства.
Симуляция мобильных устройств позволяет измерять реальные показатели для конечного пользователя:
Использование эмуляции позволяет выявлять узкие места, которые не проявляются при анализе на десктопе, такие как медленная загрузка изображений, блокировка основного потока JavaScript или высокая нагрузка на процессор.
Для более точного тестирования можно задавать ориентацию
экрана (portrait или landscape) и
deviceScaleFactor, что особенно важно для адаптивных
интерфейсов и рендеринга графики. Например, изображения с высокой
плотностью пикселей будут корректно масштабироваться, а тестируемая
верстка не будет искажена.
Эмуляция мобильных устройств в Lighthouse является мощным инструментом анализа, позволяющим выявлять проблемы производительности, доступности и UX именно в тех условиях, в которых их видят реальные пользователи.