Straden: self-hosted load testing on k6, with agents that write the scripts
I've been building Straden for a while, and it's out now. It's an open-source, self-hosted load testing platform built on k6.
k6 is a good engine. What slows teams down is everything around it. Someone has to write the scripts, someone has to keep them working as the API changes, and after every run someone has to read a wall of numbers and work out what they mean. Straden handles that part, on your own server, with your own data.
What it is
Straden runs real k6 processes. Scenarios, thresholds, checks and multi-file scripts work exactly as they do in the CLI. Straden adds a web UI on top: projects, tests, a script editor, run history, and live monitoring.
You can write scripts yourself in the built-in editor. Or you can let the agents do it. A script agent plans, writes and validates k6 scripts, and it can fix them when something breaks. Which one you use is up to you, and you can mix both on the same project.
Run results
Every run gets its own page. At the top you see status, duration, max VUs, total requests, request rate, p95 and p99 latency, and error rate. Below that are response codes grouped by 2xx, 3xx, 4xx and 5xx, check pass rates, and which thresholds passed or failed.
Under the summary are live charts for active VUs, request rate, response time and error rate. These come from InfluxDB, where Straden streams every k6 sample, tagged by run, test and script. That means the charts update while the test is running, and the full history stays around afterwards so you can compare runs.
Agents that read the results
Once a run finishes, you can ask the Run Insight agent what happened. It looks at the k6 summary and thresholds, the time series, the raw k6 log and your script. If you've connected a repository, it reads your code too. If you've connected Prometheus or a database, it can line up the load you generated with what your servers were doing at the same moment.
That last part matters most. A p95 of 400ms tells you something is slow. A p95 of 400ms next to a database CPU spike at the same timestamp tells you where to look.
Connectors
Straden connects to:
- GitHub, GitLab, Bitbucket and Azure DevOps for your code
- Prometheus for server metrics
- PostgreSQL, MySQL, MongoDB and Redis for database and cache metrics
Agents only see what you connect.
Your models, your keys
The agents use whichever model you point them at. Bring a key for OpenAI, Anthropic, Gemini, Azure OpenAI, Bedrock, Mistral, Groq, DeepSeek, xAI or OpenRouter. Any OpenAI-compatible endpoint works, and so does a local model through Ollama. Keys are stored encrypted on your instance. Nothing goes through a Straden server, because there isn't one.
Install
curl -fsSLO https://raw.githubusercontent.com/kwasii1/straden/main/deploy/compose.yaml
docker compose up -d
Open http://localhost:8000, create the admin account, and you're in. One image runs the app, the websocket server, the runner and the scheduler. PostgreSQL, Redis and InfluxDB run alongside it.
Try it
Docs and install guide: https://straden.baidoo.dev
Code and issues: https://github.com/kwasii1/straden
If something breaks or something obvious is missing, open an issue. This is early, and the feedback decides what gets built next.
Top comments (0)