Performancetesten door een dummy - Een HTML pagina performance test


Een heel eenvoudige performance test kan al een echte meerwaarde hebben. Neem slechts 1 URL en start deze meerdere keren achter elkaar op. Wat kan je hiervan leren? Je krijgt in ieder geval een eerste indicatie over de performance.

Er zijn algemene performance eisen. Zo wordt wel gesteld dat de meeste pagina's binnen 1 seconde moeten laden. En pagina's die wat ingewikkelder zijn, moeten binnen 3 seconden geladen zijn. Een performance test van 1 URL kan je daarom al vertellen of deze pagina aan zulke algemene performance eisen voldoet. Of aan soortgelijke eisen die vanuit de business gesteld worden.

Daarnaast is het de eerste mogelijkheid om performanceproblemen te detecteren. Als je de pagina meerdere keren opstart, kan het zijn dat je in de laadtijdgrafiek ziet dat de laadtijd steeds verder toeneemt. Dit is een hele sterke aanwijzing dat er sprake is van een performance probleem.

Testinstellingen voor de URL

Vooraf moet je minimaal drie vragen beantwoorden:
  • Hoeveel gebruikers wil ik simuleren?
  • Hoe vaak vraagt 1 gebruiker de URL van de test op?
  • Hoe snel achter elkaar gaan de gebruikers van start?
Hou voor deze test het aantal gebruikers rustig klein, de waarde '1' is zeker een optie. Het aantal gebruikers wordt meer van belang als je gaat variƫren, bijvoorbeeld door bij zoekpagina's andere zoekgegevens te gebruiken. Als je steeds precies dezelfde pagina opvraagt, is dit een vraag waar je je minder druk over hoeft te maken.

Bepaal het aantal keer dat de gebruiker de URL opvraagt om je doel van de test te bereiken. Als je de gemiddelde laadtijd van de pagina wil weten, kan je voldoende hebben aan 10 keer. Maar als je wil weten of de laadtijd ongeveer gelijk blijft, maak dan gebruiker van een groter aantal, bijvoorbeeld 100. Speel hier rustig mee, de test is klein, dus uitproberen kost niet veel tijd.

Start de gebruikers niet te snel achter elkaar op, je hebt dan de kans dat je laptop meer problemen gaat geven dan de website die je test. Houdt minimaal 5 seconden aan, meer mag ook. Maar hoe langer de tijd tussen gebruikers, hoe langer de test dus ook duurt.

JMeter




De thread group is een groep van handelingen op de website die bij elkaar horen en ook na elkaar uitgevoerd moeten worden. Hier wordt slechts 1 URL toegevoegd, later worden dit er meer. Denk hierbij aan een thread group voor het zoeken van een artikel, waarbij eerst een zoekopdracht wordt uitgevoerd en vervolgens de informatie van het artikel wordt opgevraagd.







In de thread group voer je de eerder bepaalde gegevens in. Dit doe je door een thread gelijk te stellen aan een gebruiker. Bij een thread wordt de threadgroep opgestart, waarbij dus 1 gebruiker gesimuleerd wordt. Door dit aan te vullen met hoe vaak de gebruiker de handeling in een thread group uitvoert (hoe vaak moet de thread group bij een thread herhaald worden), zijn de belangrijkste instellingen voor deze test geregeld.

  • Klik op Thread Group
  • Voer bij Number of Threads het aantal gebruikers in
  • Voer bij Loop Count in hoe vaak de gebruiker de URL gaat opvragen
De Ramp-Up Period geeft aan hoe lang JMeter erover gaat doen om alle threads op te starten. Deze tijd is daarom gelijk aan het aantal gebruikers vermenigvuldigd met de tijd tussen de threads.
  • Voer bij Ramp-Up Period de volgende waarde in: aantal gebruikers x aantal seconden tussen de gebruikers

Een URL toevoegen

Een URL toevoegen aan een test is vaak heel eenvoudig, maar niet voldoende. Wat veel belangrijker is, is de volgende vraag: "Hoe weet ik of de pagina ook echt goed geladen is?" Om deze vraag te beantwoorden kan het verstandig zijn om te weten wat er gebeurt als de pagina verkeerd geladen wordt. Stel dat een zoekpagina bij verkeerd laden geen artikelen toont, dan kan het verstandig zijn om te controleren of een van de woorden bij dit artikel, bijvoorbeeld "Prijs", op de pagina getoond wordt. Later kan je dit uitbreiden met bijvoorbeeld controles op de grootte van de pagina, maar zover zal ik het hier niet beschrijven.

JMeter - De elementen





  • Klik met de rechtermuisknop op Thread Group
  • Klik in het menu op Add > Sampler > HTTP Request
  • Klik met de rechtermuisknop op HTTP Request
  • Klik in het menu op Add > Assertions > Response Assertion


  • JMeter - De URL


    • Klik in de tree op HTTP Request.
      Rechts verschijnt nu de mogelijkheid om gegevens over de URL in te voeren
    • Voer bij Server Name or IP de hoofd URL in, dus de URL zonder pad. Uitgaande van deze website is de hoofd URL dus "www.agiletstenbijnee.nl"
    • Voer bij Path de rest van de URL in, indien nodig. Voor deze website kan dit dus de waarde "p/performance-testen-door-een-dummy.html" zijn.

    JMeter - De URL controle










    • Klik in de tree op Response Assertion
    • Klik bij de group Patterns to Test op Add
    • Klik op de net verschenen cel in de tabel van Patterns to Test
    • Voer de tekst in waarop je de pagina wil controleren

    De resultaten vastleggen

    De belangrijkste zaken die je wil vastleggen, zijn de volgende:
    1. Hoe lang doet de pagina erover om te laden?
      Hier zijn vaak twee gegevens van belang: de gemiddelde laadtijd en het verloop van de laadtijd tijdens de test. De gemiddelde laadtijd blijkt vaak uit een tabel, terwijl het verloop vaak in een grafiek wordt weergegeven.
    2. Is de pagina goed geladen?
      Anders gezegd: is de URL controle die je hebt toegevoegd goed gegaan? Deze is vaak te lezen in dezelfde tabel als de laadtijd

    JMeter

    • Klik met de rechtermuisknop op Thread Group
    • Klik in het menu op Add > Listener > Response Time Graph
      Dit is de grafiek die wordt toegevoegd
    • Klik in het menu op Add > Listener > Summary Report
      Dit is de tabel die wordt toegevoegd

    JMeter - De test starten

    • Klik op Start (de groene pijl naar rechts in de knoppenbalk bovenin)
      De startknop wordt nu inactief
    • Wacht tot de startknop weer actief is
      Wanneer de startknop weer actief is, is de test afgerond
    • Klik in de tree op Summary Report
    Je ziet nu de resultaten van de test in tabelvorm. De belangrijkste kolommen zijn "Average" en "Error". Average geeft de gemiddelde laadtijd weer in miliseconden. Error geeft aan hoeveel procent van de opgevraagde URL's niet door de toegevoegde controles kwamen. Let er hier wel op dat JMeter zelf ook standaard controleerd op foutcodes die door de website worden meegegeven. Ook wanneer de website zelf via een foutcode aangeeft dat het laden niet goed is gegaan, wordt de URL poging als fout genoteerd.










    • Klik in de tree op Response Time Graph
    Hier staan de instellingen van de grafiek. Bij Interval kan je invoeren om de hoeveel miliseconden de grafiek een laadtijd moet weergeven. Als je deze waarde wijzigt, moet je wel op "Apply interval" klikken. Je kan hem echter bij de standaard waarde laten. Probeer rustig verschillende waarden uit


    • Klik op Display Graph
    Deze grafiek is geschikt voor verdere analyse. Een hoge laadtijd aan het begin kan duiden op performanceproblemen. Maar meestal wijst het erop dat gegevens van de pagina tijdelijk worden opgeslagen, bijvoorbeeld in een cache. Hierdoor kost het de keren daarna minder tijd op de pagina te laden. Dit kan je navragen. Als dit het geval is, kan je voor nu de eerste pieken negeren en naar het tweede deel kijken.

    Een hoge laadtijd aan het eind wijst bijna altijd op performance problemen. Overleg is nu zeker nodig. Veel succes!


















    Geen opmerkingen:

    Een reactie posten

    Opmerking: Alleen leden van deze blog kunnen een reactie posten.