Types of load tests● Capacity Test● Stress Test● Endurance Test
Capacity TestGoal :Determine how much load your system can holdHow :Repeat the same scenario over and over, but add virtualusers every time until performance starts degrading.
A response time under 1 s is expected-> user cap : 1500 users
Stress TestGoal :Study system behavior in case of heavy load, during ANDafterHow :Find the max load your system can handle, and then runthe scenario with a heavier load.
10k users for 1 min, then 1k :webapp struggles, but stabilizes
Endurance TestGoal :Validate system behavior after a long period of activity.How :Run the scenario with a manageable load, but for a longperiod of time (several hours at least).
Fast memory leak :Runs fine for 2 minutes until heaps full...
RampsStart virtual users progressively, because thats what realusers do !Ramps also help to warm up your system.
ReportsThe purpose of load injectors : stress your app andproduces reports● Meaningful reports help developers analyze stress tests results and what to make of them● Something shiny to give to your boss
The good, the bad and the ugly metricsEvery metric can be useful, but some less than others...● Response time min/max = worst case/best case● Mean can be biased in case of extreme values Response time is a physical phenomenon => Statistically distributed
Percentiles to the rescue nth percentiles = n % of users response time
Part of the development processLike any other functional test, load testing should be :● integrated early in the development cycle● automated● versioned