Releases: iBombit/lighthouse_custom
12.8.2
📋 Summary
Added XHR/AJAX request monitoring to Lighthouse with visual warnings and CSV export capabilities for better performance analysis.
✨ Features Added
🔍 New Audits
-
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
-
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
Full Changelog: 12.8.1...12.8.2
12.8.1
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.
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.
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
12.7.1
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.titlefor Lighthouse step names - Fallback naming: Uses
[N]_${this.constructor.name}when no test context provided - Location: page.js lines ~27-32
- New signature:
Browser Restart Functionality
- Added
pagesparameter: When provided, triggers browser restart and automatic page object re-initialization- New behavior: Passing
pagesarray 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 behavior: Passing
New Validation Method
- Added
navigationValidate()method: Navigate with automatic page validation and snapshot capture- Features:
- Performs navigation followed by validation using
pageValidateselector - Captures SUCCESS snapshot if validation passes
- Captures FAILED snapshot if validation fails
- Uses
[S]_prefix for snapshots to distinguish from navigation steps
- Performs navigation followed by validation using
- Location: page.js lines ~42-57
- Features:
📋 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
12.5.1
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
What's Changed
- Feature/framework v1.0.4 by @iBombit in #42
- bumped up version to 1.0.5 by @iBombit in #43
- v.1.0.6 with fixed reporting logs by @iBombit in #44
- LH v12.4.0; Framework v1.0.7 by @iBombit in #45
- framework v1.0.8 by @iBombit in #46
- framework v1.0.9 by @iBombit in #47
- reduced image size 2x by @iBombit in #48
Full Changelog: 12.3.0...12.4.0
12.3.0
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
12.0.0
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
- @KarenFlorykian made their first contribution in #22
Full Changelog: 11.7.1...12.0.0

