Skip to main content

Performance Testing Types: Key Benefits & Examples

Performance Testing Types: Key Benefits & Examples

Key takeaways

  • Load, stress, spike, soak (endurance), volume, scalability and capacity testing answer different questions; passing one says nothing about the others.
  • Load testing checks the expected peak. Stress goes past it. Spike is a sudden burst. Soak is normal load held for hours. Volume grows the data, not the users.
  • Soak testing finds leaks that a short run cannot, and spike testing finds recovery behaviour.
  • Pick the type from the risk you are trying to retire.

Performance testing types are the different ways of loading a system to answer different questions: does it meet its targets at the expected peak (load), where does it break (stress), does it survive a sudden burst (spike), does it stay healthy for hours (soak), does it cope with much more data (volume), and what will it take to grow (scalability and capacity). The definitions below follow the ISTQB Certified Tester Performance Testing syllabus, so they match the dedicated posts linked in each section.

What is performance testing?

Performance testing measures how a system behaves under a defined workload: response times, throughput, error rates and resource use. It is not only about making a page faster. It tells you whether the system holds up under the conditions you expect, and what happens when those conditions are exceeded.

Teams run it for four practical reasons. Slow or failing pages cost users and revenue. Finding a bottleneck before release is cheaper than finding it in production. Knowing the limits lets you plan for growth. And regular runs catch regressions in servers, networks and databases when a change lands.

Performance testing types at a glance

Test typeWhat changesQuestion it answers
Load testingUsers ramp to the expected level and holdDoes the system meet its targets at the traffic we expect?
Stress testingUsers climb past the expected peakWhere does it break, how does it fail, and does it recover?
Spike testingLoad jumps suddenly, holds briefly, drops backDoes it survive a sudden burst and return to normal?
Soak (endurance) testingNormal load held for hoursDoes anything build up over time, such as memory leaks?
Volume testingThe stored data grows; users stay fixedDoes it still perform when the tables are much larger?
Scalability testingLoad grows beyond today’s requirements, often with more resourcesCan the system meet future requirements, and what does it take?
Capacity testingLoad rises until targets are no longer metHow many users or transactions can it support while meeting its targets?

Load testing

Load testing applies the expected workload, up to the forecast peak, and checks that the system meets its performance targets. A retail site preparing for a seasonal sale would simulate the browsing and checkout traffic it forecasts and watch response times and errors. It finds the bottlenecks that only show with concurrent users. For the details and the contrast with the next type, read load testing vs stress testing.

Stress testing

Stress testing goes past the expected peak, or reduces the resources available, to find the breaking point, the way the system fails and whether it recovers. The question is not only “what is the maximum” but “does it fail safely”: a payment service that rejects requests cleanly at overload is better than one that corrupts data. The comparison post above covers how stress and breakpoint tests differ.

Spike testing

Spike testing applies a sudden, large increase (or drop) in load and then returns to a steady state. A news site that gets linked from a front page is the usual picture. It shows whether autoscaling reacts fast enough and how quickly latency recovers. See spike testing in performance testing for a k6 and JMeter walk-through.

Soak (endurance) testing

Soak testing, also called endurance testing, holds a normal load for a long time, many hours or days, to find problems that only appear with time: memory leaks, exhausted connection pools, growing queues and disk filling with logs. A short test cannot show these. The full method is in endurance testing (soak testing).

Volume testing

Volume testing keeps the user count realistic and grows the data instead: bigger tables, more files, deeper queues. It answers whether the application still works in two years, when the database holds far more rows. See volume testing in software testing.

Scalability and capacity testing

These two are defined separately in the ISTQB syllabus. Scalability testing evaluates whether the system can meet efficiency requirements beyond those it has today, for example after a planned growth in users. Capacity testing finds how much load the system can take while still meeting its targets, which is the number a stress test lets you state. Neither needs a separate tool: both are load tests run with a different question and a different stopping rule.

How do I pick the right performance test?

Start from the risk. If a launch or sale is coming, run a load test at the forecast peak, then a stress test to learn the margin. If traffic can arrive in bursts (a newsletter, a viral link), add a spike test. If the service runs for days without a restart, add a soak test. If the database will grow, add a volume test. A smoke test is a different thing again: a quick check that the system runs at all, see smoke testing.

Running a basic load test

For scripting, Apache JMeter is a common open-source choice. A basic HTTP GET sampler looks like this in the test plan file (the .jmx):

<HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Sample HTTP Request" enabled="true">
  <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
    <collectionProp name="Arguments.arguments">
      <elementProp name="param1" elementType="HTTPArgument">
        <boolProp name="HTTPArgument.always_encode">true</boolProp>
        <stringProp name="Argument.value">value1</stringProp>
        <stringProp name="Argument.metadata">=</stringProp>
        <boolProp name="HTTPArgument.use_equals">true</boolProp>
        <stringProp name="Argument.name">param1</stringProp>
      </elementProp>
    </collectionProp>
  </elementProp>
  <stringProp name="HTTPSampler.domain">www.example.com</stringProp>
  <stringProp name="HTTPSampler.port">80</stringProp>
  <stringProp name="HTTPSampler.protocol">http</stringProp>
  <stringProp name="HTTPSampler.path">/api/test</stringProp>
  <stringProp name="HTTPSampler.method">GET</stringProp>
</HTTPSamplerProxy>

You normally build this in the JMeter GUI rather than by hand. Change the domain and path to point at your own test environment. The shape of the load (how fast users arrive and how long they stay) is set in the thread group, see the JMeter ramp-up period.

Running these tests with LoadFocus

LoadFocus runs load tests for websites and APIs from 25 cloud regions (the product page, October 2026), and can run JMeter or k6 scripts you already have. Results stream in live with response time, throughput, percentiles and error charts, and you can set pass/fail thresholds on P95 or P99 response time, error rate and throughput. A GitHub Action and a Jenkins plugin can fail a build when a threshold is breached, which is how a load test becomes part of CI/CD. For existing JMeter plans see JMeter load testing in the cloud.

Frequently Asked Questions

How many types of performance testing are there?

There is no single official count. The ISTQB performance testing syllabus defines load, stress, spike, endurance, scalability and capacity testing, and volume testing (data growth) is commonly listed alongside them. The four most often named are load, stress, spike and soak.

What is the difference between load testing and performance testing?

Performance testing is the umbrella term for every test of speed, stability and scalability under a workload. Load testing is one type of it: the expected workload, checked against targets.

Is endurance testing the same as soak testing?

Yes. Both names describe holding a normal load for a long period to find leaks and gradual degradation.

What is performance testing in QA?

It is the part of QA that checks non-functional behaviour: how fast and how stable the application is under a stated workload. It sits next to functional, security and usability testing, and its results are compared against agreed targets before release.

Which performance test should I run first?

Run a smoke test to confirm the script and the environment work, then a load test at the expected peak. The results of that run tell you which of the other types matter most.

Sources

  • ISTQB Certified Tester Performance Testing syllabus v1.0, section 1.2 (definitions of load, stress, spike, endurance, capacity and scalability testing): istqb.org (read October 2026)
  • LoadFocus product pages: loadfocus.com/load-testing and loadfocus.com/jmeter-load-testing (read 2026-10-23)

Chris

Head of Content at LoadFocus

Chris leads content and oversees development across the services this blog covers. The guides and tool comparisons here come out of the same decisions that shape what ships.

Weekly tips right in your inbox.

Don’t miss out on the latest testing tips and tricks, tools and news related to software testing.

Already +20,000 members in the list.

The Load Testing Platform with AI That Explains Your Results

Load test websites and APIs from 25 cloud regions, monitor page speed and uptime, and get AI analysis that explains your results in plain English.

Cloud load testing, website speed and API monitoring in one place.

Hi there! Can I share a cool thing I'm working on with you?

A software testing newsletter that sparks joy.

Our goal is to create helpful content for software developers and testers.

If you're not into it, you can unsubscribe instantly.