CP_AUTOMATION/scripts/LOAD_TEST_ISSUES_FIXED.md
2025-12-12 19:54:54 +05:30

3.6 KiB

Load Test Issues - Analysis & Fixes

🔍 Issues Identified from Terminal Output

1. CRITICAL: Too Many Concurrent Browsers (500)

Error: DevToolsActivePort file doesn't exist

Root Cause:

  • Script tried to create 500 concurrent Chrome browsers
  • This exceeds system capacity and crashes Chrome/ChromeDriver
  • Each browser needs ~200-500MB RAM
  • 500 browsers = ~100-250GB RAM needed!

Fix Applied:

  • Added --max-concurrent safety limit (default: 20)
  • Automatic limiting if requested exceeds max
  • Warning message when limiting occurs

2. Real-Time Metrics Not Showing

Issue: Metrics only printed at end, not during execution

Root Cause:

  • No periodic metrics printing during execution
  • Metrics only printed in final summary

Fix Applied:

  • Added print_real_time_metrics() function
  • Prints metrics every N students (configurable via --metrics-interval)
  • Shows success rate, elapsed time, rate, average duration

3. Driver Setup Failures

Error: Driver setup failed: Message: session not created: DevToolsActivePort file doesn't exist

Root Cause:

  • No retry logic for driver creation
  • Resource contention when too many browsers created simultaneously

Fix Applied:

  • Added retry logic (3 attempts with 2s delay)
  • Additional Chrome stability options
  • Better error messages

4. No Progress Tracking

Issue: Can't resume if script stops

Fix Applied:

  • Use load_test_e2e_assessment_advanced.py for progress tracking
  • Basic script now has real-time metrics

📋 How to Run Correctly

CORRECT Usage (Small Load First)

# Start small to test
python scripts/load_test_e2e_assessment.py --students 10 --csv students.csv --concurrent 5

# Then scale up gradually
python scripts/load_test_e2e_assessment.py --students 50 --csv students.csv --concurrent 10

# For large loads, use advanced script
python scripts/load_test_e2e_assessment_advanced.py --students 100 --csv students.csv --concurrent 10

WRONG Usage (What Caused the Crash)

# DON'T DO THIS - Will crash system!
python scripts/load_test_e2e_assessment.py --students 500 --csv students.csv --concurrent 500

🛡️ Safety Features Added

  1. Automatic Concurrent Limiting:

    • Default max: 20 concurrent browsers
    • Configurable via --max-concurrent
    • Warning when limiting occurs
  2. Real-Time Metrics:

    • Prints every N students (default: 10)
    • Shows success rate, elapsed time, rate
    • Configurable via --metrics-interval
  3. Driver Retry Logic:

    • 3 retry attempts
    • 2 second delay between retries
    • Better error messages
  4. Chrome Stability Options:

    • Additional flags for high concurrency
    • Prevents resource exhaustion
Students Concurrent Max Concurrent Notes
1-10 2-3 5 Testing
10-50 5-10 20 Small load
50-100 10-15 20 Medium load
100+ 15-20 20 Large load (use advanced script)

🎯 Key Takeaways

  1. Never use 500 concurrent browsers - System will crash
  2. Start small - Test with 5-10 students first
  3. Use advanced script for large loads (has progress tracking)
  4. Monitor real-time metrics - Adjust concurrency based on success rate
  5. Use headless mode for better performance

Fixed Issues

  • Safety limit for concurrent browsers
  • Real-time metrics printing
  • Driver setup retry logic
  • Better error handling
  • Progress tracking (in advanced script)

Status: FIXED - Script now has safety limits and real-time metrics!