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
- JMeter maakt 100 keer één gebruikersverzoek naar http://www.google.com
- 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
- Controleer of u verbinding maakt met internet via een proxy. Zo ja, verwijder de proxy.
- Open een nieuw exemplaar van JMeter
- Open de TimerTestPlan.jmx in Jmeter
- Dubbelklik op Discussiegroep -> Bekijk resultaat in tabel
- Voer de test uit