231 lines
5.9 KiB
Markdown
231 lines
5.9 KiB
Markdown
# Complete Setup Guide - Load Testing Environment
|
||
|
||
## 📦 What's Included
|
||
|
||
### 1. `requirements.txt`
|
||
Complete list of Python dependencies needed for load testing:
|
||
- pytest (testing framework)
|
||
- selenium (browser automation)
|
||
- webdriver-manager (automatic ChromeDriver management)
|
||
- And more...
|
||
|
||
### 2. `setup_load_test_environment.sh`
|
||
World-class setup script that:
|
||
- ✅ Checks Python version (3.8+)
|
||
- ✅ Creates virtual environment
|
||
- ✅ Installs all dependencies
|
||
- ✅ Validates Chrome/ChromeDriver
|
||
- ✅ Verifies function signature
|
||
- ✅ Creates necessary directories
|
||
- ✅ Provides clear feedback and next steps
|
||
|
||
## 🚀 Quick Start
|
||
|
||
### For Fresh Systems
|
||
|
||
```bash
|
||
# 1. Navigate to project
|
||
cd /home/tech4biz/work/CP_Front_Automation_Test
|
||
|
||
# 2. Run setup script
|
||
./setup_load_test_environment.sh
|
||
|
||
# 3. Activate virtual environment (if not auto-activated)
|
||
source venv/bin/activate
|
||
|
||
# 4. Validate setup
|
||
python3 tests/load_tests/validate_function_signature.py
|
||
|
||
# 5. Run your first test
|
||
python3 tests/load_tests/test_generic_load_assessments.py \
|
||
--csv your_students.csv \
|
||
--start 0 --end 1 \
|
||
--workers 1 --headless
|
||
```
|
||
|
||
## 📋 What the Setup Script Does
|
||
|
||
### Step-by-Step Process
|
||
|
||
1. **Python Check** - Verifies Python 3.8+ is installed
|
||
2. **pip Check** - Ensures pip is available
|
||
3. **Virtual Environment** - Creates/validates venv
|
||
4. **Dependencies** - Installs all packages from requirements.txt
|
||
5. **Chrome Check** - Verifies Chrome browser (or notes auto-install)
|
||
6. **ChromeDriver** - Notes that webdriver-manager handles it automatically
|
||
7. **Function Validation** - Validates load test function signature
|
||
8. **Project Structure** - Verifies all required files/directories exist
|
||
9. **Reports Directory** - Creates reports/load_tests directory
|
||
10. **Final Verification** - Tests Python imports
|
||
|
||
### Output Example
|
||
|
||
```
|
||
================================================================================
|
||
🚀 World-Class Load Test Environment Setup
|
||
================================================================================
|
||
|
||
Step 1: Checking Python version...
|
||
✅ Python 3.10.12 found (>= 3.8 required)
|
||
|
||
Step 2: Checking pip...
|
||
✅ pip3 found
|
||
|
||
Step 3: Setting up virtual environment...
|
||
✅ Virtual environment created
|
||
|
||
Step 4: Activating virtual environment...
|
||
✅ Virtual environment activated
|
||
|
||
Step 5: Upgrading pip...
|
||
✅ pip upgraded to latest version
|
||
|
||
Step 6: Installing Python dependencies...
|
||
✅ All Python dependencies installed
|
||
|
||
Step 7: Checking Chrome browser...
|
||
✅ Chrome found: Google Chrome 120.0.6099.109
|
||
|
||
Step 8: Checking ChromeDriver...
|
||
⚠️ ChromeDriver not found in PATH
|
||
ℹ️ webdriver-manager will automatically download and manage ChromeDriver
|
||
✅ ChromeDriver will be handled automatically
|
||
|
||
Step 9: Validating load test function signature...
|
||
✅ Function signature validation passed
|
||
|
||
Step 10: Validating project structure...
|
||
✅ Directory exists: pages
|
||
✅ Directory exists: utils
|
||
✅ Directory exists: tests/load_tests
|
||
✅ Directory exists: config
|
||
✅ File exists: tests/load_tests/test_generic_load_assessments.py
|
||
✅ File exists: config/config.py
|
||
|
||
Step 11: Creating reports directory...
|
||
✅ Reports directory created: reports/load_tests
|
||
|
||
Step 12: Final verification...
|
||
✅ Core dependencies imported successfully
|
||
✅ Python imports working correctly
|
||
|
||
================================================================================
|
||
✅ Setup Complete!
|
||
================================================================================
|
||
|
||
📋 Next Steps:
|
||
...
|
||
```
|
||
|
||
## 🔧 Manual Setup (Alternative)
|
||
|
||
If you prefer manual setup or the script doesn't work:
|
||
|
||
```bash
|
||
# 1. Create virtual environment
|
||
python3 -m venv venv
|
||
|
||
# 2. Activate it
|
||
source venv/bin/activate
|
||
|
||
# 3. Upgrade pip
|
||
pip install --upgrade pip
|
||
|
||
# 4. Install dependencies
|
||
pip install -r requirements.txt
|
||
|
||
# 5. Validate
|
||
python3 tests/load_tests/validate_function_signature.py
|
||
```
|
||
|
||
## ✅ Verification Checklist
|
||
|
||
After setup, verify everything works:
|
||
|
||
- [ ] Virtual environment created and activated
|
||
- [ ] All dependencies installed (`pip list` shows selenium, pytest, etc.)
|
||
- [ ] Function signature validated (no errors)
|
||
- [ ] Chrome browser accessible
|
||
- [ ] Project structure intact
|
||
- [ ] Reports directory created
|
||
|
||
## 🐛 Troubleshooting
|
||
|
||
### Issue: "Permission denied" when running setup script
|
||
|
||
**Solution:**
|
||
```bash
|
||
chmod +x setup_load_test_environment.sh
|
||
./setup_load_test_environment.sh
|
||
```
|
||
|
||
### Issue: "Python 3 not found"
|
||
|
||
**Solution:**
|
||
```bash
|
||
# Ubuntu/Debian
|
||
sudo apt-get update
|
||
sudo apt-get install python3 python3-pip python3-venv
|
||
|
||
# Or check if python3 is installed
|
||
which python3
|
||
```
|
||
|
||
### Issue: "pip install fails"
|
||
|
||
**Solution:**
|
||
```bash
|
||
# Upgrade pip first
|
||
python3 -m pip install --upgrade pip
|
||
|
||
# Then install requirements
|
||
pip install -r requirements.txt
|
||
```
|
||
|
||
### Issue: "Chrome not found"
|
||
|
||
**Solution:**
|
||
```bash
|
||
# Ubuntu/Debian
|
||
wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
|
||
sudo dpkg -i google-chrome-stable_current_amd64.deb
|
||
sudo apt-get install -f # Fix dependencies if needed
|
||
```
|
||
|
||
**Note:** webdriver-manager will handle ChromeDriver automatically, so you don't need to install it manually.
|
||
|
||
## 📚 Related Files
|
||
|
||
- `requirements.txt` - Python dependencies
|
||
- `setup_load_test_environment.sh` - Automated setup script
|
||
- `tests/load_tests/README.md` - Complete documentation
|
||
- `tests/load_tests/QUICK_START.md` - Quick reference
|
||
- `tests/load_tests/validate_function_signature.py` - Validation script
|
||
|
||
## 🎯 Next Steps
|
||
|
||
After setup is complete:
|
||
|
||
1. **Validate Setup:**
|
||
```bash
|
||
python3 tests/load_tests/validate_function_signature.py
|
||
```
|
||
|
||
2. **Run First Test:**
|
||
```bash
|
||
python3 tests/load_tests/test_generic_load_assessments.py \
|
||
--csv your_students.csv \
|
||
--start 0 --end 1 \
|
||
--workers 1 --headless
|
||
```
|
||
|
||
3. **Read Documentation:**
|
||
- Full guide: `tests/load_tests/README.md`
|
||
- Quick start: `tests/load_tests/QUICK_START.md`
|
||
|
||
---
|
||
|
||
**Status:** ✅ Production Ready
|
||
**Last Updated:** 2025-12-12
|
||
|