```json
{
"tests": [
{
"name": "test_get_balance_basic",
"endpoint": "/api/v1/get_balance",
"method": "GET",
"headers": {"Authorization": "Bearer YOUR_API_KEY"},
"payload": {},
"expected_status": 200,
"expected_behavior": "Returns balance data for a wallet",
"metrics": ["latency", "accuracy", "status_code"],
"validation": {"field": "data.total_balance", "type": "number", "min_length": 0}
},
{
"name": "test_create_wallet",
"endpoint": "/api/v1/create_wallet",
"method": "POST",
"headers": {"Authorization": "Bearer YOUR_API_KEY"},
"payload": {"label": "My new wallet"},
"expected_status": 201,
"expected_behavior": "Creates a new wallet and returns wallet details",
"metrics": ["latency", "accuracy", "status_code"],
"validation": {"field": "data.wallet_id", "type": "string", "min_length": 1}
},
{
"name": "test_withdraw_funds",
"endpoint": "/api/v1/withdraw",
"method": "POST",
"headers": {"Authorization": "Bearer YOUR_API_KEY"},
"payload": {
"amount": "0.01",
"to_address": "1BitcoinAddress..."
},
"expected_status": 200,
"expected_behavior": "Withdraws the specified amount from the wallet",
"metrics": ["latency", "accuracy", "status_code"],
"validation": {"field": "data.transaction_id", "type": "string", "min_length": 1}
},
{
"name": "test_get_balance_invalid_auth",
"endpoint": "/api/v1/get_balance",
"method": "GET",
"headers": {"Authorization": "Bearer INVALID_API_KEY"},
"payload": {},
"expected_status": 401,
"expected_behavior": "Invalid authentication returns 401 status",
"metrics": ["latency", "status_code"],
"validation": {}
},
{
"name": "test_withdraw_funds_missing_field",
"endpoint": "/api/v1/withdraw",
"method": "POST",
"headers": {"Authorization": "Bearer YOUR_API_KEY"},
"payload": {
"amount": "0.01"
},
"expected_status": 400,
"expected_behavior": "Missing 'to_address' field returns 400 status",
"metrics": ["latency", "status_code"],
"validation": {}
}
],
"pricing_probes": [
{
"name": "verify_pricing_per_request",
"description": "Count requests and verify they're billed appropriately",
"endpoint": "/api/v1/get_balance",
"method": "GET",
"payload": {},
"check": "response.headers should include 'X-Used-Requests': 1"
}
],
"stress_profile": {
"concurrent_requests": 5,
"duration_seconds": 10,
"ramp_up": true
}
}
```