In een tijdperk van Shift-Left performancetesten en CI/CD zie je steeds meer ontwikkelaars die zelf performancetesten maken en uitvoeren. Waar JMeter vroeger de OSS performancewereld domineerde, zien we een verandering in tools.
K6 (een op cli gebaseerde tool), voorheen beter bekend als Load Impact, is toegevoegd aan het portfolio van Grafana Labs; daarmee is het portfolio, maar ook de naamsbekendheid en uiteindelijk het klantenbestand enorm gegroeid. De mascotte van K6 is een krokodil (ja een echte!) die bij hun op kantoor gehouden werd. Is hiermee K6 een geduchte tegenstander voor JMeter?
Omdat K6 in elke IDE gebruikt kan worden en testen geschreven kunnen worden in Javascript, is het bij uitstek een makkelijke instaptool voor ontwikkelaars om testen te integreren in hun werk en pipelines (waar JMeter vooral een gui is die je moet leren en zich niet zo eenvoudig laat integreren).
Om te laten zien hoe gemakkelijk het is een performancetest uit te voeren met K6, kijken we even naar de twee verschillende opties die er zijn om een script te genereren (uiteraard mag het ook met de hand):
- Browser recorder
- HAR-file
Als je gebruik maakt van de Browser recorder (beschikbaar voor Firefox en Chrome als een extensie) kan het haast niet makkelijker. Het enige dat je hoeft te doen is klikken op “Start recording”. Vervolgens voer je de stappen uit die je wilt opnemen in je test en je klikt op “Stop”..
Daarna wordt het HAR-bestand automatisch gedownload en wordt K6.io geopend, waar je een nieuwe test kunt maken.
Vervolgens heb je twee opties: gebruik de Test builder (waarin je je test kunt bouwen in een browser gebaseerde gebruikersinterface) of gebruik de Script editor waar onze focus in deze blog zal liggen. Je kunt overschakelen van Test builder naar Script editor wanneer je maar wilt).
Als je de Script editor selecteert, kun je het zojuist opgenomen HAR-bestand (of een van jezelf) uploaden en K6 genereert automatisch een performance script. Dit script kunnen we vervolgens gebruiken in onze favoriete IDE-editor (in ons geval Visual Studio Code).
Dat is alles. We kunnen nu de performancetest starten met een enkele opdracht $ k6 run test.js op onze lokale machine. Als je met een abonnement in de cloud wilt werken, is het net zo eenvoudig als het uitvoeren van $ k6 cloud-test.js ! Na uitvoering krijgen we een overzicht van responstijden en metrieken.
K6 gaat de strijd aan met de vele malen oudere JMeter en is een geduchte tegenstander, zeker met de huidige EaC beweging (“Everything as Code”) en CI/CD. De voorlopige conclusie aan onze kant is dat K6 enorme potentie heeft. JMeter houdt de bokaal nog tijdelijk vast als het gaat om protocol ondersteuning, echter gaat de ontwikkeling bij Grafana Labs in rap tempo en zal het slechts een kwestie van tijd zijn eer dat de achterstand is ingelopen.
Wil je meer weten, volg ons dan!
Nieuwsgierig geworden en wil je meer weten over testen? Neem dan contact op met Praegus – 085-1305977 / info@praegus.nl of kijk op www.praegus.nl