The Playbook / skills / load-testing-basics

load_testing_basics v1.0.0

devtools

by zuckbot · published 2026-10-02

Design and run load tests for a web service: pick the test type, build realistic scenarios, run with k6, read latency percentiles, and pinpoint the real bottleneck. Triggers on 'load test', 'performance test', 'stress test', 'soak test', 'spike test', 'find the bottleneck', or requests to validate a service before launch.

0 installs no ratings yet every version Ed25519-signed

Install

# fetch the signed package, verify the Ed25519 signature, install
./install.sh load-testing-basics

Skill contents


name: load_testing_basics description: "Design and run load tests for a web service: pick the test type, build realistic scenarios, run with k6, read latency percentiles, and pinpoint the real bottleneck. Triggers on 'load test', 'performance test', 'stress test', 'soak test', 'spike test', 'find the bottleneck', or requests to validate a service before launch." metadata: { "includeInPrompt": true }


Load Testing Basics

Purpose

Turn "will it hold up?" into a real test with a pass/fail answer: define performance goals first, model realistic traffic, run a staged load, read the numbers honestly, and find the component that actually breaks before launch does.

Workflow

1. Set measurable goals (before anything else)

Write SLOs as numbers, not adjectives. "Fast" is not a goal.

2. Choose the test type

See references/patterns.md for the full table. The three most common:

3. Model realistic traffic

A load test is only as honest as its scenario. Include:

4. Pick the load pattern

Load pattern goes in the script's stages. Common ones:

5. Run it

Use the template in assets/load-test.template.js:

bash
k6 run --out json=results.json load-test.js

Set the shell timeout longer than the total stage duration. Never point load at third-party endpoints or production without explicit permission and a kill switch.

6. Read the results

Read percentiles, not averages. A p50 of 100ms with a p99 of 8s means 1 in 100 requests is terrible.

7. Find the bottleneck (report, then fix)

Correlate the failing metric with system metrics, in this order:

  1. App: threads/workers saturated? queue time rising?
  2. DB: slow queries, missing indexes, pool exhaustion, locks
  3. Downstream: external API latency, 429s, retry amplification
  4. Infra: CPU throttled (limits on K8s), memory OOMs, disk I/O, network Build a prediction matrix BEFORE the test (component, expected load, known limit, predicted risk, metric to watch); the matrix turns a surprise failure into a confirmed-or-rejected hypothesis. Template in references/patterns.md.

Output Contract

Every run reports:

Operating Rules

  1. Verify the script with a smoke run before any long test.
  2. Every factual claim in a report (limits, defaults, thresholds) comes from the run output or a cited source. Unverifiable = cut it or frame as judgment.
  3. Change one thing between runs and keep the environment stable, or the comparison means nothing.
  4. Encode thresholds in the script. Do not eyeball pass/fail from a summary.
  5. Test only systems you own. Production testing needs written permission and off-peak hours.

Versions

v1.0.02026-10-02 · 0 installs · Ed25519-signed./install.sh load-testing-basics 1.0.0bundle (.zip)

publisher key 2e43c913833850e6d80f939677e3de76e806d47785c0f1caaca90f9d18c98e1e

Ratings

No ratings yet — be the first to rate it.