Er bestaat nogal eens verwarring over wat load testing of performance testing nu precies is.
Feitelijk is performance testen een verzamelnaam van verschillende testtypen die als doel hebben een functioneel kloppende response van een softwaresysteem binnen een acceptabele tijd te verkrijgen. Een duidelijk gedefinieerde set van verwachtingen in termen van de prestaties van het systeem is essentieel bij performance testen. Voor bijvoorbeeld een webtoepassing moet u minstens weten wat de te verwachten belasting in termen van gelijktijdige gebruikers of HTTP-verbindingen is en wat een acceptabele responstijd betreft.
Als je eenmaal weet waar je wilt zijn, kan begonnen worden aan de zoektocht naar knelpunten bij het voortdurend verhogen van de belasting op het systeem.
Binnen performance testen zijn verschillende methoden te onderscheiden:
Load testing is de meest toegepaste vorm van performance testen. Kan het systeem een gebruikersbelasting aan die reëel (normaal en piek) te verwachten is? Denk hierbij aan de hoeveelheid gebruikers die inloggen, schermen opvragen, op menu’-items en buttons klikken, etc. Wanneer de resultaten van de load testing aangeven dat de prestaties van het systeem niet voldoen aan de verwachte doelen, is het uiteraard tijd om ‘aan meerdere knoppen te gaan draaien’.
NeoLoad: NeoLoad wordt geleverd door het bedrijf Tricentis. NeoLoad biedt snel testdesign, scriptonderhoud en automatisering aan voor performancetestscripts door middel van een intuïtieve GUI-interface.
LoadRunner: De Loadrunner Performance Testing Tool is de meest gebruikte performance testtool voor het uitvoeren van load-, performance- en stresstesten. Deze performancetesten kunnen worden uitgevoerd voor websites, applicaties, webservices en databases.
JMeter: JMeter performance testing van Octoperf is het uitvoeren van performance testen door gebruik te maken van de open source tool JMeter.
Deze manier van performance testen heeft als doel het zoeken naar het breekpunt van een systeem. De stabiliteit van het systeem wordt hierbij getest. Bij welke belasting gaat het systeem onderuit en performt het helemaal niet meer. Dit breekpunt kan zo drastisch zijn dat het systeem definitief ‘onderuit gaat’.
Hierbij wordt getest met een zwaardere belasting dan gebruikelijk, waarbij gekeken wordt naar zaken als robuustheid, beschikbaarheid, foutafhandeling en recovery na zware belasting tot het punt waarop het systeem het begeeft. Het doel hiervan is na te gaan wanneer het systeem crasht als gevolg van bijvoorbeeld een gebrek aan systeembronnen, zoals RAM-geheugen, opslagcapaciteit, netwerkcapaciteit of meer dan normaal aantal gelijktijdige gebruikers. Op basis van de resultaten wordt daar waar nodig de capaciteit uitgebreid om zo de verwachte groei aan gebruikers te kunnen verwerken. Stresstesten worden bij voorkeur uitgevoerd op een ‘productie-like’ systeem, aangezien systemen niet lineair schalen en interpolatie van resultaten hierdoor een hoog risico op fouten geeft.
Gewaakt moet worden dat stresstesten uitgevoerd worden met slechts 1 scenario, daar deze aanpak weinig realistisch is. Een voorbeeld hiervan is het zoeken van één product welke een hoge systeembelasting veroorzaakt. Gebruikers zullen echter niet continu producten zoeken, maar ook in- en uitloggen, rondkijken op de site of order- en betalingshistorie bekijken. Een stresstest die de werkelijkheid beter benaderd, bestaat dan ook uit meerdere scenario’s. Daarnaast zijn er meer logins / gebruikersrollen en testdata benodigd voor de verschillende scenario’s.
Denial-of-service-aanvallen (dos-aanvallen) en distributed denial-of-service-aanvallen (DDoS-aanvallen) worden soms ook gezien als een stresstest, maar zijn dit niet. Het hoofddoel in dat geval is om een website, internetdienst of server ervan te weerhouden aanvragen van reguliere gebruikers te behandelen. Door het versturen van grote hoeveelheden verkeerd samengestelde data, raakt weliswaar de webserver overbelast, maar de achterliggende databases en systemen worden niet belast, iets wat bij een stresstest wel gebeurt.
Cookie | Duur | Beschrijving |
---|---|---|
cookielawinfo-checkbox-analytics | 11 months | This cookie is set by GDPR Cookie Consent plugin. The cookie is used to store the user consent for the cookies in the category "Analytics". |
cookielawinfo-checkbox-functional | 11 months | The cookie is set by GDPR cookie consent to record the user consent for the cookies in the category "Functional". |
cookielawinfo-checkbox-necessary | 11 months | This cookie is set by GDPR Cookie Consent plugin. The cookies is used to store the user consent for the cookies in the category "Necessary". |
cookielawinfo-checkbox-others | 11 months | This cookie is set by GDPR Cookie Consent plugin. The cookie is used to store the user consent for the cookies in the category "Other. |
cookielawinfo-checkbox-performance | 11 months | This cookie is set by GDPR Cookie Consent plugin. The cookie is used to store the user consent for the cookies in the category "Performance". |
viewed_cookie_policy | 11 months | The cookie is set by the GDPR Cookie Consent plugin and is used to store whether or not user has consented to the use of cookies. It does not store any personal data. |