CP_AUTOMATION/scripts/MULTI_SYSTEM_COMMANDS.md
2025-12-16 17:43:41 +05:30

133 lines
4.3 KiB
Markdown

# Multi-System Load Test Commands
## 🎯 Overview
Complete commands to run load tests across multiple systems, with each system handling 50 students from different CSV files.
---
## 📋 Available CSV Files
1. `students_with_passwords_2025-12-15T10-49-08_01.csv`
2. `students_with_passwords_2025-12-15T10-59-02_03.csv`
3. `students_with_passwords_2025-12-15T11-06-37_05.csv`
---
## 🚀 Complete Commands (Copy-Paste Ready)
### **SYSTEM 1 - PC 1**
```bash
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 50 --workers 20 --headless --metrics-interval 10
```
### **SYSTEM 2 - PC 2**
```bash
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 50 --workers 20 --headless --metrics-interval 10
```
### **SYSTEM 3 - PC 3**
```bash
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 50 --workers 20 --headless --metrics-interval 10
```
---
## 🌐 With Custom URL
If you need to specify a custom frontend URL, add `--url` argument:
### **SYSTEM 1 - PC 1 (with custom URL)**
```bash
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 50 --workers 20 --headless --metrics-interval 10 --url http://localhost:3983
```
### **SYSTEM 2 - PC 2 (with custom URL)**
```bash
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 50 --workers 20 --headless --metrics-interval 10 --url http://localhost:3983
```
### **SYSTEM 3 - PC 3 (with custom URL)**
```bash
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 50 --workers 20 --headless --metrics-interval 10 --url http://localhost:3983
```
---
## 📝 Using Shell Scripts
Alternatively, use the provided shell scripts:
### **On PC 1:**
```bash
chmod +x scripts/PC1_50_students.sh
./scripts/PC1_50_students.sh
```
### **On PC 2:**
```bash
chmod +x scripts/PC2_50_students.sh
./scripts/PC2_50_students.sh
```
### **On PC 3:**
```bash
chmod +x scripts/PC3_50_students.sh
./scripts/PC3_50_students.sh
```
---
## 📊 Configuration Summary
| System | CSV File | Students | Indices | Workers | Total Load |
|--------|----------|----------|---------|---------|------------|
| PC 1 | `2025-12-15T10-49-08_01.csv` | 50 | 0-49 | 20 | 50 students |
| PC 2 | `2025-12-15T10-59-02_03.csv` | 50 | 0-49 | 20 | 50 students |
| PC 3 | `2025-12-15T11-06-37_05.csv` | 50 | 0-49 | 20 | 50 students |
| **Total** | **3 CSVs** | **150** | **-** | **60** | **150 students** |
---
## 🔧 Command Breakdown
- `--csv`: CSV file path
- `--start 0`: Start from first student (index 0)
- `--end 50`: End at 50th student (exclusive, so indices 0-49)
- `--workers 20`: 20 concurrent browsers per system
- `--headless`: Run in headless mode
- `--metrics-interval 10`: Print metrics every 10 students
- `--url` (optional): Custom frontend URL
---
## 🚀 Execution Steps
1. **On PC 1**: Run the PC 1 command
2. **On PC 2**: Run the PC 2 command
3. **On PC 3**: Run the PC 3 command
4. **Monitor**: Each system will print real-time metrics
---
## 📈 Expected Results
- **Total Students**: 150 (50 per system)
- **Concurrent Browsers**: 60 total (20 per system)
- **Load Distribution**: Evenly distributed across 3 systems
- **Execution Time**: ~20-40 minutes per system (depending on performance)
---
## 💡 Tips
1. **Start all systems simultaneously** for maximum load
2. **Monitor each system** for real-time metrics
3. **Check reports** in `reports/load_tests/` after completion
4. **Use `--url`** if testing against different environments
---
**Status**: ✅ Ready to Execute