A Google Lighthouse aggregate Test Reporter
npm install lighthouse-aggregate-report
More examples can be found inspecting the Tests
-
Default Lighthouse report (performance, accessibility, best-practices, seo):
import { lighthouseReport } from 'lighthouse-aggregate-report'; const options = { url: 'https://google.com', }; const results = await lighthouseReport(options); console.log(results) Output: { performance: 50, 'accessibility': 83, best-practices: 90, seo:100} Assertion: expect(results.performance >= 80).toBeTruthy();
-
Only selected metrics (e.g., 'accessibility'):
import { lighthouseReport, Categories } from 'lighthouse-aggregate-report'; const options = { url: 'https://google.com', lighthouse: { onlyCategories: [ Categories.accessibility, ] }, }; const results = await lighthouseReport(options); console.log(results) Output: { 'accessibility': 83 } Assertion: expect(results.accessibility).to.eq(myThreshold)
-
Selected Audit metrics:
import { lighthouseReport, Audits } from 'lighthouse-aggregate-report'; const options = { targetUrl: 'https://google.com', lighthouse: { onlyAudits: [ Audits.firstContentfulPaint, Audits.interactive ], }, }; const results = await lighthouseReport(options); console.log(results) Output: { performance: 97, accessibility: 80, 'best-practices': 100, seo: 85, interactive: 100, 'first-contentful-paint': 99 } Assertion: expect(results.interactive).to.eq(myThreshold)
-
Full head (will open the browser) to troubleshoot the Login (set
headed=true
in theLogin
parameter):import { lighthouseReport } from 'lighthouse-aggregate-report'; const options = { Login: { headed: true }, };
-
Mobile Report (set
isMobile=true
):import { lighthouseReport } from 'lighthouse-aggregate-report'; const options = { isMobile: true, targetUrl: 'https://google.com', };
-
Generate HTML Report (set
htmlReport=true
):import { lighthouseReport } from 'lighthouse-aggregate-report'; const options = { htmlReport: true, targetUrl: 'https://google.com', };
-
Debug errors (set
debug=true
):import { lighthouseReport } from 'lighthouse-aggregate-report'; const options = { targetUrl: 'https://notavalidurl.com/', lighthouse: { debug: true, }, }; results = await lighthouseReport(options); console.log(results.error)
Fork, add your changes and create a pull request