40 lines
1.1 KiB
Python
40 lines
1.1 KiB
Python
from fastapi import APIRouter, Depends, HTTPException
|
|
from core.database import fake_users_db
|
|
import time
|
|
import random
|
|
|
|
router = APIRouter()
|
|
|
|
@router.post("/api/load-test")
|
|
async def load_test_handler(
|
|
delay_ms: int = 0,
|
|
error_rate: float = 0.0,
|
|
response_size: int = 1
|
|
):
|
|
"""Load test endpoint for performance testing"""
|
|
|
|
# Simulate random errors based on error_rate
|
|
if random.random() < error_rate:
|
|
raise HTTPException(status_code=500, detail="Random error for load testing")
|
|
|
|
# Simulate processing delay
|
|
if delay_ms > 0:
|
|
time.sleep(delay_ms / 1000)
|
|
|
|
# Generate response data of specified size
|
|
test_data = [{
|
|
"index": i,
|
|
"value": f"test_value_{i}",
|
|
"timestamp": time.time()
|
|
} for i in range(response_size)]
|
|
|
|
return {
|
|
"message": "Load test completed successfully",
|
|
"data": test_data,
|
|
"metadata": {
|
|
"delay_ms": delay_ms,
|
|
"error_rate": error_rate,
|
|
"response_size": response_size,
|
|
"timestamp": time.time()
|
|
}
|
|
} |