Lighthouse Service
Ein WebdriverIO-Service, der es Ihnen ermöglicht, Zugänglichkeits- und Performance-Tests mit Google Lighthouse durchzuführen.
Hinweis: Dieser Service unterstützt derzeit nur Tests, die auf Google Chrome oder Chromium laufen! Da die meisten Cloud-Anbieter keinen Zugriff auf das Chrome DevTools Protocol bieten, funktioniert dieser Service in der Regel nur, wenn Tests lokal oder über ein Selenium Grid v4 oder höher ausgeführt werden.
Installation
Am einfachsten ist es, @wdio/lighthouse-service als Dev-Abhängigkeit in Ihrer package.json zu behalten, über:
npm install @wdio/lighthouse-service --save-dev
Anleitungen zur Installation von WebdriverIO finden Sie hier.
Konfiguration
Um den Service zu nutzen, müssen Sie ihn einfach zu Ihrer Service-Liste in Ihrer wdio.conf.js hinzufügen, wie:
// wdio.conf.js
export const config = {
// ...
services: ['lighthouse'],
// ...
};
Verwendung
Der @wdio/lighthouse-service ermöglicht es Ihnen, Google Lighthouse-Zugänglichkeits- und Performance-Tests über WebdriverIO durchzuführen.
Performance-Tests
Der Lighthouse-Service ermöglicht es Ihnen, Performance-Daten von jedem Seitenaufruf oder Seitenübergang zu erfassen, der durch einen Klick verursacht wurde. Um ihn zu aktivieren, rufen Sie browser.enablePerformanceAudits(<options>) auf. Nachdem Sie alle notwendigen Performance-Daten erfasst haben, deaktivieren Sie ihn, um die Drosselungseinstellungen zurückzusetzen, z.B.:
import assert from 'node:assert'
describe('JSON.org page', () => {
before(async () => {
await browser.enablePerformanceAudits()
})
it('should load within performance budget', async () => {
/**
* this page load will take a bit longer as the DevTools service will
* capture all metrics in the background
*/
await browser.url('http://json.org')
let metrics = await browser.getMetrics()
assert.ok(metrics.speedIndex < 1500) // check that speedIndex is below 1.5ms
let score = await browser.getPerformanceScore() // get Lighthouse Performance score
assert.ok(score >= .99) // Lighthouse Performance score is at 99% or higher
$('=Esperanto').click()
metrics = await browser.getMetrics()
assert.ok(metrics.speedIndex < 1500)
score = await browser.getPerformanceScore()
assert.ok(score >= .99)
})
after(async () => {
await browser.disablePerformanceAudits()
})
})
Die folgenden Befehle mit ihren Ergebnissen sind verfügbar: