Load Testing — User Guide | YoBench
How to use the Load Testing module in YoBench: HTTP up to 500 threads and browser up to 20, ramp-up, RPS / latency / P95 / P99 metrics.
What the Load Testing module does
The module generates load against your web services so you can see how they behave under traffic. Two modes are supported: HTTP via undici running in worker threads (up to 500 concurrent threads) and browser via Chromium (up to 20 concurrent tabs). Metrics tick every second — RPS, latency, P95/P99, error rate and active threads.
What you get:
- High HTTP parallelism — up to 500 threads on one machine, no browser, minimal overhead.
- Browser mode — up to 20 concurrent Chromium tabs with
page.goto()andwaitUntil: networkidle2, for full-render checks. - Ramp-up — gradual thread increase (
ramp_step_threadsthreads everyramp_step_durationseconds). - Real-time metrics — one snapshot per second into
load_test_snapshots: RPS, average latency, P95/P99, error rate, active threads. - Proxy and auth — headers/cookies/query parameters are applied to every request.
- Persistent results — templates and reports stored locally.
Test parameters
When creating a template you specify:
- URL — required.
- HTTP method —
GETonly for now (hard-coded in the worker). - Headers — from the chosen auth profile (method
header). - Cookies — from the auth profile (method
cookie); injected into theCookieheader. - Threads — 1–500 for HTTP, 1–20 for browser.
- Duration — minimum 5 seconds, stored in seconds.
- Ramp-up —
ramp_enabled,ramp_step_duration(sec),ramp_step_threads(threads added per step). Available for HTTP mode only; browser mode always starts with all threads. - Proxy — a random IP from the chosen proxy group; auth supported.
- Auth profile — shared record from settings.
Only one test runs at a time — for measurement accuracy.
Real-time metrics
Snapshots are saved to load_test_snapshots every second:
- RPS — requests per second in the latest window.
- Avg latency — average response time in milliseconds.
- P95 — 95th percentile latency.
- P99 — 99th percentile latency.
- Error rate — percent of failed responses.
- Active threads — currently running threads (grows during ramp-up).
- Total requests / errors — cumulative counters.
The final report also includes P50 (median), Min and Max latency.
Memory caps on latency samples: HTTP — 50,000 most recent, browser — 10,000.
Global settings
There are no dedicated loadTesting* keys in the central settings — all parameters live in templates (load_test_templates) and reports (load_test_reports).
Workflow
1. Create a template
- Open the Load Testing module from the left sidebar.
- On the Templates tab click Create template.
- Fill in URL, mode (HTTP / Browser), thread count, duration.
- Optionally enable ramp-up and set steps.
- Pick a proxy group and an auth profile.
- Save.
2. Run a test
The Run button next to a template creates a report in running status. Only one test at a time. The Stop button cuts the run short; metrics are kept.
3. Review the report
On the Reports tab each entry has charts (RPS, latency, P95/P99, errors), summary numbers and the per-second snapshot list.
4. Compare runs
Use reports to compare results across code / proxy / environment changes. Re-run a template as often as needed — each run produces its own report.
Next steps
- Monitor the back-end during the test with Servers and Health Check.
- Use Site Audit for SEO and Lighthouse under normal load.
- For a full JS pipeline check, pick Browser mode (capped at 20 threads).
Help and feedback
Want POST/PUT/DELETE, request bodies, randomized data, or WebSocket load? Contact us via the feedback form.