Skip to content

fasatrix/lighthouse-aggregate-report

Repository files navigation

lighthouse-aggregate-report

A Google Lighthouse aggregate Test Reporter

PDF CI

Installation

npm install lighthouse-aggregate-report

Usage

More examples can be found inspecting the Tests

  1. 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();
  2. 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)
  3. 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)
  4. Full head (will open the browser) to troubleshoot the Login (set headed=true in the Login parameter):

     import { lighthouseReport } from 'lighthouse-aggregate-report';
     const options = {
          Login: {
              headed: true
          },
     }; 
  5. Mobile Report (set isMobile=true):

     import { lighthouseReport } from 'lighthouse-aggregate-report';
      const options = {
           isMobile: true,
           targetUrl: 'https://google.com',
      };
  6. Generate HTML Report (set htmlReport=true):

     import { lighthouseReport } from 'lighthouse-aggregate-report';
      const options = {
           htmlReport: true,
           targetUrl: 'https://google.com',
      };
  7. 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)

Contribution

Fork, add your changes and create a pull request

About

A Google Lighthouse aggregate Test Reporter

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published