Controllers in JMeter: Loop, Simple, Transaction, Module, Random

Inhoudsopgave:

Anonim

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:

  1. HTTP-verzoek
  2. FTP-verzoek
  3. 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.

  1. 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.

  1. Voeg JMeter-elementen toe

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

  1. 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:

  1. Als u het probleem tegenkomt terwijl u het bovenstaande scenario uitvoert, doet u het volgende
  2. Controleer of u verbinding maakt met internet via een proxy. Zo ja, verwijder de proxy.
  3. Open een nieuw exemplaar van Jmeter
  4. Open de ControllerTestPlan.jmx in Jmeter
  5. Klik op Discussiegroep -> Bekijk resultaat in tabel
  6. Voer de test uit