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:
Opnamecontroller
JMeter blikje record jouw Testen stappen; een opnamecontroller is een placeholder om deze opnamestappen op te slaan.
Eenvoudige controller
Eenvoudige controller is slechts een houder voor gebruikersverzoek.
Loop-controller
Loop Controller zorgt ervoor dat het gebruikersverzoek wordt uitgevoerd een bepaald aantal keren of rennen altijd zoals te zien in figuur:
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:
- HTTP-verzoek
- FTP-verzoek
- 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.
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.
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.
De Modulecontroller kiest welke module moet draaien.
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.
- 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:
Stap 1) Threadgroep configureren
We hergebruik de stap 1, 2 in de tutorial JMeter Performance Testing.
-
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:
Het zal maken een gebruikersverzoek aan de webserver google.com en voer het uit 2 tijden.
-
Toevoegen JMeter geeft je de mogelijkheid
Voeg standaard HTTP-verzoek toe aan www.google.com.
-
Loopcontroller toevoegen
Klik met de rechtermuisknop op Thread Group -> Logische controller -> Luscontroller
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.
Klik met de rechtermuisknop op Loop Controller, Toevoegen -> Sampler -> HTTP-verzoek
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
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.
Troubleshooting
- Als u dit probleem ondervindt tijdens het uitvoeren van het bovenstaande scenario, doe dan het volgende
- Controleer of u via een proxy verbinding maakt met internet. Zo ja, verwijder de proxy.
- Open een nieuw exemplaar van Jmeter
- Open de ControllerTestPlan.jmx in Jmeter
- Klik op Discussiegroep -> Resultaat in tabel bekijken
- Voer de test uit