Skip to content

igarreta/webxprt

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

1 Commit
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

WebXPRT 4 Headless Runner

βœ… 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.

🎯 Latest Test Results

Successfully tested on: Debian GNU/Linux 12 (Contabo server)
Final Score: 76 points
Execution Time: ~8 minutes
Status: βœ… All issues resolved and working perfectly

πŸ“‹ Features

  • βœ… 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

πŸš€ Quick Start

Prerequisites

# 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)

Installation

# Clone or download the project
cd webxprt-runner

# Install dependencies
npm install puppeteer-core

# Verify browser installation
chromium --version
which chromium

Usage

# 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.

πŸ“Š Understanding Your Results

Score Interpretation

  • 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)

Recent Test Results

System Score Hardware Type
Contabo VPS (Debian 12) 76 Basic server performance

πŸ“ Generated Files

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

JSON Result Format

{
  "score": 76,
  "completed": true,
  "timestamp": "2025-08-18T22:36:49.529Z",
  "url": "https://www.principledtechnologies.com/benchmarkxprt/webxprt/2021/wx4_build_3_7_3/"
}

πŸ”§ Technical Details

Fixed Issues (August 2025)

  1. βœ… Navigation problems: Now uses direct URL access
  2. βœ… Button detection: Multiple strategies to find Start button
  3. βœ… Context switching: Handles frame detachment gracefully
  4. βœ… Monitoring resilience: Survives page navigation changes
  5. βœ… Score extraction: Multiple regex patterns for score detection
  6. βœ… API compatibility: Fixed puppeteer API usage

Browser Support

  • Primary: Chromium (recommended and tested)
  • Secondary: Google Chrome, Chrome Stable
  • Auto-detection: Script finds available browser automatically

System Requirements

  • 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)

πŸ“ˆ Benchmarking Guide

Single Test

node webxprt-fixed-final.js

Multiple Runs (for averaging)

#!/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}'

Automated Monitoring

# Monitor progress in another terminal
watch -n 30 'ls -lt results/ | head -5'

⚠️ Troubleshooting

Common Issues and Solutions

Error: "No se encontrΓ³ navegador"

# Install Chromium
sudo apt-get install -y chromium
# Or try Chrome
sudo apt-get install -y google-chrome-stable

Error: "Cannot find module 'puppeteer'"

npm install puppeteer-core

Test 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

Debug Mode

The script automatically saves debug information:

  • Progress screenshots every 2 minutes
  • Error screenshots on failures
  • Complete text dumps of final page

🎯 Use Cases

Server Performance Testing

# Before optimization
node webxprt-fixed-final.js
# Record baseline score

# After optimization (CPU, RAM, etc.)
node webxprt-fixed-final.js  
# Compare improvement

Cloud Instance Comparison

Test 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

CI/CD Integration

# GitHub Actions example
- name: Run WebXPRT Benchmark
  run: |
    cd webxprt-runner
    timeout 1800 node webxprt-fixed-final.js
    cat results/webxprt-results-*.json

🀝 Contributing

Reporting Issues

If you encounter problems:

  1. Include your system info (uname -a, node --version, chromium --version)
  2. Share the error message
  3. Upload screenshots from results/ directory
  4. Mention your network/location

Known Working Configurations

  • βœ… Debian 12 + Chromium 139 + Node.js 22: Score 76 (8 minutes)
  • πŸ”„ Ubuntu 22.04: Pending test
  • πŸ”„ CentOS/RHEL: Pending test

πŸ“„ License

This project is open source. WebXPRT 4 is owned by Principled Technologies.

πŸ”— Links


πŸŽ‰ Project Status: FULLY FUNCTIONAL
Last tested: August 18, 2025 | Score: 76 | Duration: 8 minutes | Status: βœ… SUCCESS

About

Java script to measure webxprt performance in a headless server

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors