bolla documentation
Everything you need to go from zero to load-testing in production.
Quickstart
Install bolla and run a load test in under 5 minutes.
Request format
Full .bolla.yaml schema — every field, every option.
Load testing
Scenarios, ramp-up profiles, gates, and live metrics.
CI / CD
Headless --ci mode, JUnit output, GitHub Actions.
Mock server
Serve examples or auto-generated fake data from your collection.
REST API
All /api/* endpoints served by bolla --server.
What is bolla?
bolla is a single static binary that replaces four separate tools: your API client (Bruno/Postman), your load tester (k6/Locust), your mock server (Mockoon), and your CI runner (Newman). It uses a single plain-text YAML file — a request definition — as the source of truth for all four workflows.
No account. No cloud dependency. Collections are plain .bolla.yaml files that live in your git repo alongside your code.
How it works
- Write a request definition — a
.bolla.yamlfile with method, URL, auth, body, and assertions. - Manual testing —
bolla --server, open the UI, send requests, inspect responses. - Load testing — reference the request in a
.scenario.yamlwith ramp-up settings and performance gates. - Mocking —
bolla --mockreads theexamples:block and serves them as HTTP responses. - CI —
bolla --ci --scenario my-scenarioexits 0 on pass, 1 on fail.
Everything is opt-in. The core request builder and load testing are always on. Every other module is independently toggleable. Disabled modules vanish from the UI entirely.
Project structure
my-project/
├── users/
│ ├── create-user.bolla.yaml
│ ├── list-users.bolla.yaml
│ └── get-user.bolla.yaml
├── load/
│ └── smoke.scenario.yaml
├── staging.env.yaml
└── .bolla/
├── history.db
├── specs/
└── runs/