5.5 KiB
5.5 KiB
🚀 Multi-PC Load Test - 300 Students Simultaneously
Overview
This guide provides commands for 3 PCs to test backend capacity by running 300 students simultaneously (100 per PC).
📊 Test Configuration
- Total Students: 300
- Students per PC: 100
- Concurrent Browsers per PC: 30 (adjustable)
- Total Concurrent Browsers: 90 (30 × 3)
- Backend Load: 300 students hitting the server simultaneously
🖥️ Commands for Each PC
PC 1 - First CSV (100 students)
cd /home/tech4biz/work/CP_Front_Automation_Test
source venv/bin/activate
python3 tests/load_tests/test_generic_load_assessments.py \
--csv students_with_passwords_2025-12-15T10-49-08_01.csv \
--start 0 --end 100 \
--workers 30 \
--headless \
--metrics-interval 10
PC 2 - Second CSV (100 students)
cd /home/tech4biz/work/CP_Front_Automation_Test
source venv/bin/activate
python3 tests/load_tests/test_generic_load_assessments.py \
--csv students_with_passwords_2025-12-15T10-59-02_03.csv \
--start 0 --end 100 \
--workers 30 \
--headless \
--metrics-interval 10
PC 3 - Third CSV (100 students)
cd /home/tech4biz/work/CP_Front_Automation_Test
source venv/bin/activate
python3 tests/load_tests/test_generic_load_assessments.py \
--csv students_with_passwords_2025-12-15T11-06-37_05.csv \
--start 0 --end 100 \
--workers 30 \
--headless \
--metrics-interval 10
⚡ Execution Steps
-
Prepare all 3 PCs:
- Ensure all have the project cloned
- Ensure all have virtual environment activated
- Ensure all have dependencies installed
- Ensure backend is running and accessible
-
Coordinate start time:
- Use a countdown (3... 2... 1... GO!)
- Or use a shared timer
- CRITICAL: All 3 must start at the same time
-
Run commands simultaneously:
- PC 1: Run PC 1 command
- PC 2: Run PC 2 command
- PC 3: Run PC 3 command
- All at the exact same time
-
Monitor progress:
- Each PC will show real-time metrics
- Check backend logs for API performance
- Monitor backend server resources
🔧 Adjusting Workers (if PC crashes)
If a PC crashes or runs out of resources, reduce workers:
Option 1: Reduce to 20 workers per PC
--workers 20 # Instead of 30
Option 2: Reduce to 15 workers per PC
--workers 15 # More conservative
Option 3: Reduce to 10 workers per PC
--workers 10 # Very conservative, but safer
Note: Lower workers = slower execution, but more stable
📈 Expected Results
Backend Load
- 300 students hitting the backend simultaneously
- 90 concurrent browsers (30 per PC)
- All students going through complete flow:
- Login
- Password reset (if needed)
- Profile completion (if needed)
- Assessment completion
- Feedback submission
Performance Metrics
- Each PC will generate a report in
reports/load_tests/ - Check backend logs for:
- API response times
- Database query performance
- Server resource usage (CPU, RAM)
- Error rates
🎯 Success Criteria
Backend Should Handle:
- ✅ 300 concurrent logins
- ✅ 300 concurrent password resets (if needed)
- ✅ 300 concurrent profile completions (if needed)
- ✅ 300 concurrent assessment submissions
- ✅ 300 concurrent feedback submissions
What to Monitor:
- Backend Response Times: Should stay reasonable (< 5 seconds)
- Error Rates: Should be minimal (< 5%)
- Server Resources: CPU/RAM should not max out
- Database Performance: Queries should complete in time
- API Timeouts: Should be minimal
📊 Results Analysis
After test completion:
-
Collect reports from all 3 PCs:
# On each PC, check: ls -lh reports/load_tests/load_test_Complete_Assessment_Flow_*users_*.json -
Check backend logs:
- API response times
- Error logs
- Database query logs
- Server resource usage
-
Analyze results:
- Success rate across all 300 students
- Average completion time
- Error patterns
- Backend bottlenecks
⚠️ Troubleshooting
PC Crashes
- Symptom: PC becomes unresponsive
- Solution: Reduce
--workersto 20 or 15
Backend Timeouts
- Symptom: Many "timeout" errors in results
- Solution: Backend may need scaling or optimization
High Error Rate
- Symptom: > 10% failure rate
- Solution: Check backend logs for root cause
Slow Performance
- Symptom: Tests taking very long (> 2 hours)
- Solution: Normal for 300 students, but check backend performance
📝 Quick Reference
All 3 Commands (Copy-Paste Ready)
PC 1:
cd /home/tech4biz/work/CP_Front_Automation_Test && source venv/bin/activate && python3 tests/load_tests/test_generic_load_assessments.py --csv students_with_passwords_2025-12-15T10-49-08_01.csv --start 0 --end 100 --workers 30 --headless --metrics-interval 10
PC 2:
cd /home/tech4biz/work/CP_Front_Automation_Test && source venv/bin/activate && python3 tests/load_tests/test_generic_load_assessments.py --csv students_with_passwords_2025-12-15T10-59-02_03.csv --start 0 --end 100 --workers 30 --headless --metrics-interval 10
PC 3:
cd /home/tech4biz/work/CP_Front_Automation_Test && source venv/bin/activate && python3 tests/load_tests/test_generic_load_assessments.py --csv students_with_passwords_2025-12-15T11-06-37_05.csv --start 0 --end 100 --workers 30 --headless --metrics-interval 10
Ready to test backend capacity for 300 concurrent users! 🚀