Bij PerformanceArchitecten vinden we het belangrijk om continu onze kennis te ontwikkelen en bij te houden. Daarom organiseren we elke maand een kennismiddag, waarbij we ons verdiepen in verschillende onderwerpen die relevant zijn voor ons werk.
Onze laatste kennismiddag stond in het teken van het RealBrowser “protocol” binnen het performancetesttool NeoLoad van Tricentis. Voor degenen die niet bekend zijn met NeoLoad, het is een tool die wordt gebruikt voor het testen van de performance van webapplicaties en -diensten. Het is een tool onder performancetesters die steeds populairder wordt vanwege de vele mogelijkheden en maar vooral ook de concurrerende prijsstelling van dit commerciële tool.
Sinds versie 9.0 is RealBrowser toegevoegd aan NeoLoad. Dit biedt testers de mogelijkheid om tests uit te voeren die nog realistischer zijn dan voorheen. Met RealBrowser kunnen testers nu de performance van hun applicaties testen op basis van echte browsers zoals Chrome en Firefox. Anders dan het standaard HTTP gebaseerde protocol dat voorheen de standaard in NeoLoad was, wordt ook de client-side rendering en verwerking binnen de browser meegenomen. Hiermee krijg je dus een realistischere transactietijden zoals ook de eindgebruiker ervaart. Daarnaast is het niet nodig om moeilijke correlatie te doen om het gedrag van de browser goed te simuleren.
Om tijdens de kennismiddag praktijkervaring op te doen met RealBrowser, was het belangrijk dat alle deelnemers de nieuwste versie van NeoLoad, versie 9.2.1, hadden geïnstalleerd op hun laptops. Dit zorgde ervoor dat we optimaal gebruik konden maken van de laatste mogelijkheden van RealBrowser en de functionaliteiten ervan goed konden verkennen en testen.
De basis van RealBrowser is gebaseerd op Playwright, een open source testing framework dat is geïntegreerd in het NeoLoad-tool. Hierdoor krijg je grotendeels de functionaliteit van Playwright. Bij de installatie worden meerdere browsers meegeleverd en geïnstalleerd. NeoLoad biedt de functionaliteit van Playwright door middel van nieuwe scriptacties, die handmatig kunnen worden toegevoegd aan het script, maar ook kunnen worden opgenomen. Wanneer de opname wordt gestart, wordt eerst een Chromium-browser gestart, waarna alle acties die in de browser worden uitgevoerd automatisch worden omgezet in NeoLoad-scriptacties. Dit zorgt voor een snelle manier om testscripts op te zetten.
Onze ervaringen met het RealBrowser-protocol binnen NeoLoad laten zien dat het goed werkt, maar dat het nog steeds in ontwikkeling is. Het was een slimme keuze van Tricentis om het protocol te baseren op Playwright, omdat het snel, stabiel en compatibel is met verschillende browsers, zowel in headless als in GUI-modus. Het blijkt dat de extra resources die nodig zijn voor browser-gebaseerde tests meevallen. Om echter veel gebruikers te simuleren, is het ook mogelijk om een mix te maken van zowel het traditionele HTTP-gebaseerde protocol als het RealBrowser-protocol. Voor de echte belasting van de applicatie kan je het “oude” protocol gebruiken, wat relatief weinig resources vereist, en enkele RealBrowser-gebruikers toevoegen om een realistischer beeld te krijgen van hoe eindgebruikers de applicatie ervaren. Dit biedt een goede balans tussen belasting en realisme tijdens het uitvoeren van performancetests.
Hoewel het RealBrowser-protocol binnen NeoLoad goed werkt, valt er zeker nog wel het een en ander op aan te merken. Tijdens het gebruik wordt het duidelijk dat het nog steeds een versie 1.0 is. Sommige functionaliteiten zijn nog niet volledig geïntegreerd op een eenduidige manier en er is nog weinig documentatie beschikbaar. Dit kan leiden tot enige uitdagingen bij het opzetten van performancetests met het RealBrowser-protocol.
Nog wat expliciete voor- en nadelen:
Het opgeven van welke browser gebruikt moet worden is niet consequent met de andere protocollen
Voor de loadgeneratoren kan een Linux gebaseerde Docker-image worden gebruikt wat ook weer minder resources inneemt en meer gebruikt wordt dan Windows gebaseerde Docker images
Record from here: een handige functie die eerst de voorgaande stappen afspeelt en dan de recording start
Assertions zijn onduidelijk hoe je die toevoegt of gebruikt
Zoeken/vervangen werkt niet goed in RealBrowser
Tijdens de recording worden alleen screenshots bewaard waardoor het lastig is om onderhoud te doen en doot de CSS/Xpath uit de source te halen
De ondersteuning van vreemde browser frameworks (bv Vaadim) is geen probleem voor RealBrowser terwijl dit heel moeilijk/onmogelijk te scripten is met het HTTP protocol
Het recorden van zaken die niet standaard zijn kosten exponentieel meer moeite.
Al met al was onze kennismiddag over RealBrowser en NeoLoad zeer leerzaam en interessant. We zijn blij dat we ons kunnen blijven ontwikkelen en op de hoogte kunnen blijven van de nieuwste ontwikkelingen op ons vakgebied. We kijken alweer uit naar de volgende kennismiddag!
Comments