Skip to main content
Back to blog

API Performance Testing Best Practices

3 min read
Loadcurl
Loadcurl Team

Good API performance testing is less about exotic tools and more about discipline: realistic requests, clear SLOs, controlled RPS, and comparable reports.

Use this checklist as your default playbook.

1. Define success before you generate traffic​

Write pass criteria in one line:

At 200 RPS for 10 minutes with 60s ramp-up, successful p95 < 250 ms, errors < 0.5%, timeouts < 0.1%.

Without this, every run becomes a debate.

2. Prefer staging that mirrors production​

Match instance sizes, connection limits, cache configuration, and auth paths as closely as you can. Document gaps so you do not over-claim.

3. Author realistic HTTP requests​

Start from production traces or a known-good curl / Postman snippet. Include required headers and a representative JSON body. Avoid empty happy paths that skip validation or DB work.

4. Think in RPS, ramp-up, and duration​

  • RPS — arrival rate you care about
  • Ramp-up — time to reach that rate
  • Duration — hold long enough to exit warmup

Calculate RPS from traffic, not vibes — see How to Calculate RPS.

5. Climb a ladder​

Smoke → baseline → target → optional stress. Stop when SLOs fail; fix bottlenecks; continue. Jumping straight to peak hides the first breaking layer.

6. Watch percentiles and errors together​

Track p95/p99 on successful responses and error/timeout rates. Hitting target throughput with rising 5xx is not a pass. Background: p95 and p99.

7. Keep observability open during the run​

Dashboards for CPU, memory, DB connections, lock waits, queue depth, and downstream latency turn “it got slow” into “the pool saturated at 2k RPS.”

8. Change one variable between comparisons​

Same request, same RPS profile, one code or infra change. Export PDFs so reviews share the same artifact.

9. Verify ownership and respect safety​

Only test hosts you control. Use domain verification. Prefer staging. Coordinate production game days. Traffic is real.

10. Re-run after meaningful deploys​

A launch-week hero run goes stale. Keep a short regression profile in the team workspace and re-run when risk is high.

11. Separate Plan capacity from vanity peaks​

Know your tool and plan limits (max RPS, duration, monthly request quota). In Loadcurl, a start holds roughly duration × RPS. Check Usage before large rehearsals.

12. Share results in the language of the product​

Translate metrics for stakeholders: “We can sustain expected launch peak with p95 under budget” beats “p99 was 412.”

A minimal recurring profile​

StepRPSDurationPurpose
Smoke102 minSanity
Baseline50% peak5 minTrend
Peak100% peak10 minSLO check

Store the curl, the criteria, and the last PDF next to the service runbook.

How Loadcurl supports the practice​

Loadcurl keeps the loop tight: verify domain → paste curl / compose request → set RPS profile → poll live run → read latency/throughput report → export PDF. Personal workspaces work for solo engineers; company workspaces share tests, domains, and quota.

Docs: getting started, report card.

Browse all