In mijn vorige blog had ik het over wat performancetesten zijn, wie er verantwoordelijk voor is en dat ik voor een klant een performancetest project ging opzetten. Nu wil ik met jullie delen hoe ik dat project heb aangepakt en wat ik geleerd heb. Ik zal daarbij ook vertellen over de vorig jaar geïntroduceerde training Certified Automation Practitioner in Agile Testing (AU-CAPT).
Mijn klant had al eerder een poging gedaan om performancetesten op te zetten en had hiervoor de tool Gatling gekozen. Gatling maakt gebruik van de programmeertaal Scala wat gebaseerd is op Java. Scala is echter een statische taal, waar Java een dynamische taal is. Dit betekent dat je meer zekerheid hebt dat de code doet wat je verwacht dat het doet. Daarnaast gebruikt Scala minder code om hetzelfde te doen als Java. Maar minder code betekent niet dat de programmeertaal gemakkelijker te leren is. Het is een complexe taal wat ook het debuggen moeilijker maakt ten opzichte van puur Java en dat maakt het dat Scala een stevige leercurve kan hebben. Zoveel tijd was er niet om het project op te zetten en uit te voeren. Dus ben ik op onderzoek gegaan om te zien of er iets anders in de markt te vinden is.
Eén van de wensen was het bepalen van de load op de database. Dat is niet iets wat gemeten werd met een performance testtool. Dit hadden wij al opgelost door voldoende load te creëren aan verzoeken naar de database en hierbij de database te monitoren.
De verzoeken bevatten veel testdata en daarbij moeten we data ophalen uit het antwoord, opslaan en opnieuw gebruiken. Op het moment van uitzoeken bleek dit geen standaardoptie voor performance testtools. Dit gaf mij houvast om te zoeken naar de juiste tool. Het werd snel duidelijk dat de veelgebruikte en bekende JMeter tool dit niet kon, maar in de plaats hiervan was BlazeMeter een optie. En Gatling kwam ook weer om de hoek kijken.
Uiteraard ben ik de welbekende zoekmachine gaan gebruiken om meer tools op de lijst te krijgen. Ik kan hierbij al verklappen dat een aantal tools al direct afvielen, omdat het niet kon voldoen aan de vraag van het ophalen, opslaan en hergebruiken van data.
Bron: https://grafana.com/media/blog/k6/best-open-source-load-testing-tools.png
Wat al direct opviel is dat veel tools een summiere omschrijving hebben van hun mogelijkheden, maar er uiteindelijk niet dieper op ingaan. Ik heb ook geen unieke punten kunnen vinden waarom een bepaalde tool daadwerkelijk beter is dan een andere tool in bepaalde situaties. Soms is het mogelijk om een trial versie te downloaden. Met dit soort versies zijn er bepaalde functies afgesloten, waardoor het niet goed te bepalen is of een tool inderdaad een goede keuze is.
Er worden hoge bedragen gevraagd, en ondanks dat de klant aangegeven had dat een tool niet gratis hoefde te zijn, vond ik het ook niet nodig om licenties aan te vragen zonder al een duidelijk beeld te hebben wat er met de tool kan. Daarbij kwam dat er nergens duidelijk aangegeven werd of data uit API-responses gehaald en later hergebruikt kunnen worden.
Om een goede beslissing te kunnen maken had ik een aantal bedrijven benaderd met mijn vragen, maar ik kreeg geen antwoorden waarmee ik daadwerkelijk kon bepalen of ik data kan hergebruiken met hun tools. In overleg met de klant hebben wij de keuze gemaakt om verder te gaan met Gatling, en dan wel op basis van Java, wat op dat moment nieuw was. We kwamen er echter pas later achter dat dit niet puur Java was, maar Java op basis van Scala, dus er was nog steeds een aardige leercurve. De klant was tevreden met de basis die ik heb geleverd voor de performancetesten, maar er bleef bij mij een gevoel hangen dat ik dit nog beter had kunnen doen. Dit besef kwam aan het einde van mijn project met het volgen van een nieuw ontwikkelde cursus.
De training Certified Automation Practitioner in Agile Testing (AU-CAPT) is in 2023 door De Agile Testers ontwikkeld en voor het eerst gegeven. Alle eerste cursisten zijn ook geslaagd voor deze training. De training startte net iets te laat voor mij om het te gebruiken in mijn opdracht, maar uiteraard herkende ik veel onderwerpen. De AU-CAPT gaat niet over het automatiseren van testen, maar over de theorie om o.a. te kunnen bepalen wat en waar er geautomatiseerd wordt en met welke tools.
Het werd mij met deze cursus al direct duidelijk dat ik niet de juiste vragen aan de klant had gesteld. Ik was niet kritisch genoeg om te zien of de gestelde wensen wel realistisch waren of onder de performancetesten vielen (zoals de load op de database). Een deel van deze tekortkoming is af te schrijven aan het missen van ervaring betreffende performancetesten. Dat was echt nieuw voor mij, maar ik had zeker wel scherpere vragen kunnen stellen. Dit zou mij ook beter geholpen hebben bij mijn onderzoek en het inventariseren van andere tools. Ik had uitgevers van de tools sterkere vragen kunnen stellen en het ik had hierdoor misschien wel een beter beeld kunnen geven van de verschillende beschikbare performance testtools.
Ondanks dat ben ik zeker niet ontevreden. Want wat er in de cursus terugkwam is dat ik wel degelijk op onderzoek ben gegaan, in plaats van te blijven hangen bij een tool wat de klant al had uitgeprobeerd. Gatling bleek uit mijn onderzoek toch de betere keuze op dat moment. Gatling gaf antwoord op de wensen van de klant en er was kennis aanwezig bij mensen, zodat ik ondersteuning had wanneer dat nodig was. Ik heb ook in overleg met verschillende partijen bij de klant kunnen bepalen wat de belangrijkste punten waren om als eerste op te pakken en ik heb een basis neergelegd wat gemakkelijk te gebruiken is door doelgerichte documentatie en gemakkelijk te lezen en te onderhouden code.
Klik hier voor meer informatie over deze cursus.
Ik, Tim van der Weyden, hoor graag jullie ervaringen.
Tot de volgende.
Alain Bultink | Managing Director
[email protected]
06-15361077
Benno Kuipers | Directeur
[email protected]
06-52600438
Emilie Lamers | Directeur
[email protected]
06-15653500