// Interview Prep/Prep plans/14-Day Performance Tester Prep Plan

๐Ÿ—“๏ธ 14-Day Performance Tester Prep Plan

Mid-to-senior performance testers preparing for a structured interview loop. Assumes you have run at least one load test before โ€” this plan sharpens your test design reasoning, builds coded interview-ready artefacts, and targets the specific question banks interviewers use for performance testing and results-analysis rounds.

14 days~1โ€“2 hrs/dayยทperformance tester role page โ†’

// GOAL

Arrive at the Performance Tester interview with working JMeter and k6 scripts on GitHub, a structured findings report, and confident answers to questions on load test design, NFR validation, bottleneck diagnosis, and results communication.

Phases01020304

// THE PLAN

01Days 1โ€“3 โ€” Performance fundamentals

Build precise vocabulary and mental models before touching any tool

// STUDY

  • Performance test taxonomy: load, stress, spike, soak, volume, and capacity tests โ€” what question each answers, when to run each in a release cycle, and how to explain the difference to a stakeholder who just says 'run a load test'
  • Non-functional requirements: how to define, document, and validate response time SLAs โ€” the difference between SLA (contractual), SLO (internal target), and SLI (the measured metric), and why confusing them causes reporting failures
  • Why averages lie: p50, p75, p95, and p99 percentile metrics, the long tail of user experience, and how to explain to a product manager why a 300 ms average response time coexists with a 12 s p99
  • Baseline testing: measuring the system's current performance profile under zero synthetic load so you have a meaningful comparison point before any load test begins

// PRACTISE

  • Read the Performance Tester role page and note the 3 topic areas where your vocabulary is least precise โ€” these become your re-study targets for Days 12โ€“14
  • Given the NFR '1,000 concurrent users, p95 response time < 2 s, error rate < 0.5%, sustained for 10 minutes', write a one-paragraph test approach: test type, ramp-up shape, hold duration, and pass/fail criteria
  • Write a 2-minute verbal explanation of why a reported average response time of 300 ms is insufficient information for a go/no-go decision โ€” what additional percentiles and error rates you would require, and why

Deliverable

A written test approach paragraph for the 1,000-user NFR and a written percentile-metrics explanation you could deliver confidently to a non-technical stakeholder.

02Days 4โ€“7 โ€” Tooling and scripting

Write realistic, parameterised load test scripts in both JMeter and k6

// STUDY

  • JMeter: thread groups, ramp-up periods, HTTP Sampler configuration, CSV Data Set Config for parameterised user data, Response Assertion for status and body, Listeners (Aggregate Report, Summary Report) for interpreting raw results
  • k6: VU lifecycle stages (init, setup, default, teardown), stages config for ramp-up/hold/ramp-down shapes, thresholds as machine-readable pass/fail criteria, checks for per-request assertions, and the k6 cloud results dashboard
  • Correlation: extracting dynamic values (CSRF tokens, session IDs, auth tokens) using JMeter's JSON Path Extractor or Regular Expression Extractor, or k6's response.json() โ€” without correlation, your test silently fails to represent real user behaviour
  • Think time and pacing: simulating realistic user cadence with sleep() or JMeter's Constant Throughput Timer โ€” why omitting think time creates an artificial thundering-herd scenario that overstates load and invalidates results

// PRACTISE

  • Write a JMeter test plan against reqres.in or httpbin.org: thread group of 50 users, 60-second ramp-up, 3-minute hold, HTTP Sampler with a Response Assertion on status code and response body โ€” run it and screenshot the Aggregate Report
  • Write the same scenario in k6: 50 VUs, stages array for ramp-up/hold/ramp-down, thresholds set to fail if p95 > 2 s or error rate > 1%, and a check on status code for every request
  • Add parameterisation to both scripts: load test usernames and email addresses from a CSV file so no two virtual users send identical request bodies โ€” verify the CSV is consumed correctly in the Aggregate Report

Deliverable

Working JMeter and k6 scripts for the same 50-VU scenario, both with CSV parameterisation โ€” committed to a public GitHub repository with a README that includes the exact command to run each.

03Days 8โ€“11 โ€” Execution and analysis

Run a test against a realistic target, read the results, and diagnose what the numbers mean

// STUDY

  • Workload modelling: identifying the user journeys to simulate, their relative transaction mix (e.g. 60% browse / 30% search / 10% checkout), and how to convert real traffic data or business estimates into a k6 or JMeter scenario
  • Bottleneck identification: CPU and memory saturation, database connection pool exhaustion, GC pause spikes, external dependency latency โ€” the signal each leaves in the results (throughput plateau, error spike, p99 spike while p50 stays stable)
  • Reading results: Grafana + InfluxDB real-time dashboards, JMeter Aggregate Report columns (average, median, p90, p95, p99, error%), and k6 end-of-run summary โ€” how to correlate a throughput plateau with an error spike
  • Findings report structure: observed metric vs NFR threshold, likely root cause, how you would confirm the root cause, and remediation options โ€” written for both an engineering audience and a product manager

// PRACTISE

  • Run a stress test that intentionally exceeds the target system's capacity: ramp VUs beyond the point where p95 exceeds 2 s or errors appear โ€” capture the breakdown point (VU count, throughput, error rate, p99) in your Aggregate Report or k6 summary
  • From the raw results, write a structured 1-page findings report: what degraded, at what user count, what the likely bottleneck is, and what further investigation you would request from the engineering team
  • Given this fabricated results table: at 200 VUs p50 = 180 ms / p99 = 420 ms / error = 0.0%; at 400 VUs p50 = 210 ms / p99 = 4,200 ms / error = 2.3%; at 500 VUs p50 = 230 ms / p99 = 12,000 ms / error = 8.7% โ€” write a diagnosis paragraph identifying what the numbers indicate and the first 3 things you would check

Deliverable

A 1-page findings report from your stress test plus a written diagnosis of the fabricated results table โ€” both structured as you would present them to an engineering team.

04Days 12โ€“14 โ€” Review and mock

Consolidate gaps, work through the question banks, and simulate the results-presentation interview

// STUDY

  • Performance bank: test type selection reasoning, NFR definition and validation, percentile metrics, JMeter Listeners interpretation, k6 thresholds and checks syntax, and bottleneck diagnosis patterns
  • CI/CD bank: integrating k6 or JMeter into a GitHub Actions pipeline, threshold-gated build failures, publishing HTML results as artifacts โ€” increasingly common in senior performance interviews
  • Behavioural bank: critical bottleneck found two days before release, a stakeholder dismissing p99 data as 'edge cases', a test environment too small to simulate production traffic โ€” practise structured STAR answers
  • Revisit any tool syntax (JMeter JSON Path Extractor, k6 stages, thresholds format) that felt shaky or caused errors during Days 4โ€“7

// PRACTISE

  • Answer 10 questions aloud from the performance testing and CI/CD question banks โ€” time yourself at 90 seconds per answer and flag every question where you gave a definition rather than a concrete example
  • Identify your 5 weakest answers and write a worked example for each, referencing the scripts and findings report you produced during the plan
  • Run a 30-minute timed mock: given an NFR brief, design a load test on paper โ€” scenario, ramp shape, duration, parameterisation strategy, and pass/fail threshold definitions โ€” then present it aloud in 5 minutes as you would to a senior engineer

Deliverable

Written answers to your 5 weakest questions and a complete load-test design document from the mock exercise โ€” ready to use as talking points in the interview.

05Day 14 โ€” Mock task

Capstone: simulate the technical interview task

Mock task

Set a 45-minute timer. Part 1 โ€” test design (20 minutes): you receive the following NFR โ€” 'The checkout API must handle 500 concurrent users at peak, p95 response time < 1.5 s, error rate < 0.1%, sustained for 10 minutes.' On paper or in a document, design the load test: identify the test type, ramp-up shape and duration, user journey (POST /cart โ†’ POST /checkout โ†’ GET /order-confirmation), parameterisation strategy (unique user IDs and basket contents per VU), the k6 thresholds or JMeter assertions you would use, and the monitoring data you would collect alongside the test. Part 2 โ€” results analysis (20 minutes): you are shown this results table โ€” at 200 VUs: p50 = 180 ms, p95 = 850 ms, error rate = 0.0%; at 400 VUs: p50 = 210 ms, p95 = 4,100 ms, error rate = 2.3%; at 500 VUs: p50 = 230 ms, p95 = 12,000 ms, error rate = 8.7%. Write a structured findings report: state whether the NFR is met, describe what you observe at each threshold, name the most likely bottleneck, list the first 3 things you would investigate to confirm it, and state your recommendation. Part 3 (5 minutes): write a 3-sentence executive summary that a product manager could act on before tomorrow's release call.