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
5.5 KiB
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:
- Development server (not optimized)
- Cold start (first request)
- Large bundle size
- Unoptimized images
- 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:
- Network issues
- System load
- Garbage collection
- Cache inconsistency
Solutions:
- Run multiple iterations (10+)
- Test during low system load
- Close other applications
- Clear caches between tests
Monitoring in Production
Recommended Tools
- 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
- Test Regularly: Run performance tests before each deployment
- Set Baselines: Document baseline performance metrics
- Monitor Trends: Track performance over time
- Test Production: Dev server performance != production performance
- Real Users: Use RUM to understand actual user experience
- 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