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.