Hoe doe je een load test op je app voor de lancering?
Je app werkt. Je hebt getest, een paar vrienden hebben het geprobeerd, alles loopt soepel. Dan lanceer je, zet een post op LinkedIn, en opeens willen 300 mensen tegelijk inloggen.
De server bezwijkt. De database raakt overbelast. De app geeft fouten. Dat eerste uur, dat zo belangrijk is, verloopt rampzalig.
Een load test had dit kunnen voorkomen.
Wat is een load test?
Een load test simuleert meerdere gebruikers die tegelijk jouw app gebruiken. Je test of je app dat aankan, en zo niet, waar het misgaat.
Het is geen hackaanval. Je test gewoon: wat als 50, 100 of 500 mensen tegelijk een pagina openen, een formulier invullen of een API aanroepen?
Twee gratis tools die goed werken
k6 (van Grafana)
k6 is een tool die je via de terminal gebruikt. Je schrijft een simpel scenario in JavaScript. Populair, goed gedocumenteerd, werkt lokaal.
Installeren:
brew install k6
Simpel testscript (test.js):
import http from 'k6/http';
import { sleep } from 'k6';
export const options = {
vus: 50, // 50 gelijktijdige gebruikers
duration: '30s', // gedurende 30 seconden
};
export default function () {
http.get('https://jouwebsite.nl');
sleep(1);
}
Uitvoeren: k6 run test.js
Artillery
Artillery is iets eenvoudiger en werkt met een configuratiebestand. Ook gratis, ook lokaal te draaien.
npm install -g artillery
Simpele test:
config:
target: "https://jouwebsite.nl"
phases:
- duration: 60
arrivalRate: 10
scenarios:
- flow:
- get:
url: "/"
Uitvoeren: artillery run test.yml
Wat je test
Begin klein en bouw op:
- Basistest - 10 gelijktijdige gebruikers, 1 minuut. Loopt alles soepel?
- Piektest - verhoog naar 50 of 100. Blijft de laadtijd onder 2 seconden?
- Breekpunttest - blijf verhogen totdat het misgaat. Wat is het breekpunt?
Let op wat er fout gaat: time-outs, fouten, of een veel langzamere laadtijd. Die plekken zijn waar je app kwetsbaar is.
Wat doe je met de uitkomst?
Als je app bij 30 gelijktijdige gebruikers al vastloopt, weet je dat je iets moet oplossen voor de lancering. Betere caching, efficiëntere zoekopdrachten op de database, of een groter hostingplan.
Als hij bij 200 gebruikers nog prima loopt: lanceer met vertrouwen.
Load testing is een van de checks die we uitvoeren bij het beoordelen van apps die klaar zijn voor productie. Wil je weten hoe jouw app presteert onder druk? Vraag een controle aan.
Wil je jouw project laten controleren?
Binnen 3 dagen een concreet rapport van een specialist.
Laat jouw project controleren →