Files
cloud-orchestrator/test.sh
kappa 4cb9da06dc feat: 대역폭 추정 및 DAU 표시 기능 추가
- 동시접속자 기반 월간 대역폭 자동 추정
- DAU(일일활성사용자) 추정치 표시 (동접 × 10-14)
- 대역폭 기반 Linode/Vultr 자동 선택 로직
- 비용 분석에 대역폭 비용 포함
- 지역 미선택시 서울/도쿄/오사카/싱가포르 기본 표시
- 지역별 서버 분리 표시 (GROUP BY instance + region)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-25 09:40:36 +09:00

101 lines
3.0 KiB
Bash
Executable File

#!/bin/bash
# Test script for Server Recommendation System
# Usage: ./test.sh [worker-url]
WORKER_URL="${1:-http://localhost:8787}"
echo "Testing Server Recommendation System"
echo "Worker URL: $WORKER_URL"
echo ""
# Test 1: Health Check
echo "1. Testing Health Check..."
curl -s "$WORKER_URL/api/health" | jq '.'
echo ""
# Test 2: Get All Servers
echo "2. Testing Get All Servers..."
curl -s "$WORKER_URL/api/servers" | jq '{count: .count, servers: .servers[0:2]}'
echo ""
# Test 3: Get Servers with Filters
echo "3. Testing Get Servers with Filters (minCpu=4, minMemory=8)..."
curl -s "$WORKER_URL/api/servers?minCpu=4&minMemory=8" | jq '{count: .count, filters: .filters}'
echo ""
# Test 4: Get Servers by Provider
echo "4. Testing Get Servers by Provider (aws)..."
curl -s "$WORKER_URL/api/servers?provider=aws" | jq '{count: .count, filters: .filters}'
echo ""
# Test 5: Recommendation Request (Small)
echo "5. Testing Recommendation Request (Small server)..."
curl -s -X POST "$WORKER_URL/api/recommend" \
-H "Content-Type: application/json" \
-d '{
"cpu_cores": 2,
"memory_gb": 4,
"storage_gb": 80
}' | jq '{total_candidates: .total_candidates, cached: .cached, recommendation_count: (.recommendations | length), top_recommendation: .recommendations[0].server_name}'
echo ""
# Test 6: Recommendation Request (Medium)
echo "6. Testing Recommendation Request (Medium server with budget)..."
curl -s -X POST "$WORKER_URL/api/recommend" \
-H "Content-Type: application/json" \
-d '{
"cpu_cores": 4,
"memory_gb": 16,
"storage_gb": 200,
"budget_monthly": 150,
"sla_requirement": 99.9
}' | jq '{total_candidates: .total_candidates, cached: .cached, recommendations: [.recommendations[] | {server: .server_name, score: .score, price: .price_monthly}]}'
echo ""
# Test 7: Recommendation Request with Region Filter
echo "7. Testing Recommendation Request with Region Filter..."
curl -s -X POST "$WORKER_URL/api/recommend" \
-H "Content-Type: application/json" \
-d '{
"cpu_cores": 4,
"memory_gb": 8,
"storage_gb": 100,
"regions": ["us-east-1"]
}' | jq '{total_candidates: .total_candidates, cached: .cached}'
echo ""
# Test 8: Cache Hit Test (same request as #5)
echo "8. Testing Cache Hit (same request as #5)..."
curl -s -X POST "$WORKER_URL/api/recommend" \
-H "Content-Type: application/json" \
-d '{
"cpu_cores": 2,
"memory_gb": 4,
"storage_gb": 80
}' | jq '{cached: .cached, top_recommendation: .recommendations[0].server_name}'
echo ""
# Test 9: Invalid Request (missing required field)
echo "9. Testing Invalid Request (missing cpu_cores)..."
curl -s -X POST "$WORKER_URL/api/recommend" \
-H "Content-Type: application/json" \
-d '{
"memory_gb": 4,
"storage_gb": 80
}' | jq '.'
echo ""
# Test 10: Invalid Request (negative value)
echo "10. Testing Invalid Request (negative cpu_cores)..."
curl -s -X POST "$WORKER_URL/api/recommend" \
-H "Content-Type: application/json" \
-d '{
"cpu_cores": -1,
"memory_gb": 4,
"storage_gb": 80
}' | jq '.'
echo ""
echo "Test suite completed!"