β STATUS: FULLY FUNCTIONAL (Updated August 18, 2025)
A robust tool to run WebXPRT 4 on headless servers and VMs, providing reliable web performance benchmarks comparable to physical systems.
Successfully tested on: Debian GNU/Linux 12 (Contabo server)
Final Score: 76 points
Execution Time: ~8 minutes
Status: β
All issues resolved and working perfectly
- β Fully debugged and working - Runs WebXPRT 4 in headless mode
- β Resilient navigation - Direct access to test page, bypassing navigation issues
- β Robust error handling - Handles context switching and frame detachment
- β Smart monitoring - Progress tracking every 2 minutes with screenshots
- β Multiple score detection - Various patterns to detect final scores
- β Complete documentation - Screenshots, JSON results, and text logs
- β Cross-platform compatibility - Works with Chromium/Chrome on Linux
# System requirements (tested and working)
sudo apt-get update
sudo apt-get install -y nodejs npm chromium
node --version # Requires Node.js 14+ (tested with v22.17.1)# Clone or download the project
cd webxprt-runner
# Install dependencies
npm install puppeteer-core
# Verify browser installation
chromium --version
which chromium# Run the complete WebXPRT 4 benchmark
node webxprt-fixed-final.js
# Expected output:
# === WEBXPRT 4 HEADLESS RUNNER (FINAL) ===
# β
Navegador encontrado: /usr/bin/chromium
# π Iniciando navegador...
# ...
# π Β‘WebXPRT 4 ejecutado exitosamente!
# π Su puntuaciΓ³n de 76 es comparable con otros sistemas.- 50-100 points: Basic/Limited hardware (entry-level servers, VMs)
- 100-200 points: Mid-range hardware (standard servers, workstations)
- 200-300 points: High-performance hardware (powerful servers)
- 300+ points: Top-tier hardware (high-end workstations, gaming rigs)
| System | Score | Hardware Type |
|---|---|---|
| Contabo VPS (Debian 12) | 76 | Basic server performance |
All results are automatically saved in the results/ directory:
results/
βββ 1-initial-page.png # Screenshot of test page
βββ progress-1.png # Progress screenshots (every 2 min)
βββ progress-2.png
βββ progress-3.png
βββ progress-4.png
βββ final-state.png # Final test state
βββ webxprt-results-TIMESTAMP.json # Structured results
βββ webxprt-text-TIMESTAMP.txt # Raw text output
{
"score": 76,
"completed": true,
"timestamp": "2025-08-18T22:36:49.529Z",
"url": "https://www.principledtechnologies.com/benchmarkxprt/webxprt/2021/wx4_build_3_7_3/"
}- β Navigation problems: Now uses direct URL access
- β Button detection: Multiple strategies to find Start button
- β Context switching: Handles frame detachment gracefully
- β Monitoring resilience: Survives page navigation changes
- β Score extraction: Multiple regex patterns for score detection
- β API compatibility: Fixed puppeteer API usage
- Primary: Chromium (recommended and tested)
- Secondary: Google Chrome, Chrome Stable
- Auto-detection: Script finds available browser automatically
- OS: Linux (tested on Debian 12)
- Node.js: 14+ (tested with v22.17.1)
- RAM: 2GB minimum (4GB recommended)
- Network: Stable internet connection
- Display: Headless compatible (no GUI needed)
node webxprt-fixed-final.js#!/bin/bash
# run-multiple.sh
for i in {1..3}; do
echo "=== Run $i/3 ==="
node webxprt-fixed-final.js
sleep 60 # Cool-down period
done
# Calculate average from JSON files
grep '"score"' results/webxprt-results-*.json | awk -F: '{sum+=$2} END {print "Average:", sum/NR}'# Monitor progress in another terminal
watch -n 30 'ls -lt results/ | head -5'Error: "No se encontrΓ³ navegador"
# Install Chromium
sudo apt-get install -y chromium
# Or try Chrome
sudo apt-get install -y google-chrome-stableError: "Cannot find module 'puppeteer'"
npm install puppeteer-coreTest hangs or doesn't complete
- Check internet connection
- Verify results/ directory for progress screenshots
- Test usually completes in 8-20 minutes
- Look for final score in progress screenshots
Low scores (< 50)
- Normal for basic VMs and limited hardware
- Check CPU/memory allocation of your system
- Results are still valid for comparison
The script automatically saves debug information:
- Progress screenshots every 2 minutes
- Error screenshots on failures
- Complete text dumps of final page
# Before optimization
node webxprt-fixed-final.js
# Record baseline score
# After optimization (CPU, RAM, etc.)
node webxprt-fixed-final.js
# Compare improvementTest different cloud providers or instance types:
- AWS EC2 instances (t3.micro vs t3.medium)
- Google Cloud VMs (e2-micro vs e2-standard-2)
- DigitalOcean Droplets (1GB vs 2GB)
- Contabo VPS configurations
# GitHub Actions example
- name: Run WebXPRT Benchmark
run: |
cd webxprt-runner
timeout 1800 node webxprt-fixed-final.js
cat results/webxprt-results-*.jsonIf you encounter problems:
- Include your system info (
uname -a,node --version,chromium --version) - Share the error message
- Upload screenshots from
results/directory - Mention your network/location
- β Debian 12 + Chromium 139 + Node.js 22: Score 76 (8 minutes)
- π Ubuntu 22.04: Pending test
- π CentOS/RHEL: Pending test
This project is open source. WebXPRT 4 is owned by Principled Technologies.
π Project Status: FULLY FUNCTIONAL
Last tested: August 18, 2025 | Score: 76 | Duration: 8 minutes | Status: β
SUCCESS