```json
{
"tests": [
{
"name": "test_health_check",
"endpoint": "/climate/health",
"method": "GET",
"headers": {
"X-API-Key": "YOUR_API_KEY"
},
"payload": {},
"expected_status": 200,
"expected_behavior": "Service is up and running",
"metrics": ["latency", "status_code"],
"validation": {
"field": "status",
"type": "string",
"min_length": 1
}
},
{
"name": "test_climate_risk_endpoint",
"endpoint": "/climate/risk",
"method": "GET",
"headers": {
"X-API-Key": "YOUR_API_KEY"
},
"payload": {
"lat": 40.7128,
"lon": -74.0060
},
"expected_status": 200,
"expected_behavior": "Returns climate risk score for given coordinates",
"metrics": ["latency", "accuracy", "status_code"],
"validation": {
"field": "risk_score",
"type": "number"
}
},
{
"name": "test_climate_projections_endpoint",
"endpoint": "/climate/projections",
"method": "GET",
"headers": {
"X-API-Key": "YOUR_API_KEY"
},
"payload": {
"lat": 34.0522,
"lon": -118.2437,
"years": 2050
},
"expected_status": 200,
"expected_behavior": "Returns climate projections for given coordinates and year",
"metrics": ["latency", "accuracy", "status_code"],
"validation": {
"field": "projections",
"type": "array",
"min_length": 1
}
},
{
"name": "test_climate_batch_endpoint",
"endpoint": "/climate/batch",
"method": "POST",
"headers": {
"X-API-Key": "YOUR_API_KEY"
},
"payload": {
"locations": [
{
"lat": 51.5074,
"lon": -0.1278
},
{
"lat": 35.6895,
"lon": 139.6917
}
]
},
"expected_status": 200,
"expected_behavior": "Performs batch risk assessments for multiple locations",
"metrics": ["latency", "accuracy", "status_code"],
"validation": {
"field": "results",
"type": "array",
"min_length": 2
}
},
{
"name": "test_climate_risk_missing_param",
"endpoint": "/climate/risk",
"method": "GET",
"headers": {
"X-API-Key": "YOUR_API_KEY"
},
"payload": {
"lat": 40.7128
},
"expected_status": 400,
"expected_behavior": "Returns error for missing parameters",
"metrics": ["latency", "status_code"],
"validation": {
"field": "error",
"type": "string",
"min_length": 1
}
}
],
"pricing_probes": [],
"stress_profile": {
"concurrent_requests": 5,
"duration_seconds": 10,
"ramp_up": true
}
}
```