Jmeter-timers: constant, gaussiaans willekeurig, uniform (voorbeeld)

Inhoudsopgave:

Anonim

Wat zijn timers?

Standaard verzendt JMeter het verzoek zonder te pauzeren tussen elk verzoek. In dat geval kan JMeter uw testserver overweldigen door in korte tijd te veel verzoeken in te dienen.

Stel je voor dat je binnen een paar seconden duizenden verzoeken naar een te testen webserver stuurt . Dit is wat er gebeurt!

Timers stellen JMeter in staat om te vertragen tussen elk verzoek dat een thread doet. Een timer kan het probleem van de serveroverbelasting oplossen.

Ook komen bezoekers in het echte leven niet allemaal tegelijk op een website, maar met verschillende tijdsintervallen. Dus Timer helpt het real-time gedrag na te bootsen.

In deze tutorial leer je

  • Constante timer
  • Gauss-willekeurige timer
  • Uniforme willekeurige timer
  • BeanShell-timer
  • BSF-timer
  • JSR223 Timer
  • Hoe Constant Timer te gebruiken

Hieronder volgen enkele veelvoorkomende typen timer in JMeter

Constante timer:

Constante timer vertraagt ​​elk gebruikersverzoek voor dezelfde hoeveelheid tijd.

Gauss-willekeurige timer:

Gaussiaanse willekeurige timer vertraagt ​​elk gebruikersverzoek voor een willekeurige hoeveelheid tijd.

Parameters:

Attribuut Omschrijving
Naam Beschrijvende naam voor deze timer die wordt weergegeven in de boomstructuur
Afwijkingen (milliseconden) Een parameter van de Gauss-distributiefunctie
Constante vertragingscompensatie (milliseconden) Extra waarde in milliseconden

Dus de totale vertraging wordt beschreven zoals in onderstaande afbeelding:

Uniforme willekeurige timer:

Uniforme willekeurige timer vertraagt ​​elk gebruikersverzoek voor een willekeurige hoeveelheid tijd.

Parameters:

Attribuut

Omschrijving

Naam

Beschrijvende naam voor deze timer die wordt weergegeven in de boomstructuur

Maximaal willekeurige vertraging

Maximaal willekeurig aantal milliseconden dat moet worden vertraagd.

Constante vertragingscompensatie (milliseconden)

Extra waarde in milliseconden

De totale vertraging is de som van de willekeurige waarde en de offsetwaarde.

BeanShell-timer

De BeanShell Timer kan worden gebruikt om een vertragingstijd te genereren tussen elk gebruikersverzoek.

BSF-timer

De BSF-timer kan worden gebruikt om een ​​vertraging te genereren tussen elk gebruikersverzoek met behulp van een BSF-scripttaal.

JSR223 Timer

De JSR223-timer kan worden gebruikt om een ​​vertraging te genereren tussen elk gebruikersverzoek met behulp van een JSR223-scripttaal

Hoe Constant Timer te gebruiken

In dit voorbeeld gebruikt u Constante timer om een vaste vertraging in te stellen tussen gebruikersverzoeken aan google.com.

Laten we beginnen met een eenvoudig testscript

  1. JMeter maakt 100 keer één gebruikersverzoek naar http://www.google.com
  2. De vertraging tussen elk gebruikersverzoek is 5000 ms

Hier is de routekaart voor dit praktische voorbeeld:

Voorwaarde:

We hergebruiken stap 1 en stap 2 in tutorial JMeter Performance Testing.

Stap 1) Voeg discussiegroep toe

Klik met de rechtermuisknop op het testplan en voeg een nieuwe discussiegroep toe: Toevoegen -> Discussies (gebruikers) -> Discussiegroep

Voer in het configuratiescherm Thread Group Thread-eigenschappen in als volgt

Met deze instelling kan JMeter in 100 keer één gebruikersverzoek naar http://www.google.com maken

Stap 2) Voeg JMeter-elementen toe

  • Voeg standaard HTTP-verzoek toe
  • Voeg een HTTP-verzoek toe

Stap 3) Voeg constante timer toe

Klik met de rechtermuisknop op Discussiegroep -> Timer -> Constante timer

Thread Delay van 5000 milliseconden configureren

Stap 4) Voeg weergaveresultaten toe in de tabel

Bekijk resultaten in tabel geeft het testresultaat weer in tabelformaat.

Klik met de rechtermuisknop op Toevoegen -> Luisteraar -> Bekijk resultaat in tabel

Bekijk resultaten in tabeldisplays zoals hieronder in de afbeelding

Stap 5) Voer uw test uit

Als u klaar bent om een ​​test uit te voeren, klikt u op de knop Uitvoeren op de menubalk of op de sneltoets Ctrl + R

Dit is het resultaat van deze test

Laten we bijvoorbeeld in de bovenstaande afbeelding Monster 2 analyseren

  • Starttijd is 22: 05: 01.866
  • De sample-tijd van sample 2 is 172 ms
  • Constante timer : 5000 ms (zoals geconfigureerd)
  • De eindtijd van dit monster is = 22: 05: 01.866 + 172 + 5000 = 22: 05: 07.038

Dus monster 3 zou moeten beginnen op het tijdstip is 22: 05: 07.039 (zoals weergegeven in de bovenstaande afbeelding)

De vertraging van elk monster is 5000 ms

Als u verandert dat de constante timer nul is , ziet u dat het resultaat is gewijzigd

Laten we het monster analyseren 1

  • Starttijd is 22: 17: 39,141
  • De bemonsteringstijd van Sample 2 is 370 ms
  • Constante timer : 0 ms (zoals geconfigureerd)
  • De eindtijd van dit monster is = 22: 17: 39.141+ 370 + 0 = 22: 17: 39.511

Dus monster 2 zou moeten beginnen op het tijdstip is 22: 17: 39.512 (weergegeven in de bovenstaande afbeelding)

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 TimerTestPlan.jmx in Jmeter
  4. Dubbelklik op Discussiegroep -> Bekijk resultaat in tabel
  5. Voer de test uit