CP_AUTOMATION/config/load_test_config.py
2025-12-12 19:54:54 +05:30

80 lines
1.9 KiB
Python

"""
Load Test Configuration
Configuration settings for load testing scenarios
"""
from dataclasses import dataclass
from typing import List
@dataclass
class LoadTestScenario:
"""Configuration for a load test scenario"""
name: str
num_users: int
ramp_up_time: int # Seconds to gradually ramp up users
max_workers: int = None # Max concurrent workers (None = unlimited)
cohort: str = "adolescent" # Cohort to use
complete_full_test: bool = False # If True, complete full test; if False, minimal test
# Predefined load test scenarios
LOAD_TEST_SCENARIOS = {
"small": LoadTestScenario(
name="Small Load Test",
num_users=10,
ramp_up_time=5,
max_workers=10,
complete_full_test=False
),
"medium": LoadTestScenario(
name="Medium Load Test",
num_users=50,
ramp_up_time=10,
max_workers=50,
complete_full_test=False
),
"large": LoadTestScenario(
name="Large Load Test",
num_users=100,
ramp_up_time=20,
max_workers=100,
complete_full_test=False
),
"xlarge": LoadTestScenario(
name="Extra Large Load Test",
num_users=200,
ramp_up_time=30,
max_workers=200,
complete_full_test=False
),
"stress": LoadTestScenario(
name="Stress Test",
num_users=500,
ramp_up_time=60,
max_workers=500,
complete_full_test=False
),
"full_test_small": LoadTestScenario(
name="Full Test - Small Load",
num_users=10,
ramp_up_time=5,
max_workers=10,
complete_full_test=True # Complete full test flow
),
}
# Default scenario
DEFAULT_SCENARIO = "medium"
# Load test thresholds
SUCCESS_RATE_THRESHOLD = 80.0 # Minimum success rate percentage
MAX_AVG_DURATION = 300 # Maximum average duration in seconds
MAX_P95_DURATION = 600 # Maximum 95th percentile duration in seconds