Stress test your API
A stress test answers one question: how much load can this service take before the numbers stop looking good. Stresix applies the load, streams the percentiles live, and tells you what setup fits the result.
Why ramp the load
A fixed number of users hides the breaking point. Ramping reveals where latency starts climbing and errors start appearing, which is the number you want before a release.
What Stresix reports
The workspace streams virtual users, requests per second, p50, p95, p99, and error rate as the run happens. Nothing waits for the run to finish.
The recommendation at the end
The run maps the measured profile to the tier list and recommends the setup that fits. You get a deploy-ready answer, not a spreadsheet.
import http from 'k6/http';
import { check } from 'k6';
export const options = {
stages: [
{ duration: '1m', target: 500 },
{ duration: '3m', target: 2500 },
{ duration: '1m', target: 0 },
],
};
export default function () {
const response = http.get('https://your-app.example/api/health');
check(response, { 'status 200': (r) => r.status === 200 });
}Frequently asked questions
What is a good p95 for an API?
It depends on the endpoint, but a common target is under 200 ms for read paths and under 500 ms for writes. Measure your baseline before a release, then compare.
How many virtual users should I use?
Start at your expected peak traffic and ramp past it. Standard runs 2,500 VUs and Massive runs 10,000.
Do I need my own infrastructure to run the test?
No. Stresix provisions both servers for the run and removes them when it ends.
Related guides
stop guessing your specs. start knowing them.
point stresix at a target and get the number you can deploy on, in one run.
Start a load test