```json
{
"tests": [
{
"name": "test_btc_usd_price",
"endpoint": "/data/price",
"method": "GET",
"headers": {
"authorization": "{{api_key}}"
},
"payload": {
"fsym": "BTC",
"tsyms": "USD"
},
"expected_status": 200,
"expected_behavior": "Returns current BTC price in USD",
"metrics": ["latency", "accuracy", "status_code"],
"validation": {
"field": "USD",
"type": "number",
"min_value": 1000
}
},
{
"name": "test_multi_currency_prices",
"endpoint": "/data/pricemulti",
"method": "GET",
"headers": {
"authorization": "{{api_key}}"
},
"payload": {
"fsyms": "BTC,ETH",
"tsyms": "USD,EUR"
},
"expected_status": 200,
"expected_behavior": "Returns multiple cryptocurrency prices in multiple fiat currencies",
"metrics": ["latency", "accuracy", "status_code"],
"validation": {
"field": "BTC.USD",
"type": "number",
"min_value": 1000
}
},
{
"name": "test_historical_daily_data",
"endpoint": "/data/histoday",
"method": "GET",
"headers": {
"authorization": "{{api_key}}"
},
"payload": {
"fsym": "BTC",
"tsym": "USD",
"limit": "30"
},
"expected_status": 200,
"expected_behavior": "Returns 30 days of daily OHLCV data for BTC/USD",
"metrics": ["latency", "accuracy", "status_code"],
"validation": {
"field": "Data",
"type": "array",
"min_length": 30
}
},
{
"name": "test_top_exchanges",
"endpoint": "/data/top/exchanges",
"method": "GET",
"headers": {
"authorization": "{{api_key}}"
},
"payload": {
"fsym": "BTC",
"tsym": "USD",
"limit": "10"
},
"expected_status": 200,
"expected_behavior": "Returns top 10 exchanges by BTC/USD volume",
"metrics": ["latency", "accuracy", "status_code"],
"validation": {
"field": "Data",
"type": "array",
"min_length": 5
}
},
{
"name": "test_crypto_news",
"endpoint": "/data/news",
"method": "GET",
"headers": {
"authorization": "{{api_key}}"
},
"payload": {
"lang": "EN"
},
"expected_status": 200,
"expected_behavior": "Returns recent cryptocurrency news articles",
"metrics": ["latency", "accuracy", "status_code"],
"validation": {
"field": "Data",
"type": "array",
"min_length": 1
}
},
{
"name": "test_invalid_symbol_error",
"endpoint": "/data/price",
"method": "GET",
"headers": {
"authorization": "{{api_key}}"
},
"payload": {
"fsym": "INVALID_COIN",
"tsyms": "USD"
},
"expected_status": 200,
"expected_behavior": "Returns error for invalid cryptocurrency symbol",
"metrics": ["error_handling", "status_code"],
"validation": {
"field": "Response",
"type": "string",
"contains": "error"
}
},
{
"name": "test_no_auth_error",
"endpoint": "/data/price",
"method": "GET",
"headers": {},
"payload": {
"fsym": "BTC",
"tsyms": "USD"
},
"expected_status": 401,
"expected_behavior": "Returns 401 when no API key provided",
"metrics": ["error_handling", "status_code"],
"validation": {
"field": "Message",
"type": "string",
"contains": "auth"
}
}
],
"pricing_probes": [
{
"name": "verify_rate_limit_headers",
"description": "Check if rate limit information is provided in response headers",
"endpoint": "/data/price",
"method": "GET",
"payload": {
"fsym": "BTC",
"tsyms": "USD"
},
"check": "response.headers should contain rate limit info (X-RateLimit-* headers)"
},
{
"name": "verify_free_tier_limits",
"description": "Test if free tier has expected limitations",
"endpoint": "/data/histoday",
"method": "GET",
"payload": {
"fsym": "BTC",
"tsym": "USD",
"limit": "2000"
},
"check": "large historical data requests should be rate limited or require paid tier"
}
],
"stress_profile": {
"concurrent_requests": 3,
"duration_seconds": 15,
"ramp_up": true
}
}
```