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

  1. Write a request definition — a .bolla.yaml file with method, URL, auth, body, and assertions.
  2. Manual testingbolla --server, open the UI, send requests, inspect responses.
  3. Load testing — reference the request in a .scenario.yaml with ramp-up settings and performance gates.
  4. Mockingbolla --mock reads the examples: block and serves them as HTTP responses.
  5. CIbolla --ci --scenario my-scenario exits 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/