← All guides

Getting started

From zero to your first load test in about 5 minutes. No framework knowledge required.

1Create an account

Hit Get started free on the homepage and sign in with Google. You'll land on your dashboard with a default org already set up. No credit card, no trial timer.

2Verify your domain

Before you can test a domain, you need to prove you own it. Go to Settings → Domains and add your domain (e.g. api.yourapp.com).

LoadBolt will give you a DNS TXT record to add. Once the record propagates (usually a few minutes), click verify. That's it — you can now run load tests against that domain.

Why verify? It prevents anyone from load testing a domain they don't own. This is how we keep the platform safe.

3Create a project and test

From your dashboard, create a new project (think of it as a folder for related tests). Then create a test inside that project.

For your first test, keep it simple:

  • Target URL — the endpoint you want to hit (e.g. https://api.yourapp.com/health)
  • Virtual users — start with 10. Each VU is one concurrent connection.
  • Duration — 30 seconds is plenty for a first run

LoadBolt auto-generates a k6 script for you based on these settings. You don't need to write any code.

4Run your test

Hit Run test. Your test gets queued, a worker picks it up (usually within 30 seconds), and you'll see live metrics start streaming in: requests per second, latency percentiles, error rates — all updating in real-time.

Seeing a lot of errors? Your WAF or rate limiter might be blocking the test traffic. Check out our allowlisting guide to fix it.

5Read your results

Once the test finishes, you get a full results page with:

  • Latency percentiles — p50, p90, p95, p99. The p95 is usually the one to watch.
  • Requests per second — how many requests your server handled
  • Error rate — percentage of non-2xx responses
  • Per-endpoint breakdown — if your script hits multiple URLs, you'll see metrics for each one

If your p95 latency is under 500ms and your error rate is near zero, your app is handling the load fine. If not, you've found something worth investigating before real users hit it.

Going further: custom k6 scripts

The auto-generated script just hits a single URL. For more realistic tests, you can write custom k6 scripts in JavaScript. Here's a simple example that tests a login flow:

import http from "k6/http";
import { check, sleep } from "k6";

export default function () {
  // Hit the homepage
  const home = http.get("https://yourapp.com");
  check(home, { "homepage 200": (r) => r.status === 200 });

  // Log in
  const login = http.post("https://yourapp.com/api/login", JSON.stringify({
    email: "loadtest@yourapp.com",
    password: "test-password",
  }), { headers: { "Content-Type": "application/json" } });
  check(login, { "login 200": (r) => r.status === 200 });

  // Simulate think time between actions
  sleep(1);

  // Hit an authenticated endpoint
  const token = login.json("token");
  const dashboard = http.get("https://yourapp.com/api/dashboard", {
    headers: { Authorization: `Bearer ${token}` },
  });
  check(dashboard, { "dashboard 200": (r) => r.status === 200 });
}

Paste this into the script editor, adjust the URLs and credentials, and run it. Each virtual user will execute this entire flow in a loop for the duration of the test.

k6 has great docs if you want to go deeper — grafana.com/docs/k6. Everything you can do in k6, you can do in LoadBolt.

Start your first test