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

271 lines
5.5 KiB
Markdown

# Performance Testing Scripts
Quick reference for performance testing and monitoring.
---
## Quick Start
### Test Current Server Performance
```bash
# 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:**
```bash
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:**
```bash
# 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:**
```bash
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
```bash
curl -w "\nTime: %{time_total}s\n" -o /dev/null -s http://localhost:10000/
```
### Detailed Timing
```bash
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
```bash
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
```yaml
- name: Performance Test
run: |
npm run build
npm run preview &
sleep 5
python scripts/performance_test.py
```
### Pre-deployment Check
```bash
# 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:**
```bash
# 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
### Recommended Tools
- **DataDog RUM:** Real User Monitoring
- **New Relic:** Application Performance Monitoring
- **Google Analytics:** Core Web Vitals
- **Sentry:** Performance tracking + errors
### Custom Performance Monitoring
```javascript
// 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
- [Web.dev Performance](https://web.dev/performance/)
- [Lighthouse Scoring](https://web.dev/performance-scoring/)
- [Core Web Vitals](https://web.dev/vitals/)
- [Astro Performance](https://docs.astro.build/en/guides/performance/)
---
## Quick Reference
```bash
# 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
```