Files
CompanySite/scripts/README-PERFORMANCE.md
T
Clintchiz d402256547
Deploy to Production / Build & Verify (push) Failing after 5m56s
Ping Search Engines / Notify Search Engines (push) Successful in 2s
Deploy to Production / Pre-Deploy Tests (push) Has been skipped
Deploy to Production / Deploy to Railway (push) Has been skipped
Deploy to Production / Deploy to Render (push) Has been skipped
Deploy to Production / Deploy to VPS (PM2) (push) Has been skipped
Deploy to Production / Deploy to Fly.io (push) Has been skipped
Deploy to Production / Post-Deploy Verification (push) Has been skipped
Deploy to Production / Notify on Failure (push) Successful in 2s
E2E Test Suite / Critical User Journeys (push) Has been skipped
E2E Test Suite / API Integration Tests (push) Has been skipped
E2E Test Suite / Smoke Tests (P0) (push) Failing after 11m26s
E2E Test Suite / Form Interaction Tests (push) Failing after 11m42s
E2E Test Suite / Destructive & Chaos Tests (push) Failing after 12m2s
E2E Test Suite / Cross-Browser Regression (chromium) (push) Failing after 16m14s
E2E Test Suite / Cross-Browser Regression (webkit) (push) Failing after 17m45s
E2E Test Suite / Cross-Browser Regression (firefox) (push) Failing after 25m23s
E2E Test Suite / Security Header Tests (push) Failing after 7m55s
E2E Test Suite / Test Report Summary (push) Failing after 20s
E2E Test Suite / Mobile Device Tests (push) Failing after 2h49m9s
Uptime Monitor / Health & Response Time (push) Failing after 2s
Uptime Monitor / SSL Certificate (push) Successful in 2s
Uptime Monitor / Send Alerts (push) Failing after 3s
Uptime Monitor / Record Uptime Success (push) Has been skipped
First Init
2026-03-21 16:46:46 +05:30

5.5 KiB

Performance Testing Scripts

Quick reference for performance testing and monitoring.


Quick Start

Test Current Server Performance

# Quick check (recommended)
curl -w "Time: %{time_total}s\n" -o /dev/null -s http://localhost:10000/

# Comprehensive test
python scripts/performance_test.py

# Shell script (Unix/Mac)
bash scripts/quick-perf-check.sh

Available Scripts

1. performance_test.py

Purpose: Comprehensive Python-based performance testing

Usage:

python scripts/performance_test.py

Features:

  • Tests multiple endpoints (pages + APIs)
  • Statistical analysis (mean, median, std dev)
  • Domain verification
  • Performance recommendations
  • JSON output support

Output:

  • Response time statistics per endpoint
  • Overall performance summary
  • Recommendations for slow endpoints
  • Pass/fail status

2. quick-perf-check.sh

Purpose: Fast performance spot-check

Usage:

# Default (localhost:10000)
bash scripts/quick-perf-check.sh

# Custom URL
bash scripts/quick-perf-check.sh https://workroot.in

Features:

  • Quick response time checks
  • Color-coded status indicators
  • Minimal dependencies (just curl)
  • Production-ready

3. lighthouse_audit.py

Purpose: Lighthouse performance audit

Usage:

python scripts/lighthouse_audit.py <url>

# Example
python scripts/lighthouse_audit.py http://localhost:10000

Features:

  • Full Lighthouse audit
  • Performance, accessibility, SEO scores
  • Best practices analysis
  • Detailed issue reporting

Note: May have encoding issues on Windows. Use WSL or fix Unicode output.


Performance Targets

Metric Excellent Good Needs Work
SSR Page Load < 200ms < 500ms > 500ms
API Response < 100ms < 200ms > 200ms
TTFB < 200ms < 300ms > 300ms

Core Web Vitals (Production)

Metric Good Needs Improvement Poor
LCP < 2.5s 2.5s - 4.0s > 4.0s
INP < 200ms 200ms - 500ms > 500ms
CLS < 0.1 0.1 - 0.25 > 0.25

Manual Testing with curl

Basic Response Time

curl -w "\nTime: %{time_total}s\n" -o /dev/null -s http://localhost:10000/

Detailed Timing

curl -w "\n
Total Time: %{time_total}s
DNS Lookup: %{time_namelookup}s
TCP Connect: %{time_connect}s
TLS Handshake: %{time_appconnect}s
Time to First Byte: %{time_starttransfer}s
HTTP Code: %{http_code}
\n" -o /dev/null -s http://localhost:10000/

Test Multiple Endpoints

for endpoint in / /contact /about /api/health.json; do
  echo "Testing $endpoint"
  curl -w "Time: %{time_total}s\n" -o /dev/null -s http://localhost:10000$endpoint
  echo ""
done

CI/CD Integration

GitHub Actions Example

- name: Performance Test
  run: |
    npm run build
    npm run preview &
    sleep 5
    python scripts/performance_test.py

Pre-deployment Check

# Build and test
npm run build
npm run preview &
sleep 5
python scripts/performance_test.py

# If all tests pass, deploy
if [ $? -eq 0 ]; then
  echo "Performance tests passed"
  # Deploy command here
else
  echo "Performance tests failed"
  exit 1
fi

Troubleshooting

Slow Response Times (> 500ms)

Possible Causes:

  1. Development server (not optimized)
  2. Cold start (first request)
  3. Large bundle size
  4. Unoptimized images
  5. Missing caching

Solutions:

# 1. Build for production
npm run build

# 2. Analyze bundle
npm run build -- --analyze

# 3. Check bundle size
du -sh dist/

# 4. Test production build
npm run preview

High Variance in Response Times

Possible Causes:

  1. Network issues
  2. System load
  3. Garbage collection
  4. Cache inconsistency

Solutions:

  • Run multiple iterations (10+)
  • Test during low system load
  • Close other applications
  • Clear caches between tests

Monitoring in Production

  • DataDog RUM: Real User Monitoring
  • New Relic: Application Performance Monitoring
  • Google Analytics: Core Web Vitals
  • Sentry: Performance tracking + errors

Custom Performance Monitoring

// Add to your app
if (typeof window !== 'undefined') {
  window.addEventListener('load', () => {
    const perfData = performance.getEntriesByType('navigation')[0];
    console.log('Page Load Time:', perfData.loadEventEnd - perfData.fetchStart, 'ms');
    console.log('DOM Interactive:', perfData.domInteractive - perfData.fetchStart, 'ms');
    console.log('TTFB:', perfData.responseStart - perfData.requestStart, 'ms');
  });
}

Best Practices

  1. Test Regularly: Run performance tests before each deployment
  2. Set Baselines: Document baseline performance metrics
  3. Monitor Trends: Track performance over time
  4. Test Production: Dev server performance != production performance
  5. Real Users: Use RUM to understand actual user experience
  6. Set Budgets: Define performance budgets and enforce them

Resources


Quick Reference

# Test homepage
curl -w "%{time_total}s\n" -o /dev/null -s http://localhost:10000/

# Comprehensive test
python scripts/performance_test.py

# Lighthouse audit
npx lighthouse http://localhost:10000 --view

# Bundle analysis
npm run build -- --analyze