Hoe JMeter te gebruiken voor prestaties & Laadtesten

Inhoudsopgave:

Anonim

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

  1. Start JMeter
  2. Selecteer Testplan in de structuur
  3. 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

  1. Controleer of u verbinding maakt met internet via een proxy. Zo ja, verwijder de proxy.
  2. Open een nieuw exemplaar van Jmeter
  3. Open de PerformanceTestPlan.jmx in Jmeter
  4. Dubbelklik op Discussiegroep -> Grafiekresultaat
  5. Voer de test uit