loadr

loadr is a load testing platform in a single binary. It combines the two dominant traditions in load testing:

  • k6's model: scriptable tests, open/closed load models with precise executors, a first-class metrics engine with thresholds as pass/fail criteria, and a great CLI experience.
  • JMeter's breadth: rich assertions (response code, body, JSONPath, XPath, size, duration), extractors (regex, boundary, CSS, XPath), timers (constant, uniform, gaussian, constant-throughput), CSV data sets, cookie management, and broad protocol coverage.

…and adds what both lack: declarative YAML test definitions validated by a JSON Schema, a plugin system (sandboxed WASM components and native libraries), built-in distributed execution with mathematically correct percentile aggregation, and a built-in management web UI.

A taste

name: smoke
defaults:
  http: { base_url: https://api.example.com }

scenarios:
  api:
    executor: constant-arrival-rate
    rate: 100
    duration: 5m
    pre_allocated_vus: 50
    flow:
      - request:
          url: /search?q=widgets
          extract: [ { type: jsonpath, name: first, expression: "$.results[0].id" } ]
          checks: [ { type: status, equals: 200 } ]
      - request: { url: "/items/${first}" }

thresholds:
  http_req_duration: [ "p(95)<300" ]
  http_req_failed: [ "rate<0.01" ]
loadr run smoke.yaml          # exit code 0 when thresholds pass, 99 when not

How the pieces fit

ComponentWhat it does
loadr runrun a test locally (standalone mode)
loadr controller + loadr agentdistribute one test across a fleet
loadr validatelint a test file with line/column diagnostics
loadr convertimport JMeter .jmx files and k6 scripts
loadr reportrender an HTML report from saved results
Web UIlive dashboards, test editing, fleet management
Pluginsnew protocols, outputs, extractors, assertions, services

Continue with Installation, or jump to the YAML reference, the JS API, or the migration guides.