```json
{
"tests": [
{
"name": "basic_connectivity_and_auth",
"endpoint": "/weather",
"method": "GET",
"headers": {},
"payload": {},
"params": {
"q": "London",
"appid": "your_api_key"
},
"expected_status": 200,
"expected_behavior": "Returns current weather data for London",
"metrics": ["latency", "status_code"],
"validation": {"field": "weather", "type": "array", "min_length": 1}
},
{
"name": "current_weather_existing_city",
"endpoint": "/weather",
"method": "GET",
"headers": {},
"payload": {},
"params": {
"q": "New York",
"appid": "your_api_key"
},
"expected_status": 200,
"expected_behavior": "Returns current weather data for New York",
"metrics": ["latency", "accuracy", "status_code"],
"validation": {"field": "weather", "type": "array", "min_length": 1}
},
{
"name": "error_handling_missing_param",
"endpoint": "/weather",
"method": "GET",
"headers": {},
"payload": {},
"params": {
"appid": "your_api_key"
},
"expected_status": 400,
"expected_behavior": "Returns error for missing location parameter",
"metrics": ["latency", "status_code"],
"validation": {"field": "message", "type": "string"}
},
{
"name": "error_handling_invalid_api_key",
"endpoint": "/weather",
"method": "GET",
"headers": {},
"payload": {},
"params": {
"q": "Berlin",
"appid": "invalid_api_key"
},
"expected_status": 401,
"expected_behavior": "Returns error for invalid API key",
"metrics": ["latency", "status_code"],
"validation": {"field": "message", "type": "string"}
},
{
"name": "rate_limit_check",
"endpoint": "/weather",
"method": "GET",
"headers": {},
"payload": {},
"params": {
"q": "Tokyo",
"appid": "your_api_key"
},
"expected_status": 200,
"expected_behavior": "Handles the maximum rate limit correctly",
"metrics": ["latency", "status_code"]
}
],
"pricing_probes": [],
"stress_profile": {
"concurrent_requests": 5,
"duration_seconds": 10,
"ramp_up": true
}
}
```