Vad är timers?
Som standard skickar JMeter begäran utan att pausa mellan varje begäran. I så fall kan JMeter överväldiga din testserver genom att göra för många förfrågningar på kort tid.
Tänk dig att du skickar tusentals förfrågningar till en webbserver som testas på några sekunder. Det här är vad som händer!
Timers gör det möjligt för JMeter att fördröja mellan varje begäran som en tråd gör. En timer kan lösa serveröverbelastningsproblemet .
I det verkliga livet anländer inte besökare till en webbplats samtidigt, utan med olika tidsintervall. Så Timer hjälper till att efterlikna beteendet i realtid.
I den här handledningen lär du dig
- Constant Timer
- Gaussisk slumpmässig timer
- Enhetlig slumpmässig timer
- BeanShell Timer
- BSF-timer
- JSR223 Timer
- Hur man använder konstant timer
Följande är några vanliga typer av en timer i JMeter
Konstant timer:
Konstant timer fördröjer varje användarförfrågan under samma tid.
Gaussian Random Timer:
Gaussisk slumpmässig timer fördröjer varje användarförfrågan under en slumpmässig tid.
Parametrar:
Attribut | Beskrivning |
---|---|
namn | Beskrivande namn för denna timer som visas i trädet |
Avvikelser (millisekunder) | En parameter för Gaussisk distributionsfunktion |
Konstant fördröjningsförskjutning (millisekunder) | Tilläggsvärde i millisekunder |
Så den totala fördröjningen beskrivs som nedanstående figur:
Enhetlig slumpmässig timer:
Enhetlig slumpmässig timer fördröjer varje användarförfrågan under en slumpmässig tid.
Parametrar:
Attribut |
Beskrivning |
---|---|
namn |
Beskrivande namn för denna timer som visas i trädet |
Random Delay Maximum |
Maximalt slumpmässigt antal millisekunder att fördröja. |
Konstant fördröjningsförskjutning (millisekunder) |
Tilläggsvärde i millisekunder |
Den totala fördröjningen är summan av det slumpmässiga värdet och offsetvärdet.
BeanShell Timer
BeanShell Timer kan användas för att generera en fördröjningstid mellan varje användarförfrågan.
BSF-timer
BSF-timern kan användas för att generera en fördröjning mellan varje användarförfrågan med hjälp av ett BSF-skriptspråk.
JSR223 Timer
JSR223-timern kan användas för att generera en fördröjning mellan varje användarförfrågan med ett JSR223-skriptspråk
Hur man använder konstant timer
I det här exemplet använder du Constant Timer för att ställa in en fast fördröjning mellan användarförfrågningar till google.com.
Låt oss börja med ett enkelt testskript
- JMeter skapar en användarförfrågan till http://www.google.com 100 gånger
- Fördröjningen mellan varje användarförfrågan är 5000 ms
Här är färdplanen för detta praktiska exempel:
Förutsättning:
Vi återanvänder steg 1 och steg 2 i handledningen JMeter Performance Testing.
Steg 1) Lägg till trådgrupp
Högerklicka på testplanen och lägg till en ny trådgrupp: Lägg till -> Trådar (användare) -> Trådgrupp
I trådgruppens kontrollpanel anger du trådegenskaper enligt följande
Med den här inställningen kan JMeter skapa en användarförfrågan till http://www.google.com 100 gånger
Steg 2) Lägg till JMeter-element
- Lägg till HTTP-begäran som standard
- Lägg till HTTP-begäran
Steg 3) Lägg till konstant timer
Högerklicka på trådgruppen -> timer -> konstant timer
Konfigurera trådfördröjning på 5000 millisekunder
Steg 4) Lägg till vyresultat i tabell
Visa resultat i tabell visar testresultatet i tabellformat.
Högerklicka på Lägg till -> Lyssnare -> Visa resultat i tabell
Visa resultat i tabell visas som nedanstående bild
Steg 5) Kör ditt test
När du är redo att köra ett test klickar du på knappen Kör i menyraden eller kortkommandot Ctrl + R
Detta är resultatet av detta test
Till exempel, i ovanstående figur, låt oss analysera prov 2
- Starttiden är 22: 05: 01.866
- Provtiden för prov 2 är 172 ms
- Konstant timer : 5000 ms (som konfigurerat)
- Sluttiden för detta prov är = 22: 05: 011.666 + 172 + 5000 = 22: 05: 07.038
Så prov 3 bör börja klockan 22: 05: 07.039 (Som visas i figuren ovan)
Den fördröjning av varje prov är 5000 ms
Om du ändrar konstanttimern är noll ser du att resultatet ändras
Låt oss analysera prov 1
- Starttiden är 22: 17: 39.141
- Provtiden för prov 2 är 370 ms
- Konstant timer : 0 ms (som konfigurerat)
- Sluttiden för detta prov är = 22: 17: 39.141+ 370 + 0 = 22: 17: 39.511
Så prov 2 bör börja vid tidpunkten är 22: 17: 39.512 (visas i figuren ovan)
Felsökning:
Om du möter problemet när du kör ovanstående scenario ... gör följande
- Kontrollera om du ansluter till internet via en proxy. Om ja, ta bort proxyen.
- Öppna en ny instans av JMeter
- Öppna TimerTestPlan.jmx i Jmeter
- Dubbelklicka på trådgrupp -> Visa resultat i tabell
- Kör testet