Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Execute comprehensive load and stress testing to validate API performance and scalability. Use when validating API performance under load. Trigger with phrases like "load test the API", "stress test API", or "benchmark API performance".
.claude/skills/jeremylongshore-load-testing-apis/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-12 | ✗→✓ | ▲ Improved | 86% | 0% |
| case-08 | ✗→✓ | ▲ Improved | 112% | 0% |
| case-10 | ✗→✓ | ▲ Improved | 454% | 0% |
| case-11 | ✗→✓ | ▲ Improved | 114% | 0% |
| case-17 | ✗→✓ | ▲ Improved | 72% | 0% |
Execute comprehensive load, stress, and soak tests to validate API performance, identify bottlenecks, and establish throughput baselines. Generate test scripts for k6, Artillery, or wrk that simulate realistic traffic patterns with configurable virtual user ramp-up, request distribution, and failure threshold assertions.
See ${CLAUDE_SKILL_DIR}/references/implementation.md for the full implementation guide.
${CLAUDE_SKILL_DIR}/load-tests/scenarios/ - k6/Artillery test scripts per traffic scenario${CLAUDE_SKILL_DIR}/load-tests/data/ - Test data fixtures (users, payloads, tokens)${CLAUDE_SKILL_DIR}/load-tests/thresholds.json - Pass/fail threshold configuration${CLAUDE_SKILL_DIR}/reports/load-test-results.json - Raw test results with timing data${CLAUDE_SKILL_DIR}/reports/load-test-summary.md - Human-readable performance analysis report${CLAUDE_SKILL_DIR}/reports/bottleneck-analysis.md - Identified bottlenecks with remediation recommendations| Error | Cause | Solution | |-------|-------|----------| | Connection refused | Target server ran out of file descriptors or connection pool exhausted | Increase server ulimit and connection pool size; note the concurrent connection limit | | Timeout spike at ramp-up | Server cannot handle connection establishment rate | Implement connection pre-warming; increase ramp-up duration; add connection pooling | | 429 responses dominate results | Rate limiter engaging during load test | Whitelist load test source IPs in rate limiter; or test rate limiter behavior separately | | Inconsistent baseline results | Shared staging environment with other traffic | Isolate test environment; run tests during off-hours; use dedicated performance environment | | Memory leak detected | Soak test shows steadily increasing memory over hours | Flag for development team; identify leaking endpoint by isolating test scenarios |
Refer to ${CLAUDE_SKILL_DIR}/references/errors.md for comprehensive error patterns.
E-commerce checkout flow: Simulate 500 concurrent users browsing products (GET, 70%), adding to cart (POST, 20%), and completing checkout (POST, 10%) with 2-5 second think times between actions.
API spike test: Ramp from 50 to 1000 virtual users in 30 seconds to simulate traffic spike from marketing campaign launch, verifying the auto-scaler responds and latency recovers within 60 seconds.
Soak test for memory leaks: Sustain 200 concurrent users for 4 hours, monitoring server memory, connection counts, and response times for degradation patterns indicating resource leaks.
See ${CLAUDE_SKILL_DIR}/references/examples.md for additional examples.
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-12 | fail→pass | 15,288 | 30,222 | +98% | 1 | 1 | 0% | 2,534 | 4,713 | +86% | 0 | 0 | — |
case-01 | fail→fail | 38,809 | 15,068 | -61% | 1 | 1 | 0% | 5,118 | 1,310 | -74% | 0 | 0 | — |
case-02 | fail→fail | 47,580 | 14,881 | -69% | 1 | 1 | 0% | 8,147 | 1,353 | -83% | 0 | 0 | — |
case-03 | fail→fail | 35,899 | 13,925 | -61% | 1 | 1 | 0% | 5,956 | 1,436 | -76% | 0 | 0 | — |
case-04 | pass→pass | 23,758 | 21,178 | -11% | 1 | 1 | 0% | 3,809 | 4,437 | +16% | 0 | 0 | — |
case-05 | pass→pass | 19,984 | 21,452 | +7% | 1 | 1 | 0% | 3,488 | 4,807 | +38% | 0 | 0 | — |
case-06 | pass→pass | 13,789 | 15,949 | +16% | 1 | 1 | 0% | 2,384 | 3,269 | +37% | 0 | 0 | — |
case-07 | pass→pass | 19,557 | 17,944 | -8% | 1 | 1 | 0% | 2,117 | 3,606 | +70% | 0 | 0 | — |
case-08 | fail→pass | 22,010 | 26,466 | +20% | 1 | 1 | 0% | 2,596 | 5,492 | +112% | 0 | 0 | — |
case-09 | pass→pass | 27,313 | 34,224 | +25% | 1 | 1 | 0% | 3,153 | 3,940 | +25% | 0 | 0 | — |
case-10 | fail→pass | 12,407 | 36,289 | +192% | 1 | 1 | 0% | 1,391 | 7,705 | +454% | 0 | 0 | — |
case-11 | fail→pass | 15,741 | 22,515 | +43% | 1 | 1 | 0% | 1,751 | 3,755 | +114% | 0 | 0 | — |
case-13 | pass→pass | 17,149 | 19,094 | +11% | 1 | 1 | 0% | 2,294 | 3,344 | +46% | 0 | 0 | — |
case-14 | pass→pass | 13,684 | 16,232 | +19% | 1 | 1 | 0% | 2,149 | 3,453 | +61% | 0 | 0 | — |
case-15 | pass→pass | 14,464 | 17,496 | +21% | 1 | 1 | 0% | 2,154 | 3,573 | +66% | 0 | 0 | — |
case-16 | pass→pass | 18,887 | 22,174 | +17% | 1 | 1 | 0% | 2,669 | 3,904 | +46% | 0 | 0 | — |
case-17 | fail→pass | 22,301 | 20,715 | -7% | 1 | 1 | 0% | 2,583 | 4,430 | +72% | 0 | 0 | — |
case-18 | fail→fail | 17,157 | 7,494 | -56% | 1 | 1 | 0% | 1,971 | 1,522 | -23% | 0 | 0 | — |
case-19 | fail→fail | 21,278 | 7,433 | -65% | 1 | 1 | 0% | 2,286 | 1,569 | -31% | 0 | 0 | — |
case-20 | fail→pass | 21,671 | 21,909 | +1% | 1 | 1 | 0% | 2,531 | 4,194 | +66% | 0 | 0 | — |
case-21 | fail→fail | 17,812 | 20,989 | +18% | 1 | 1 | 0% | 1,982 | 3,413 | +72% | 0 | 0 | — |
case-22 | fail→fail | 19,319 | 20,235 | +5% | 1 | 1 | 0% | 2,010 | 3,351 | +67% | 0 | 0 | — |
case-23 | pass→pass | 24,342 | 22,948 | -6% | 1 | 1 | 0% | 2,646 | 3,795 | +43% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 23 cases were attempted, and 20 counted toward the lift figure. The other 3 produced results that are not comparable between the two arms, so they are excluded from the headline rather than averaged into it. The headline lift of +26 percentage points is the difference between those two pass rates over the 20 comparable cases. 1 case got worse with the skill loaded, and it is included in that figure.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.