Launcher and aggregator of Locust load tests in Docker containers
LocustSwarm is a web-based interface for managing and orchestrating Locust load tests with Docker container isolation. Each test runs in its own isolated Docker container, ensuring complete separation and preventing interference between different test scenarios.
- 🐳 Docker Isolation - Each test runs in a separate container for complete isolation
- 🎯 Multiple Scenarios - Support for predefined and custom multi-stage load scenarios
- 📊 Web Interface - User-friendly web UI for managing tests and viewing results
- 🔄 Real-time Monitoring - Track active tests and access Locust web panels
- 📁 Results Management - Automatic collection and archiving of test results
- ⚙️ Flexible Configuration - JSON-based configuration for projects and scenarios
- Load testing of web applications and APIs
- Performance testing with isolated test environments
- Multi-project test management
- Custom load patterns with stage-based scenarios
curl -LsSf https://astral.sh/uv/install.sh | shuv sync
# Activate virtual environment (optional)
source .venv/bin/activate # Linux/macOS
# or
.venv\Scripts\activate # Windows# Creating virtual environment for Python 3.11
python3.11 -m venv .venv
# Activate virtual environment
source .venv/bin/activate # Linux/macOS
# or
.venv\Scripts\activate # Windows
# Install dependencies via pip
pip install -r requirements.txt
# Or if using pyproject.toml
pip install .# Copy and fill in the configuration example
cp config.example.json config.json
# Edit config.json according to your needsNote: keys in config.json must match folder names in tests/
# With activated virtual environment
uv run flask --app app run --port 3000 --debug --exclude-patterns="*/tmp/*"
# Or with activated venv directly
flask --app app run --port 3000 --debug --exclude-patterns="*/tmp/*"docker context ls
docker context use <NAME>
docker ps -all
docker logs <CONTAINER_ID>fuser -k 3000/tcpFor Windows use:
netstat -ano | findstr :3000
taskkill /PID <PID> /Fuv run gunicorn -c gunicorn.conf.py app:app# Make sure virtual environment is activated
gunicorn -c gunicorn.conf.py app:appThe application will be available at: http://127.0.0.1:3000
Note: For complete information about the project, environment variables configuration, and settings, refer to the documentation.
