```json
{
"tests": [
{
"name": "basic_connectivity",
"endpoint": "/get",
"method": "GET",
"headers": {
"User-Agent": "Prowl-Benchmark/1.0"
},
"payload": {},
"expected_status": 200,
"expected_behavior": "Returns request metadata including headers and origin",
"metrics": ["latency", "accuracy", "status_code"],
"validation": {
"field": "headers",
"type": "object",
"required_keys": ["User-Agent"]
}
},
{
"name": "post_data_echo",
"endpoint": "/post",
"method": "POST",
"headers": {
"Content-Type": "application/json",
"X-Test-Header": "prowl-test"
},
"payload": {
"test_data": "benchmark_payload",
"timestamp": "2026-04-06T00:00:00Z",
"number": 42
},
"expected_status": 200,
"expected_behavior": "Echoes back POST data including JSON payload and headers",
"metrics": ["latency", "accuracy", "status_code"],
"validation": {
"field": "json",
"type": "object",
"contains": {"test_data": "benchmark_payload"}
}
},
{
"name": "status_code_success",
"endpoint": "/status/200",
"method": "GET",
"headers": {},
"payload": {},
"expected_status": 200,
"expected_behavior": "Returns HTTP 200 status code as requested",
"metrics": ["latency", "accuracy", "status_code"],
"validation": {
"field": "status",
"type": "integer",
"equals": 200
}
},
{
"name": "error_handling_404",
"endpoint": "/status/404",
"method": "GET",
"headers": {},
"payload": {},
"expected_status": 404,
"expected_behavior": "Returns HTTP 404 status code for error handling test",
"metrics": ["latency", "accuracy", "status_code"],
"validation": {
"field": "status",
"type": "integer",
"equals": 404
}
},
{
"name": "header_manipulation",
"endpoint": "/get",
"method": "GET",
"headers": {
"X-Custom-Header": "test-value",
"Authorization": "Bearer fake-token"
},
"payload": {},
"expected_status": 200,
"expected_behavior": "Echoes back custom headers in response",
"metrics": ["latency", "accuracy", "status_code"],
"validation": {
"field": "headers.X-Custom-Header",
"type": "string",
"equals": "test-value"
}
},
{
"name": "large_payload_test",
"endpoint": "/post",
"method": "POST",
"headers": {
"Content-Type": "application/json"
},
"payload": {
"large_array": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20],
"description": "This is a larger payload to test performance with bigger data sets and measure how the service handles more substantial JSON payloads",
"metadata": {
"test_type": "performance",
"benchmark_tool": "prowl",
"data_size": "medium"
}
},
"expected_status": 200,
"expected_behavior": "Handles and echoes back larger JSON payloads efficiently",
"metrics": ["latency", "accuracy", "status_code"],
"validation": {
"field": "json.large_array",
"type": "array",
"min_length": 20
}
},
{
"name": "anything_endpoint",
"endpoint": "/anything",
"method": "GET",
"headers": {
"X-Prowl-Test": "anything-endpoint"
},
"payload": {},
"expected_status": 200,
"expected_behavior": "Returns comprehensive request information via catch-all endpoint",
"metrics": ["latency", "accuracy", "status_code"],
"validation": {
"field": "method",
"type": "string",
"equals": "GET"
}
}
],
"pricing_probes": [
{
"name": "verify_free_tier",
"description": "Confirm service remains free with no usage tracking headers",
"endpoint": "/get",
"method": "GET",
"payload": {},
"check": "response should not contain billing or usage headers since service is completely free"
}
],
"stress_profile": {
"concurrent_requests": 8,
"duration_seconds": 15,
"ramp_up": true
}
}
```