Topic 8
32 items

Performance / Load

Depth ceilingCompetent user of ONE tool (k6) with a CI gate + results literacy. SHOULD-level differentiator, not a MUST gate. STOP before LoadRunner, JVM tuning, capacity modelling.

11 MUST · 11 SHOULD · 4 STRETCH · 6 SKIP

not started · 0 written · 32 not started

Foundations
not started0/3
  1. MUSTExplain
    Test types: load, stress, soak/endurance, spike, scalability

    Define each type and state when you would run it and what it catches.

    Asked 'Load vs stress vs soak vs spike - define each and when you'd run it.' (asked almost every perf interview)

    named in the job descriptions

  2. MUSTExplain
    Load testing vs performance testing (subset vs umbrella)

    Articulate that load testing is one type under the performance-testing umbrella (which also covers scalability, stability, resource use).

    Asked 'How is load testing different from performance testing?'

    asked in interviews, not named in any job description

  3. SHOULDExplain
    Non-functional / reliability / scalability testing framing

    Place performance inside the non-functional testing family (perf, reliability, scalability, resilience) and say what quality attribute each protects.

    Asked 'What non-functional testing have you done?' / 'How do you treat performance as a quality attribute?'

    named in the job descriptions

Metrics
not started0/4
  1. MUSTExplain
    Latency percentiles p50/p95/p99 + why over average

    Report and reason about tail latency, explaining why percentiles beat the mean.

    Asked 'Why report p95/p99 instead of average response time?' (the classic filter question)

    asked in interviews, not named in any job description

  2. MUSTExplain
    Throughput (RPS / requests-per-second)

    Define throughput and read the RPS the system sustains before it plateaus.

    Asked 'What metrics do you track in a perf test?' / 'What's a good throughput target and how do you set it?'

    asked in interviews, not named in any job description

  3. MUSTExplain
    Error rate under load

    Track the fraction of failed requests and distinguish 'slow' from 'failing' as load rises.

    Asked 'What metrics do you track?' / 'A test shows errors climbing at 500 VUs - what does that tell you?'

    asked in interviews, not named in any job description

  4. SHOULDExplain
    Secondary/system metrics: concurrent VUs, CPU/mem/disk-I/O, connection-pool usage

    Name the server-side resource metrics you'd watch alongside client-side latency/throughput.

    Asked 'What server metrics do you watch during a load test?'

    named in the job descriptions

Tooling
not started0/4
  1. MUSTBuild
    k6 as primary tool (install, run, VU model, JS/TS)

    Install k6, write and run a .js/.ts load test locally, and explain the VU (virtual user) execution model.

    Asked 'Walk me through how you'd load-test an API endpoint.' / 'Which tool have you used and why?'

    named in the job descriptions

  2. SHOULDRecognize
    JMeter literacy (read a .jmx, know the GUI + thread-group model)

    Recognize a JMeter test plan, its thread-group/sampler/listener structure, and know it's the legacy incumbent.

    Asked 'Have you used JMeter?' / 'Our team is on JMeter - can you work with it?'

    named in the job descriptions

  3. SHOULDRecognize
    Locust awareness (Python load-testing option)

    Know Locust is the Python-native alternative and when a Python-first team would prefer it.

    Asked 'Any experience with Locust?' / 'Why k6 over Locust?'

    named in the job descriptions

  4. SHOULDExplain
    Tool concurrency models (k6 goroutines-per-VU, JMeter thread-per-VU, Locust greenlets)

    Explain how each tool generates load and why VU != thread != request.

    Asked 'How does your tool generate concurrency?' / 'How many users can you drive from one machine?'

    asked in interviews, not named in any job description

Scripting
not started0/5
  1. MUSTApply
    HTTP requests + check() assertions

    Fire HTTP calls and assert on status and response time inside the script.

    Asked part of 'walk me through a load-test script'

    named in the job descriptions

  2. MUSTApply
    Load stages / ramp profiles (ramp-up, steady, ramp-down)

    Shape load over time with staged VU targets.

    Asked 'How do you shape the load in a test?' / 'What's your ramp profile?'

    asked in interviews, not named in any job description

  3. SHOULDExplain
    VU model vs arrival-rate model (constant-arrival-rate executor)

    Distinguish 'N concurrent users' (VU/ramping) from 'N requests/sec' (open-model arrival rate).

    Asked 'Do you test by concurrent users or by request rate? When each?'

    asked in interviews, not named in any job description

  4. SHOULDApply
    Parameterization / test data (SharedArray, CSV/JSON, unique users, env vars)

    Feed distinct data per VU/iteration so you don't hammer one cached record.

    Asked 'How do you avoid testing against a single cached record?' / 'How do you handle test data at load?'

    named in the job descriptions

  5. SHOULDApply
    Think-time / pacing (sleep, group)

    Insert realistic pauses and logically group requests so load models real users.

    Asked 'How do you make load realistic?'

    asked in interviews, not named in any job description

Thresholds/CI
not started0/3
  1. MUSTApply
    Thresholds as SLOs (p95<500ms, error-rate<1%, checks>98%)

    Encode pass/fail SLO criteria directly in the test so a breach = failed test.

    Asked 'How do you set pass/fail on a perf test?' / 'What SLO would you set and why?'

    asked in interviews, not named in any job description

  2. SHOULDExplain
    Baseline + trend / performance regression detection

    Keep a baseline and compare each run to prove or catch a regression.

    Asked 'How do you catch a perf regression before prod?'

    named in the job descriptions

  3. SHOULDBuild
    Perf regression gate in CI (non-zero exit, GitHub Actions job, results artifact)

    Wire the load test into CI so a threshold breach fails the build and results are published.

    Asked 'How do you put a performance test in CI without making it flaky?' - THE differentiating answer

    named in the job descriptions

Analysis
not started0/2
  1. MUSTExplain
    Bottleneck diagnosis (slow/unindexed queries, N+1, CPU/mem/disk saturation, pool exhaustion, network, memory leaks)

    Given a latency spike under load, reason through where the bottleneck lives (app vs DB vs network) and name the usual culprits.

    Asked 'p95 latency spikes under load - how do you find the bottleneck?' / 'What causes performance bottlenecks?'

    named in the job descriptions

  2. MUSTApply
    Read a results summary (p95/p99 tail, RPS plateau, error-onset knee)

    Interpret the end-of-run summary to locate the tail, the throughput ceiling, and where failures begin.

    Asked 'You ran the test - what do you look at in the results?'

    asked in interviews, not named in any job description

Monitoring/APM
not started0/1
  1. SHOULDRecognize
    APM correlation (Grafana / New Relic / Dynatrace / AppDynamics basics)

    Know the role APM plays: the load tool tells you WHAT slowed, APM tells you WHY.

    Asked 'How do you correlate a load-test result with server behaviour?'

    asked in interviews, not named in any job description

Stretch-Leverage
not started0/4
  1. STRETCHRecognize
    Real-time / low-latency + gRPC / WebSocket load testing

    Know k6 natively load-tests gRPC and WebSocket and what changes for low-latency real-time services.

    Asked 'Have you load-tested non-HTTP / real-time services?'

    named in the job descriptions

  2. STRETCHRecognize
    Distributed / cloud-run load + at-scale benchmarking (Grafana Cloud k6, multi-node)

    Know that distributed/cloud load-gen exists and when you'd need it (beyond one machine / multi-region).

    Asked 'How would you generate load beyond one machine?' (only in scale-heavy roles)

    named in the job descriptions

  3. STRETCHRecognize
    Modern k6 positioning (k6 v2.0 May-2026: TS default, AI-assisted workflows, browser/Playwright compat, Assertions API)

    Be current on what the modern tool offers, to pair perf with his 'modern stack / AI testing' narrative.

    Asked 'Why did you pick k6?' / signalling you track the modern tooling

    asked in interviews, not named in any job description

  4. STRETCHApply
    LLM / AI endpoint load testing (time-to-first-token, tokens/sec, variable-length + streaming responses, cost-per-request)

    Load-test token-streaming LLM APIs and reason about metrics that differ from normal REST.

    Asked 'How would you performance-test an AI/LLM feature?' - a talking point almost no competing SDET can give

    asked in interviews, not named in any job description

Skip-Overkill
not started0/6
Write to me

If any of this is something you can help with, or you think I have got it wrong, write and tell me. I read them all myself.

Dhanunjaya M.Dhanunjaya M
tvsdhanan009@gmail.com →

One address, no form, no list to join. I am not asking for money, and there is nothing set up here that could take any.