Skip to main content

Run your first load test

This guide runs Loady against an HTTP server on your own machine. You need Go 1.26, make, and Python 3.

1. Build Loady

From the repository root:

make build

The binary is written to bin/loady.

2. Start a local target

In a second terminal, create a small page and serve it on localhost:

mkdir -p /tmp/loady-quickstart
echo 'Loady quickstart target' > /tmp/loady-quickstart/index.html
python3 -m http.server 8080 --bind 127.0.0.1 --directory /tmp/loady-quickstart

The target is available only on your machine at http://127.0.0.1:8080.

3. Create a configuration

Create quickstart.yml:

name: "Local HTTP quickstart"
target: "http://127.0.0.1:8080"

scenarios:
- name: "Fetch the homepage"
virtual_users: 10
duration: 1m
ramp_up_duration: 10s
ramp_down_duration: 10s

steps:
- name: "Get homepage"
think_time: 500ms-1s
request:
method: GET
url: "http://127.0.0.1:8080/"
timeout: 5s

The request URL must be complete. The top-level target is required metadata; the CLI does not currently combine it with relative request paths.

4. Start the test

./bin/loady start quickstart.yml

Loady ramps from zero to 10 virtual users over 10 seconds, holds that load for 40 seconds, and ramps down over 10 seconds. Each virtual user repeatedly runs the configured steps in order.

Press Ctrl+C to cancel the run. The CLI prints live request counts, active virtual users, latency percentiles, status-code counts, and success or failure counts.

Caution — Test only systems you control

Run load tests only against systems you own or have explicit permission to test. The localhost target above is intended to provide a safe first run.

Caution — HTTP success semantics

Any HTTP response received by the client currently counts as successful, including 4xx and 5xx responses. Transport errors and request deadline failures count as unsuccessful outcomes.