DEV Community

Cover image for Straden - Open Source Self Hosted Load Testing Platform
Kwasi Baidoo
Kwasi Baidoo

Posted on

Straden - Open Source Self Hosted Load Testing Platform

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
Enter fullscreen mode Exit fullscreen mode

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)