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 gestuurd. U kunt bijvoorbeeld Random Controllers gebruiken om willekeurig HTTP-verzoeken naar de server te sturen
Logische controllers bepalen de volgorde waarin het gebruikersverzoek wordt uitgevoerd.
Enkele veelgebruikte Logic-controllers zijn hieronder:
Opname controller:
JMeter kan uw teststappen opnemen ; een opnamecontroller is een plaatshouder om deze opnamestappen op te slaan.
Eenvoudige controller:
Simple Controller is slechts een container voor gebruikersverzoeken.
Luscontroller:
Loop Controller zorgt ervoor dat het gebruikersverzoek een bepaald aantal keren wordt uitgevoerd of voor altijd wordt uitgevoerd, zoals weergegeven in de afbeelding:
Willekeurige controller:
Random Controller zorgt ervoor dat alle gebruikersverzoeken in elke lusperiode in willekeurige volgorde worden uitgevoerd.
U heeft bijvoorbeeld 3 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. In totaal worden 15 gebruikersverzoeken door JMeter naar de Google-server verzonden.
In opeenvolgende volgorde worden verzoeken achtereenvolgens in de volgende volgorde verzonden :
HTTP-verzoek -> FTP-verzoek-> JDBC-verzoek
voor elke lus.
In willekeurige volgorde worden verzoeken willekeurig verzonden ,
FTP-verzoek -> HTTP-verzoek-> JDBC-verzoek
Of
JDBC-verzoek -> FTP-verzoek-> HTTP-verzoek
Voor elke lus.
Modulecontroller:
Het doel van Module Controller is om modulariteit toe te voegen aan JMeter.
Het algemene idee is dat webapplicaties bestaan uit kleine functionaliteitseenheden (bijv. Aanmelden, Account aanmaken, Afmelden…). Deze functionaliteit kan in Simple Controller worden opgeslagen als "modules". Modulecontroller kiest welke module moet worden uitgevoerd.
Beschouw het volgende scenario -
U wilt simuleren:
- 50 gebruikers die uitloggen ,
- 100 gebruikers loggen in
- 30 gebruikers zoeken op www.google.com
U kunt JMeter gebruiken om 3 modules te maken. Elke module simuleert elke gebruikersactiviteit: Inloggen, Uitloggen en Zoeken.
De modulecontroller kiest welke module moet draaien.
Andere belangrijke controllers:
- Interleave Controller: pikt op en laat een van de gebruikersverzoeken uitvoeren in elke lus van de thread.
- Runtime Controller: bepaalt hoe lang de kinderen mogen draaien.
Als u bijvoorbeeld Runtime Controller 10 seconden hebt opgegeven, voert JMeter uw test gedurende 10 seconden uit.
- Transaction Controller: meet de totale tijd die nodig is om een testuitvoering te voltooien
- Inclusief controller: is ontworpen om een extern testplan te gebruiken. Met deze controller kunt u meerdere testplannen in JMeter gebruiken. Zie details in JMeter Performance Testing.
Loop Controller Voorbeeld
Dit gedeelte toont je stapsgewijze instructies om de Loop Controller- set toe te voegen aan je huidige prestatietestplan.
De Loop Controller zorgt ervoor dat de samplers een bepaald aantal keren worden uitgevoerd, naast de luswaarde die u hebt opgegeven voor de Thread Group. Als u bijvoorbeeld
- Voeg één HTTP-verzoek toe aan een Loop Controller met een lustelling van 50
- Stel het aantal Thread Group-lussen in op 2
- Vervolgens verzendt JMeter in totaal 50 * 2 = 100 HTTP-verzoeken.
Dit is de roadmap van dit voorbeeld:
Stap 1) Discussiegroep configureren
We hergebruiken stap 1, 2 in tutorial JMeter Performance Testing.
-
Discussiegroep toevoegen
Klik met de rechtermuisknop op het testplan en voeg een nieuwe discussiegroep toe: Toevoegen -> Discussies (gebruikers) -> Discussiegroep
Maar voer in het configuratiescherm van Thread Group Thread-eigenschappen als volgt in:
Het zal één gebruikersverzoek doen aan de webserver google.com en het twee keer uitvoeren.
-
Voeg JMeter-elementen toe
Voeg standaard HTTP-verzoek toe aan www.google.com.
-
Loop Controller toevoegen
Klik met de rechtermuisknop op Thread Group -> Logic Controller -> Loop Controller
Stap 2) Loop Controller configureren
Voeg waarde 50 toe aan het veld Loop Count, zoals in de onderstaande afbeelding. Het zorgt ervoor dat één gebruikersverzoek naar de webserver google.com het 50 keer uitvoert , naast de luswaarde = 2 die u hebt opgegeven voor de bovenstaande Thread-groep. JMeter verzendt dus in totaal 2 * 50 = 100 HTTP-verzoeken.
Klik met de rechtermuisknop op Loop Controller, Toevoegen -> Sampler -> HTTP-verzoek
Stap 3) Voeg weergaveresultaten toe in de tabel
We hergebruiken stap 2 in Timer om Bekijk resultaten in tabel toe te voegen
Dus het testplan wordt weergegeven in onderstaande figuur
Stap 4) Voer uw test uit
Ga nu terug Bekijk resultaten in tabel, klik op de Start-knop op de menubalk (Ctrl + R) om een test uit te voeren
Zoals weergegeven in de onderstaande afbeelding, simuleert JMeter één gebruikersverzoek, dat 100 keer wordt verzonden naar de webserver http://www.google.com/. De test wordt gestopt nadat een gebruikersverzoek 100 keer is verzonden.
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 ControllerTestPlan.jmx in Jmeter
- Klik op Discussiegroep -> Bekijk resultaat in tabel
- Voer de test uit