Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Generates and executes load test scripts for APIs using k6, wrk, or autocannon. Creates realistic test scenarios from OpenAPI specs, route files, or endpoint descriptions. Use when someone needs to load test, stress test, benchmark, or find the breaking point of their API. Trigger words: load test, stress test, benchmark, RPS, concurrent users, breaking point, performance test, k6, wrk.
| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-12 | ✗→✓ | ▲ Improved | 38% | 0% |
| case-18 | ✗→✓ | ▲ Improved | 42% | 0% |
| case-09 | ✓→✗ | ▼ Worse | 62% | 0% |
| case-13 | ✓→✗ | ▼ Worse | 76% | 0% |
| case-17 | ✓→✗ | ▼ Worse | 37% | 0% |
This skill generates realistic load test scripts from API definitions and executes them with proper ramp-up patterns, authentication flows, and assertions. It produces clear reports identifying breaking points, bottlenecks, and latency percentiles at each traffic level.
Prefer k6 for complex scenarios (multi-step flows, thresholds, custom metrics). Use wrk for quick single-endpoint benchmarks. Use autocannon if only Node.js is available.
Gather endpoint information from:
Read request/response types from the codebase (TypeScript interfaces, Python dataclasses, Go structs) and generate payloads with:
Create scenarios appropriate for the goal:
Ramp-up test (finding breaking point):
stages: [
{ duration: '2m', target: 50 }, // warm-up
{ duration: '5m', target: 200 }, // ramp
{ duration: '3m', target: 500 }, // push
{ duration: '2m', target: 500 }, // sustain
{ duration: '2m', target: 0 }, // cool-down
]Soak test (finding memory leaks, connection exhaustion):
stages: [
{ duration: '5m', target: 100 }, // ramp
{ duration: '60m', target: 100 }, // sustain
{ duration: '5m', target: 0 }, // cool-down
]Spike test (sudden traffic burst):
stages: [
{ duration: '2m', target: 50 }, // normal
{ duration: '30s', target: 500 }, // spike
{ duration: '5m', target: 500 }, // sustain spike
{ duration: '30s', target: 50 }, // drop back
]Always add thresholds:
javascriptthresholds: { http_req_duration: ['p(95)<800', 'p(99)<2000'], http_req_failed: ['rate<0.05'], // Custom per-endpoint if needed }
Run the test and parse output into a structured report showing:
User prompt:
Benchmark our /api/search endpoint handling 100 concurrent connectionsAgent output:
bash# Quick benchmark with k6 k6 run --vus 100 --duration 60s - <<'EOF' import http from 'k6/http'; import { check } from 'k6'; export default function () { const res = http.get('https://api.example.com/api/search?q=laptop&page=1'); check(res, { 'status 200': (r) => r.status === 200 }); } EOF
Results — /api/search @ 100 VUs for 60s
Requests: 8,423 total (140.4 RPS)
Latency: p50=89ms p95=340ms p99=890ms
Errors: 12 (0.14%)
Data: 24.3 MB received
Verdict: Endpoint handles 140 RPS at 100 VUs. p99 approaching 1s suggests
database query optimization needed for sustained higher load.User prompt:
Create a load test for our signup → login → create-project flowAgent generates a k6 script with:
sleep(1-3) between requests to simulate real users; without it, you're testing throughput, not user concurrencyOther measured skills in the registry, with their headline benchmark lift.