On this page10 sections

Load Test Plan

Define a comprehensive load test plan for a new checkout flow — covering objectives, workload model, success criteria, and risk assessment — before any scripting begins.

Role

Performance QA

Difficulty

Intermediate

Time limit

90 min

Category

performance

JMeterk6

Scenario

Your team is preparing to launch a redesigned checkout flow that handles both guest and registered-user purchases. The product manager estimates peak traffic of 500 concurrent users during a promotional event three weeks from now. Engineering wants a written load test plan signed off before any scripting starts — covering what will be tested, how load will be modelled, which metrics determine pass or fail, and what risks could invalidate the results.

Requirements

  • 1.State a clear test objective: what system behaviour is being validated, at which load level, and against which acceptance criteria
  • 2.Identify at least three in-scope user journeys (including the critical checkout path) and at least two explicit out-of-scope items with a brief justification for each exclusion
  • 3.Define the workload model: concurrent users per journey, ramp-up period, steady-state duration, and ramp-down — justified against the stated business scenario
  • 4.Describe the test environment and call out every known deviation from production (hardware, data volumes, third-party integrations, CDN) with a note on how each deviation could skew results
  • 5.Specify test data requirements: user account pool size, product catalogue state, payment sandbox configuration, and any pre-warming or seeding needed
  • 6.Define metrics and pass/fail thresholds: P90 and P95 response times, throughput (req/s), and error rate ceiling — expressed as concrete numbers, not ranges
  • 7.Produce a risk register with at least three entries covering risks that could prevent execution or invalidate results (shared environment contention, third-party API rate limits, test data collisions)
  • 8.Define entry criteria (what must be true before the test runs) and exit criteria (conditions that stop the test early or mark it complete)

Starter data

  • System under test: ShopFlow checkout — /cart, /checkout, /checkout/payment, /order/confirm
  • Business scenario: Black Friday promotional event; marketing expects peak of ~500 concurrent shoppers; SLA is P95 < 2 s for the checkout flow under peak load
  • Environment: pre-production environment on the same cloud tier as production but with 50% of the production database replica size
  • Third-party integrations: payment gateway (Stripe sandbox), inventory microservice, and email notification service
  • Current baseline: no load test data exists; application has never been tested beyond 50 concurrent users in manual QA

Expected deliverables

  • A structured load test plan document (Markdown or equivalent) with all sections: Objective, Scope, User Journeys, Workload Model, Environment, Test Data, Metrics & Thresholds, Risks & Dependencies, Entry Criteria, Exit Criteria
  • A workload model table listing each journey with: virtual user count, think time, ramp-up time, and steady-state duration
  • A metrics and thresholds table: metric name, target value, pass threshold, fail threshold
  • A risk register with at least three entries: risk description, likelihood, impact, and mitigation strategy
  • Entry criteria list (minimum three) and exit criteria list (minimum three, including at least one early-stop condition)
  • A brief (3–5 sentence) rationale for why out-of-scope items were excluded

Evaluation rubric

DimensionWhat reviewers look for
Objective clarityIs the objective specific enough to be testable? A good objective names the system component, the load level, and the acceptance threshold (e.g. 'Validate that the ShopFlow checkout flow sustains 500 concurrent users with P95 response time ≤ 2 s and error rate < 0.5% over a 30-minute steady state'). An objective that reads 'check if the system handles load' is not testable.
Workload modelling realismDoes the workload model reflect how real users actually behave? Are think times included between steps? Is the concurrent-user count derived from a stated business scenario rather than an arbitrary number? Does the ramp-up period allow the application to stabilise before assertions are measured?
Metric and threshold choiceAre the right percentiles chosen (P90/P95 are the QA industry standard for latency SLAs; P99 is appropriate for premium flows)? Are thresholds expressed as concrete numbers (P95 < 2 s) rather than vague targets ('should be fast')? Is error rate measured independently from latency, and is the threshold consistent with the stated SLA?
Environment and test data awarenessDoes the plan explicitly call out every known difference between the test environment and production? Does it quantify the impact of those differences on result validity? Is the test data strategy realistic — does it account for account uniqueness, data seeding, and cleanup to allow re-runs?
Risk and dependency communicationAre risks specific to this test run (not generic boilerplate)? Does the risk register identify the most likely execution blockers — shared environment contention, payment sandbox rate limits, test data collisions? Are mitigations actionable (e.g. 'reserve environment window') rather than generic ('coordinate with the team')?

Sample solution outline

  • Objective: Validate that ShopFlow checkout sustains 500 concurrent users with P95 response time ≤ 2 s and error rate < 0.5% over a 30-minute steady state, using the pre-production environment against Stripe sandbox
  • In-scope journeys: (1) Guest checkout — browse → add to cart → guest checkout → payment → order confirm; (2) Registered user checkout — login → browse → add to cart → checkout → payment → confirm; (3) Cart abandonment — browse → add to cart → exit without purchasing (read-heavy traffic pattern)
  • Out of scope: admin dashboard flows (low traffic volume, separate service); email notification delivery latency (external service, not part of checkout SLA)
  • Workload model: 350 VU guest checkout (think time 3 s per step), 100 VU registered checkout (think time 2 s), 50 VU browse/abandon; ramp-up 5 min, steady state 30 min, ramp-down 2 min
  • Metrics: P95 checkout end-to-end ≤ 2 s; P99 ≤ 4 s; throughput ≥ 100 req/s; error rate ≤ 0.5%; Stripe sandbox timeout rate tracked separately and not counted against error rate threshold
  • Risks: (1) Pre-prod DB is 50% of prod size → result may understate real latency at data scale — mitigation: note in report and flag for a prod-mirror run before go-live; (2) Stripe sandbox has a 100 req/s rate limit → cap payment VU concurrency to 80 to avoid artificial 429 errors; (3) Account pool exhaustion if VUs re-use login credentials → provision 600 unique test accounts and distribute with CSV data feeder
  • Entry criteria: pre-prod environment is deployed with latest release candidate; payment sandbox is confirmed reachable; 600 test accounts are seeded; environment reservation is confirmed for the test window
  • Exit criteria: 30-minute steady state completes with no infrastructure restart; OR error rate exceeds 5% for more than 2 minutes (early stop); OR pre-prod environment becomes unreachable (abort and reschedule)

Common mistakes

  • Setting VU count to an arbitrary round number ('let's test with 1000 users') without deriving it from a stated business scenario or traffic model
  • Omitting think time between steps — without think time the workload model is unrealistic (real users pause to read pages) and VU throughput will be artificially high
  • Defining metrics as 'response time should be acceptable' rather than concrete percentile thresholds — a plan without a pass/fail number cannot be signed off
  • Ignoring environment differences — failing to call out that the test DB is 50% of prod size means stakeholders may treat passing results as a production guarantee
  • Writing a risk register that lists generic items ('network issues', 'infrastructure problems') rather than risks specific to this test run and system
  • Confusing out-of-scope items with 'not tested yet' — out-of-scope must be justified (low traffic, separate SLA, external service) not simply deferred
  • Setting entry criteria so loose that the test can start in a degraded state — a broken third-party integration should be an entry-criteria blocker, not something discovered mid-run

Submission checklist

  • Test plan document with all sections: Objective, Scope, User Journeys, Workload Model, Environment, Test Data, Metrics & Thresholds, Risks & Dependencies, Entry Criteria, Exit Criteria
  • Workload model table with VU counts, think times, ramp-up, and steady-state duration per journey
  • Metrics table with concrete P90, P95, error rate, and throughput thresholds
  • Risk register with at least three specific, actionable entries
  • Minimum three entry criteria and three exit criteria (including at least one early-stop condition)
  • Rationale for out-of-scope exclusions (3–5 sentences)
  • All thresholds expressed as concrete numbers — no vague language

Extension ideas

  • +Add a soak test variant to the plan: define a 4-hour steady-state run at 60% peak load to detect memory leaks and connection pool exhaustion
  • +Add a spike test scenario: ramp from 100 to 800 VUs in 60 seconds to model a flash-sale traffic surge, with separate pass/fail thresholds
  • +Add a baseline test phase (20 VUs, 5 minutes) at the start of the plan to establish a performance baseline before applying load, enabling percentage-based degradation alerts