Skip to content

Releases: iBombit/lighthouse_custom

12.8.2

04 Sep 19:47
9a81245

Choose a tag to compare

📋 Summary

Added XHR/AJAX request monitoring to Lighthouse with visual warnings and CSV export capabilities for better performance analysis.

✨ Features Added

🔍 New Audits

  1. XHR Network Requests Audit (network-xhr-audit)

    • Tracks total duration of all XHR/AJAX requests
    • Shows red/yellow warnings when thresholds exceeded
    • Filters out static content and advertisements
  2. XHR Count Audit (xhr-count-audit)

    • Counts number of XHR/AJAX requests
    • Provides scoring based on request volume
    • Helps identify over-fetching issues

📊 CSV Reporting Integration

  • XHR metrics now included in performance CSV reports
  • XHR Requests Duration: Total time spent on XHR calls
  • XHR Requests Count: Number of XHR requests made

⚠️ Thresholds

  • Green: ≤500ms duration, ≤5 requests
  • Yellow: 500-2000ms duration, 5-15 requests
  • Red: ≥2000ms duration, ≥15 requests

🎯 Filtering

Excludes non-performance relevant requests:

  • Static resources (images, CSS, JS, fonts)
  • Advertising networks (DoubleClick, Google Ads, etc.)
  • Tracking scripts

📝 Files Changed

  • network-xhr-audit.js - XHR duration tracking
  • xhr-count-audit.js - XHR count monitoring
  • lighthouse.js - Audit registration
  • csv.js - CSV report export

What's Changed

  • XHR Performance Audits with Warning Status and CSV Reporting by @iBombit in #63

Full Changelog: 12.8.1...12.8.2

12.8.1

13 Aug 19:43
f5bb80c

Choose a tag to compare

What's Changed

1. Updated Dependencies

  • Lighthouse (lh): Upgraded to v12.8.1
  • Puppeteer (pptr): Upgraded to v24.16.1
  • es-main: Upgraded to 1.4.0
  • lh-pptr-framework: Upgraded to v1.2.3

2. Support for Selector Loading Time Measurement

Added the ability to measure loading times for specific selectors when using the navigationValidate feature.

📸 Example:
Loading time measurement example


3. Enhanced Screenshot Thumbnails Reporting

  • Screenshot thumbnails now include detailed timings to provide more actionable insights.
  • Can provide more screenshots for timespans compared to the default reporting capabilities.

📸 Example:
Enhanced screenshot thumbnails


4. CSVs

  • Added CSV performance reporting with threshold analysis
  • Generates performance metrics in spreadsheet-friendly format

Example Output

Timestamp Step Name Step Type URL Application Device Type Performance Score Metric Name Metric Value Metric Unit Metric Category Good Threshold Poor Threshold Threshold Status Improvement Needed Priority Level
2025-08-13T19:28:04.702Z [N]_https://demoqa.com/ Navigation https://demoqa.com/ demoqa desktop 76 Performance Score 76 score Core Web Vitals 90 50 NEEDS IMPROVEMENT Increase by 14 score MEDIUM
2025-08-13T19:28:04.702Z [N]_https://demoqa.com/ Navigation https://demoqa.com/ demoqa desktop 76 First Contentful Paint 1291 ms Core Web Vitals 1800 3000 GOOD - -
2025-08-13T19:28:04.702Z [N]_https://demoqa.com/ Navigation https://demoqa.com/ demoqa desktop 76 Largest Contentful Paint 3188 ms Core Web Vitals 2500 4000 NEEDS IMPROVEMENT Reduce by 688 ms MEDIUM

📜 Full Changelog

View the complete list of changes in 12.8.0...12.8.1.

12.8.0

16 Jul 19:46
3cf6674

Choose a tag to compare

What's Changed

  • fixed pptr issue when running not from root user by @iBombit in #59
  • lh v12.8.0; pptr v24.14.0 by @iBombit in #60

Full Changelog: 12.7.1...12.8.0

12.7.1

11 Jul 14:56
92b0a7c

Choose a tag to compare

What's Changed

  • lh v12.7.1; pptr v24.12.0 by @iBombit in #55
  • adding test examples for framework v1.2.0; new container by @iBombit in #57
  • added includetimestamp parameter for reporting by @iBombit in #58

🚀 Enhanced Framework Features

Page Class Enhancements

Mocha Test Integration
  • Added Mocha test context support: Enhanced navigation() method to accept test context as second parameter
    • New signature: navigation(browser, testContext, link, pages)
    • Automatic test naming: Uses testContext.test.title for Lighthouse step names
    • Fallback naming: Uses [N]_${this.constructor.name} when no test context provided
    • Location: page.js lines ~27-32
Browser Restart Functionality
  • Added pages parameter: When provided, triggers browser restart and automatic page object re-initialization
    • New behavior: Passing pages array automatically:
      • Kills current browser instance
      • Starts fresh browser instance
      • Re-initializes all page objects with new browser context
      • Ensures clean state for performance measurements
    • Use case: Essential for "cold navigation" tests that require fresh browser state
    • Example: await SomePage.navigation(browser, this, url, [page1, page2])
New Validation Method
  • Added navigationValidate() method: Navigate with automatic page validation and snapshot capture
    • Features:
      • Performs navigation followed by validation using pageValidate selector
      • Captures SUCCESS snapshot if validation passes
      • Captures FAILED snapshot if validation fails
      • Uses [S]_ prefix for snapshots to distinguish from navigation steps
    • Location: page.js lines ~42-57

📋 Migration Guide

For existing tests using navigation():

// Before
await SomePage.coldNavigation(browser, url)

// After  
await SomePage.navigation(browser, this, url)

Full Changelog: 12.6.0...12.7.1

12.6.0

08 May 16:36
f4a30a1

Choose a tag to compare

What's Changed

  • updated ui image to LH v12.6.0; framework v1.1.2 by @iBombit in #54

Full Changelog: 12.5.1...12.6.0

12.5.1

12 Apr 09:06
1bdc08e

Choose a tag to compare

What's Changed

  • updated lighthouse puppeteer and express deps for 12.5.1 by @iBombit in #49
  • framework 1.1.0 for lh 12.5.1 by @iBombit in #51
    We can now pass custom configs to bypass default hardcoded setups (desktop, mobile3g..., etc.)

for example:

{
"settings": {
"throttling": {
"rttMs": 100,
"throughputKbps": 15000,
"cpuSlowdownMultiplier": 2
},
"formFactor": "mobile"
}
}

Full Changelog: 12.4.0...12.5.1

12.4.0

24 Mar 08:53
1adb024

Choose a tag to compare

What's Changed

Full Changelog: 12.3.0...12.4.0

12.3.0

25 Jan 16:10
fa7401d

Choose a tag to compare

What's Changed

New packages; Reporting enhancements by @iBombit in #32
moving core/reporting/settings/logger modules outside by @iBombit in #33
updating packages for v12.2.0 by @iBombit in #34
Add slack notifications by @GeorgiyGorelik in #37
using latest framework with slack notifications by @iBombit in #38
using latest framework with slack notifications by @iBombit in #39
adding requests lib to use API calls whenever needed by @iBombit in #40
using npm module for whole framework; will store module code in framework branch 8df2474

Full Changelog: 12.1.0...12.3.0

12.1.0

26 Jun 07:26
fc00976

Choose a tag to compare

What's Changed

Full Changelog: 12.0.0...12.1.0

12.0.0

29 May 12:29
35544d3

Choose a tag to compare

What's Changed

  • puppeteer-har added; docker image build gh action; config enhancement… by @iBombit in #10
  • main docker file in root by @iBombit in #11
  • run test during PR only by @iBombit in #12
  • create folder for reports by @iBombit in #13
  • adding ability to navigate to any page by @iBombit in #14
  • fixing throttling methods for mobile views by @iBombit in #15
  • forgot login param by @iBombit in #16
  • bumping up LH to v12.0.0 by @iBombit in #17
  • dynamic LH version for testing by @iBombit in #18
  • reducing number of docker image pushes by @iBombit in #19
  • adding 2 new audits; improving throttling configuration by @iBombit in #20
  • always try to create report by @iBombit in #21
  • Added "csv-parser": "^3.0.0" lib by @KarenFlorykian in #22
  • added job to manually update already existing images by @iBombit in #23
  • gh actions newer versions; build from docker folder; delete report files by @iBombit in #24
  • updating deprecated gh actions stuff; fixed gh reporting by @iBombit in #25
  • duplicate in package by @iBombit in #26

New Contributors

Full Changelog: 11.7.1...12.0.0