JMeter Load Testing
JMeter Load Testing is een testproces dat wordt uitgevoerd met behulp van een loadtesttool genaamd Apache JMeter, een open source desktop-applicatie op basis van Java. JMeter voor loadtesten is een cruciale tool die bepaalt of de te testen webapplicatie al dan niet aan hoge belastingvereisten kan voldoen. Het helpt ook om de algehele server onder zware belasting te analyseren.
JMeter prestatietests
JMeter Performance Testing is een testmethode die wordt uitgevoerd met Apache JMeter om de prestaties van een webtoepassing te testen. JMeter voor prestatietests helpt bij het testen van zowel statische als dynamische bronnen, helpt bij het ontdekken van gelijktijdige gebruikers op de website en biedt verschillende grafische analyses voor prestatietests. JMeter-prestatietests omvatten belastingtest en stresstest van webapplicatie.
Apache JMeter-testtool biedt de volgende voordelen bij prestatietests
- JMeter kan worden gebruikt om de prestaties van zowel statische bronnen zoals JavaScript en HTML te testen , als dynamische bronnen, zoals JSP, Servlets en AJAX.
- JMeter kan het maximale aantal gelijktijdige gebruikers ontdekken dat uw website aankan
- JMeter biedt een verscheidenheid aan grafische analyses van prestatierapporten.
JMeter Performance Testing omvat:
- Load Testing: het verwachte gebruik modelleren door te simuleren dat meerdere gebruikers gelijktijdig toegang hebben tot de webservices.
- Stresstest : elke webserver heeft een maximale laadcapaciteit. Wanneer de belasting de limiet overschrijdt, begint de webserver langzaam te reageren en fouten te produceren. Het doel van de stresstest is om de maximale belasting te vinden die de webserver aankan.
De onderstaande afbeelding laat zien hoe JMeter Load Testing de zware belasting simuleert:
Maak een prestatietestplan in JMeter
In deze tutorial doen we een prestatieanalyse van Google.com voor 1000 gebruikers
Voordat we de prestaties van de doelwebapplicatie testen, moeten we bepalen:
- Normale belasting : het gemiddelde aantal gebruikers dat uw website bezoekt
- Zware belasting : het maximale aantal gebruikers dat uw website bezoekt
- Wat is je doelwit in deze test?
Hier is de routekaart van dit praktische voorbeeld
Stap 1) Voeg discussiegroep toe
- Start JMeter
- Selecteer Testplan in de structuur
- Discussiegroep toevoegen
Klik met de rechtermuisknop op het "Testplan" en voeg een nieuwe discussiegroep toe: Toevoegen -> Discussies (gebruikers) -> Discussiegroep
Voer in het configuratiescherm Discussiegroep de threadeigenschappen als volgt in:
- Aantal discussies : 100 (aantal gebruikers maakt verbinding met de doelwebsite: 100)
- Loop Count : 10 (aantal tijd om testen uit te voeren)
- Aanloopperiode : 100
Het aantal threads en het aantal lussen zijn verschillend.
Ramp-up periode vertelt JMeter hoe lang te vertragen voordat de volgende gebruiker. Als we bijvoorbeeld 100 gebruikers hebben en een opstartperiode van 100 seconden, dan is de vertraging tussen de startende gebruikers 1 seconde (100 seconden / 100 gebruikers)
Stap 2) JMeter-elementen toevoegen
Nu bepalen we welke JMeter-elementen in deze test. De elementen zijn
-
HTTP-verzoek Standaard
Dit element kan worden toegevoegd door met de rechtermuisknop op de discussiegroep te klikken en te selecteren: Toevoegen -> Configuratie-element -> Standaardwaarden HTTP-verzoek.
Voer in het configuratiescherm HTTP Request Defaults de naam van de website in die wordt getest (http://www.google.com)
-
HTTP-verzoek
Klik met de rechtermuisknop op Thread Group en selecteer: Toevoegen -> Sampler -> HTTP-verzoek .
In het configuratiescherm voor HTTP-verzoeken geeft het veld Pad aan welk URL-verzoek u naar de Google-server wilt verzenden.
Als u bijvoorbeeld "kalender" invoert in het veld Pad. JMeter zal het URL-verzoek http://www.google.com/calendar naar de Google-server maken
Als u het veld Pad leeg laat, maakt JMeter het URL-verzoek http://www.google.com naar de Google-server.
In deze test houdt u het veld Pad leeg om ervoor te zorgen dat JMeter het URL-verzoek http://www.google.com naar de Google-server maakt.
Stap 3) Grafiekresultaat toevoegen
JMeter kan het testresultaat weergeven in Graph-formaat.
Klik met de rechtermuisknop op Testplan, Toevoegen -> Luisteraar -> Grafiekresultaten
Stap 4) Voer de test uit en verkrijg het testresultaat
Druk op de knop Uitvoeren (Ctrl + R) op de werkbalk om het softwaretestproces te starten. U zult het testresultaat in realtime op Graph zien.
De onderstaande afbeelding toont een grafiek van een testplan, waarbij we 100 gebruikers simuleerden die toegang hadden tot de website www.google.com.
Onderaan de afbeelding staan de volgende statistieken, weergegeven in kleuren:
- Zwart: het totale aantal huidige samples dat is verzonden.
- Blauw: het huidige gemiddelde van alle verzonden monsters.
- Rood: de huidige standaarddeviatie.
- Groen: doorvoersnelheid die het aantal verzoeken per minuut weergeeft dat de server heeft afgehandeld
Laten we de prestaties van de Google-server analyseren in onderstaande afbeelding.
Om de prestaties van de te testen webserver te analyseren, moet u zich concentreren op 2 parameters
- Doorvoer
- Afwijking
De doorvoer is de belangrijkste parameter. Het vertegenwoordigt het vermogen van de server om een zware belasting aan te kunnen. Hoe hoger de doorvoersnelheid, hoe beter de serverprestaties.
In deze test is de doorvoersnelheid van de Google-server 1.491.193 / minuut. Dit betekent dat de Google-server 1.491.193 verzoeken per minuut kan verwerken. Deze waarde is vrij hoog, dus we kunnen concluderen dat de Google-server goede prestaties levert
De afwijking wordt in rood weergegeven - het geeft de afwijking van het gemiddelde aan. Hoe kleiner hoe beter .
Laten we de prestaties van de Google-server vergelijken met andere webservers. Dit is het resultaat van de prestatietest van website http://www.yahoo.com/ (u kunt andere websites kiezen)
De doorvoer van een website die wordt getest http://www.yahoo.com is 867.326 / minuten. Dit betekent dat deze server 867.326 verzoeken per minuut verwerkt, lager dan Google.
De afwijking is 2689, veel hoger dan Google (577). We kunnen dus vaststellen dat de prestaties van deze website minder zijn dan die van een Google-server.
OPMERKING: De bovenstaande waarden zijn afhankelijk van verschillende factoren, zoals de huidige serverbelasting bij Google, uw internetsnelheid, uw CPU-vermogen enz. Daarom is het zeer onwaarschijnlijk dat u dezelfde resultaten krijgt als hierboven. Geen paniek dus!
Probleemoplossen:
Als u het probleem tegenkomt terwijl u het bovenstaande scenario uitvoert, doet u het volgende
- Controleer of u verbinding maakt met internet via een proxy. Zo ja, verwijder de proxy.
- Open een nieuw exemplaar van Jmeter
- Open de PerformanceTestPlan.jmx in Jmeter
- Dubbelklik op Discussiegroep -> Grafiekresultaat
- Voer de test uit