```json
{
"tests": [
{
"name": "connectivity_and_auth_test",
"endpoint": "/v1/questions",
"method": "GET",
"headers": {
"Authorization": "Bearer YOUR_API_KEY"
},
"payload": {},
"expected_status": 200,
"expected_behavior": "Returns list of questions",
"metrics": ["latency", "status_code"],
"validation": {
"field": "data",
"type": "array",
"min_length": 1
}
},
{
"name": "primary_endpoint_payload_test",
"endpoint": "/v1/questions",
"method": "GET",
"headers": {
"Authorization": "Bearer YOUR_API_KEY"
},
"payload": {
"category": "Technology",
"difficulty": "Medium",
"limit": 5
},
"expected_status": 200,
"expected_behavior": "Returns a limited list of questions based on filters",
"metrics": ["latency", "status_code"],
"validation": {
"field": "data",
"type": "array",
"min_length": 1
}
},
{
"name": "error_handling_missing_params",
"endpoint": "/v1/questions",
"method": "GET",
"headers": {
"Authorization": "Bearer YOUR_API_KEY"
},
"payload": {
"limit": "invalid"
},
"expected_status": 400,
"expected_behavior": "Returns error for invalid limit parameter",
"metrics": ["latency", "status_code"],
"validation": {
"field": "error",
"type": "string",
"min_length": 1
}
},
{
"name": "rate_limit_test",
"endpoint": "/v1/questions",
"method": "GET",
"headers": {
"Authorization": "Bearer YOUR_API_KEY"
},
"payload": {},
"expected_status": 200,
"expected_behavior": "Handles 60 requests per minute without rate limit errors",
"metrics": ["latency", "status_code"]
}
],
"pricing_probes": [
{
"name": "verify_token_pricing",
"description": "Send known-length input, check response headers for usage",
"endpoint": "/v1/chat/completions",
"method": "POST",
"payload": {
"prompt": "Generate a simple quiz question."
},
"check": "response.usage.prompt_tokens should match ~input_length/4"
}
],
"stress_profile": {
"concurrent_requests": 5,
"duration_seconds": 10,
"ramp_up": true
}
}
```