Smoke Test API Skill
Quick Reference - Load this first for fast context (~3KB)
Mission
Execute comprehensive API health smoke tests to validate service availability, response times, and critical endpoint functionality during release workflows.
Core Capabilities
- •Health Check Execution: Test API endpoints for availability and response time
- •Critical Endpoint Validation: Verify core API operations (CRUD, search, auth)
- •Response Validation: Check status codes, response structure, error handling
- •Performance SLA Validation: Ensure response times meet performance budgets
- •Multi-Environment Support: Test across pre-release, staging, production environments
When to Use This Skill
Use this skill when:
- •Executing pre-release smoke tests (before staging deployment)
- •Validating post-deployment health (after staging/production deployment)
- •Testing canary deployments (5%, 25%, 100% traffic)
- •Verifying rollback success (after rollback operations)
- •Running scheduled health checks (monitoring integration)
Quick Start
1. Load Skill in Agent
yaml
skills:
- name: smoke-test-api
path: skills/smoke-test-api/SKILL.md
2. Execute Health Checks
javascript
const { SmokeTestAPI } = require('./scripts/execute-health-checks.js');
const tester = new SmokeTestAPI({
baseUrl: 'https://staging.example.com',
timeout: 5000,
retries: 2
});
const result = await tester.executeHealthChecks({
environment: 'staging',
endpoints: [
{ path: '/health', method: 'GET', expectedStatus: 200 },
{ path: '/api/v1/users', method: 'GET', expectedStatus: 200 }
]
});
if (result.passed) {
console.log('✅ API health checks passed');
} else {
console.error('❌ API health checks failed');
}
3. Configuration Template
yaml
environment: staging
baseUrl: https://staging.example.com
timeout: 5000
retries: 2
endpoints:
- name: health-check
path: /health
method: GET
expectedStatus: 200
sla: 100
- name: list-users
path: /api/v1/users
method: GET
expectedStatus: 200
sla: 500
API Smoke Test Categories
1. Health Endpoints
- •System health:
/health,/ping,/status - •Database connectivity:
/health/db - •Cache connectivity:
/health/cache - •External service connectivity:
/health/integrations
2. Critical CRUD Operations
- •Create:
POST /api/v1/resource(201 Created) - •Read:
GET /api/v1/resource/:id(200 OK) - •Update:
PUT /api/v1/resource/:id(200 OK) - •Delete:
DELETE /api/v1/resource/:id(204 No Content)
3. Authentication & Authorization
- •Login:
POST /api/v1/auth/login(200 OK + token) - •Token validation:
GET /api/v1/auth/me(200 OK with user) - •Protected resource:
GET /api/v1/protected(401 without token, 200 with token)
4. Search & Query Operations
- •Search:
GET /api/v1/search?q=term(200 OK with results) - •Pagination:
GET /api/v1/resource?page=1&limit=10(200 OK with paginated results) - •Filtering:
GET /api/v1/resource?status=active(200 OK with filtered results)
5. Error Handling
- •Not found:
GET /api/v1/nonexistent(404 Not Found) - •Bad request:
POST /api/v1/resourcewith invalid data (400 Bad Request) - •Unauthorized:
GET /api/v1/protectedwithout token (401 Unauthorized)
Performance SLAs
javascript
const SLA_TARGETS = {
health: 100, // Health endpoints: ≤100ms
read: 500, // Read operations: ≤500ms
write: 1000, // Write operations: ≤1000ms
search: 2000, // Search operations: ≤2000ms
timeout: 5000 // Global timeout: ≤5000ms
};
Pass/Fail Criteria
Pass: All smoke tests must pass
- •✅ All endpoints return expected status codes
- •✅ All response times meet SLA targets
- •✅ All response structures are valid
- •✅ No unexpected errors or exceptions
Fail: Any smoke test failure blocks deployment
- •❌ Any endpoint returns unexpected status code
- •❌ Any response time exceeds SLA target
- •❌ Any response structure is invalid
- •❌ Any unexpected error or exception occurs
Execution Points
API smoke tests are executed at these points in the release workflow:
- •Pre-Release (before staging deployment): Validate API readiness
- •Post-Staging (after staging deployment): Verify staging API health
- •Canary 5% (5% traffic): Test canary API with minimal traffic
- •Canary 25% (25% traffic): Test canary API with moderate traffic
- •Canary 100% (100% traffic): Test canary API with full traffic
- •Post-Production (after production deployment): Verify production API health
- •Post-Rollback (after rollback): Validate rollback API health
Common Patterns
Pattern 1: Simple Health Check
javascript
const result = await tester.testEndpoint({
path: '/health',
method: 'GET',
expectedStatus: 200,
sla: 100
});
Pattern 2: Authenticated Request
javascript
const result = await tester.testEndpoint({
path: '/api/v1/users',
method: 'GET',
expectedStatus: 200,
sla: 500,
headers: {
'Authorization': `Bearer ${token}`
}
});
Pattern 3: POST with Body
javascript
const result = await tester.testEndpoint({
path: '/api/v1/users',
method: 'POST',
expectedStatus: 201,
sla: 1000,
body: {
name: 'Test User',
email: 'test@example.com'
}
});
Output Format
javascript
{
passed: true,
details: {
totalEndpoints: 10,
passed: 10,
failed: 0,
executionTime: 1234
},
reason: 'API smoke tests passed: All 10 endpoints responding',
metrics: {
endpointsPassed: 10,
endpointsFailed: 0,
averageResponseTime: 123,
executionTime: 1234
},
results: [
{
endpoint: '/health',
method: 'GET',
status: 200,
responseTime: 45,
sla: 100,
passed: true
}
]
}
Need More Detail?
For comprehensive documentation including:
- •Advanced testing patterns (retry logic, circuit breakers, rate limiting)
- •Multi-environment configurations
- •Integration with monitoring systems
- •Custom validation rules
- •Performance optimization strategies
Load: skills/smoke-test-api/REFERENCE.md (~15KB)