API tests your app writes for you.
Record in development. Get YAML flows in your repo. Run them on every pull request.
1Install
The CLI and a recorder that runs in development only.
2Record
Use your app on localhost. Each journey becomes a YAML flow in api-tests/.
3Run on every PR
Writes the GitHub Actions workflow. Your flows run on each pull request.
A test is a file you can read.
Each flow lives in api-tests/ and goes through review like your code. Your coding agent can edit it too.
- request: name: Login method: POST url: '{{ #env:APP_URL }}/api/auth/login'1 body: { email: '{{ #env:TEST_EMAIL }}', password: '{{ #env:TEST_PASSWORD }}' }2 assertions: - response.status == 200- request: name: CreateOrder depends_on: Login method: POST url: '{{ #env:APP_URL }}/api/orders' headers: { Authorization: 'Bearer {{ Login.response.body.token }}' }3 body: { productId: 42, quantity: 1 } assertions: - response.status == 2014- 1
One address for every run
APP_URL points the flow at localhost, a preview, or the app CI starts.
- 2
No secrets in the file
Recorded secrets become environment references, listed in .env.example.
- 3
Steps feed each other
The login token goes into the next request. The recording maps it for you.
- 4
Plain assertions
Status codes and fields you can read in review, and edit like any other code.
The same flow, as a load test.
Any recorded flow can run under load, locally or from the cloud. See load testing.
What it doesn't do.
It's not an API client for sending requests by hand. Keep yours for that. Stresseur turns the way you already use your app into tests that run without you.
Start free.
Free
$0
1 private repo plus public repos. Pull request checks that warn.
Team
$499 /month
Unlimited repos, gates that fail the check, Slack alerts. Per workspace, not per member.
New workspaces get a 14-day Team trial, no card. All plans
