Controleurs binnen JMeter: Lus, Eenvoudig, Transactie, Module, Willekeurig

Wat is de logische controller?

Met logische controllers kunt u de volgorde van verwerkingsverzoeken in een thread definiëren. Hiermee kunt u bepalen “wanneer” een gebruikersverzoek naar een webserver moet worden verzonden. U kunt bijvoorbeeld Random Controllers gebruiken om HTTP-verzoeken willekeurig naar de server te verzenden

Logische controllers bepalen de orde waarin het gebruikersverzoek wordt uitgevoerd.

Enkele veelgebruikte logische controllers vindt u hieronder:

De logische controller

Opnamecontroller

JMeter blikje record jouw Testen stappen; een opnamecontroller is een placeholder om deze opnamestappen op te slaan.

Opnamecontroller

Eenvoudige controller

Eenvoudige controller is slechts een houder voor gebruikersverzoek.

Eenvoudige controller

Loop-controller

Loop Controller zorgt ervoor dat het gebruikersverzoek wordt uitgevoerd een bepaald aantal keren of rennen altijd zoals te zien in figuur:

Loop-controller

Willekeurige controller

Random Controller zorgt ervoor dat alle gebruikersverzoeken worden uitgevoerd het willekeurige volgorde in elke lusperiode.

U heeft bijvoorbeeld drie gebruikersverzoeken voor de website http://www.google.com in de volgende volgorde:

  1. HTTP-verzoek
  2. FTP-verzoek
  3. JDBC-verzoek

Deze 3 verzoeken moeten 5 keer worden uitgevoerd. Er worden in totaal 15 gebruikersverzoeken naar de Google-server verzonden JMeter.

In sequentiële bestelling, verzoeken worden verzonden opeenvolgend in de volgende volgorde:

HTTP-verzoek -> FTP-verzoek -> JDBC-verzoek

voor elke lus.

Willekeurige controller

In willekeurige bestelling, verzoeken worden verzonden als willekeurig,

FTP-verzoek -> HTTP-verzoek -> JDBC-verzoek

Or

JDBC-verzoek ->FTP-verzoek->HTTP-verzoek

Voor elke lus.

Modulecontroller

Het doel van Module Controller is om modulariteit toe te voegen JMeter.

Het algemene idee is dat webapplicaties uit kleine functionaliteitseenheden bestaan ​​(dwz aanmelden, account aanmaken, afmelden...). Deze functionaliteit kan worden opgeslagen in Eenvoudige controller als “modules”. Modulecontroller kiest welke module moet worden uitgevoerd.

Modulecontroller

Overweeg het volgende scenario -

U wilt simuleren:

  • 50 gebruikers uitloggen,
  • 100 gebruikers Inloggen
  • 30 gebruikers search www.google.com

Je kunt gebruiken JMeter om 3 modules te maken. Elke module simuleert elke gebruikersactiviteit: Inloggen, Uitloggen en Zoeken.

Modulecontroller

De Modulecontroller kiest welke module moet draaien.

Modulecontroller

Andere belangrijke controllers

  • Tussenblad Controller: pakt op en maakt een van het binnengekomen gebruikersverzoek elk lus van de draad.
  • Runtime Controlemechanisme: controles hoe lang zijn kinderen mogen rennen.

Als u bijvoorbeeld Runtime Controller 10 seconden hebt opgegeven, JMeter voert uw test gedurende 10 seconden uit.

Andere belangrijke controllers

  • transactie Controller: meet de totale tijd meegenomen naar afmaken een proefuitvoering
  • omvatten Controller: is ontworpen om een ​​extern testplan te gebruiken. Met deze controller kunt u meerdere testplannen gebruiken JMeter. Zie details in JMeter Performance Testing.

Voorbeeld van luscontroller

In dit gedeelte vindt u stapsgewijze instructies voor het toevoegen Loop-controller ingesteld op uw huidige prestatietestplan.

De Loop Controller zorgt ervoor dat de samplers een bepaald aantal keren worden uitgevoerd, naast de loopwaarde die u voor de Thread Group hebt opgegeven. Als u bijvoorbeeld

  • Voeg één HTTP-verzoek toe aan een luscontroller met een lustelling van 50
  • Configureer het aantal Thread Group-lussen op 2
  • Vervolgens JMeter verzendt in totaal 50 * 2 = 100 HTTP-verzoeken.

Dit is de roadmap van dit voorbeeld:

Voorbeeld van luscontroller

Stap 1) Threadgroep configureren

We hergebruik de stap 1, 2 in de tutorial JMeter Performance Testing.

  1. Discussiegroep toevoegen

Klik met de rechtermuisknop op de Testplan en voeg een nieuwe threadgroep toe: Toevoegen-> Onderwerpen (gebruikers) ->Discussiegroep

Maar voer in het Thread Group-configuratiescherm Thread Properties als volgt in:

Discussiegroep toevoegen

Het zal maken een gebruikersverzoek aan de webserver google.com en voer het uit 2 tijden.

  1. Toevoegen JMeter geeft je de mogelijkheid

Voeg standaard HTTP-verzoek toe aan www.google.com.

  1. Loopcontroller toevoegen

Klik met de rechtermuisknop op Thread Group -> Logische controller -> Luscontroller

Loopcontroller toevoegen

Stap 2) Luscontroller configureren

Voeg waarde 50 toe aan het veld Aantal lussen, zoals onderstaande afbeelding. Het zal maken een gebruikersverzoek aan de webserver google.com voer het uit 50 keer, naast de luswaarde =2, die u hierboven hebt opgegeven voor de Thread Group.So JMeter zal in totaal sturen 2 * 50 = 100 HTTP-verzoeken.

Luscontroller configureren

Klik met de rechtermuisknop op Loop Controller, Toevoegen -> Sampler -> HTTP-verzoek

Luscontroller configureren

Stap 3) Voeg weergaveresultaten toe aan de tabel

We hergebruiken stap 2 in Uren om Resultaten weergeven in tabel toe te voegen

Het testplan wordt dus weergegeven in onderstaande afbeelding

Voeg weergaveresultaten in tabel toe

Stap 4) Voer uw test uit

Ga nu terug naar Bekijk resultaten in tabel en klik op de knop Start op de menubalk (Ctrl+R) om een ​​test uit te voeren

Zoals weergegeven in de onderstaande afbeelding, JMeter simuleert één gebruikersverzoek, die 100 keer naar de webserver wordt verzonden http://www.google.com/. De test wordt gestopt nadat er 100 keer een gebruikersverzoek is verzonden.

Voer de test uit

Troubleshooting

  1. Als u dit probleem ondervindt tijdens het uitvoeren van het bovenstaande scenario, doe dan het volgende
  2. Controleer of u via een proxy verbinding maakt met internet. Zo ja, verwijder de proxy.
  3. Open een nieuw exemplaar van Jmeter
  4. Open de ControllerTestPlan.jmx in Jmeter
  5. Klik op Discussiegroep -> Resultaat in tabel bekijken
  6. Voer de test uit