Hvad er timere?
Som standard sender JMeter anmodningen uden pause mellem hver anmodning. I så fald kan JMeter overvælde din testserver ved at komme med for mange anmodninger på korte tidspunkter.
Lad os forestille dig, at du sender tusindvis af anmodninger til en webserver under test om få sekunder. Dette er hvad der sker!
Timere gør det muligt for JMeter at forsinke mellem hver anmodning, som en tråd fremsætter. En timer kan løse serverens overbelastningsproblem .
I det virkelige liv ankommer besøgende heller ikke til et websted på samme tid, men med forskellige tidsintervaller. Så Timer hjælper med at efterligne adfærd i realtid.
I denne vejledning lærer du
- Konstant timer
- Gaussisk tilfældig timer
- Ensartet tilfældig timer
- BeanShell-timer
- BSF-timer
- JSR223 Timer
- Sådan bruges konstant timer
Følgende er nogle almindelige typer af en timer i JMeter
Konstant timer:
Konstant timer forsinker hver brugeranmodning i det samme tidsrum.
Gaussisk tilfældig timer:
Gaussisk tilfældig timer forsinker hver brugeranmodning i en tilfældig periode.
Parametre:
Attribut | Beskrivelse |
---|---|
Navn | Beskrivende navn til denne timer, der vises i træet |
Afvigelser (millisekunder) | En parameter for Gaussisk distributionsfunktion |
Konstant forsinkelsesforskydning (millisekunder) | Yderligere værdi i millisekunder |
Så den samlede forsinkelse er beskrevet som nedenstående figur:
Ensartet tilfældig timer:
Ensartet tilfældig timer forsinker hver brugeranmodning i en tilfældig periode.
Parametre:
Attribut |
Beskrivelse |
---|---|
Navn |
Beskrivende navn til denne timer, der vises i træet |
Tilfældig forsinkelse maksimalt |
Maksimalt tilfældigt antal millisekunder at forsinke. |
Konstant forsinkelsesforskydning (millisekunder) |
Yderligere værdi i millisekunder |
Den samlede forsinkelse er summen af den tilfældige værdi og forskydningsværdien.
BeanShell-timer
BeanShell-timeren kan bruges til at generere en forsinkelsestid mellem hver brugeranmodning.
BSF-timer
BSF-timeren kan bruges til at generere en forsinkelse mellem hver brugeranmodning ved hjælp af et BSF-scriptingsprog.
JSR223 Timer
JSR223-timeren kan bruges til at generere en forsinkelse mellem hver brugeranmodning ved hjælp af et JSR223-scriptingsprog
Sådan bruges konstant timer
I dette eksempel bruger du Constant Timer til at indstille en fast forsinkelse mellem brugeranmodninger til google.com.
Lad os starte med et simpelt test script
- JMeter opretter en brugeranmodning til http://www.google.com 100 gange
- Forsinkelsen mellem hver brugeranmodning er 5000 ms
Her er køreplanen for dette praktiske eksempel:
Forudsætning:
Vi genbruger trin 1 og trin 2 i tutorial JMeter Performance Testing.
Trin 1) Tilføj trådgruppe
Højreklik på testplanen, og tilføj en ny trådgruppe: Tilføj -> Tråde (brugere) -> Trådgruppe
I trådgruppens kontrolpanel skal du indtaste trådegenskaber som følger
Denne indstilling lader JMeter oprette en brugeranmodning til http://www.google.com 100 gange
Trin 2) Tilføj JMeter-elementer
- Tilføj standard HTTP-anmodning
- Tilføj HTTP-anmodning
Trin 3) Tilføj konstant timer
Højreklik på trådgruppe -> Timer -> Konstant timer
Konfigurering af trådforsinkelse på 5000 millisekunder
Trin 4) Tilføj visningsresultater i tabel
Vis resultater i tabel viser testresultatet i tabelformat.
Højreklik på Tilføj -> Lytter -> Se resultat i tabel
Vis resultater i tabel vises som nedenstående figur
Trin 5) Kør din test
Når du er klar til at køre en test, skal du klikke på knappen Kør i menulinjen eller på hurtigtasten Ctrl + R
Dette er resultatet af denne test
Lad os for eksempel i ovenstående figur analysere prøve 2
- Starttid er 22: 05: 01.866
- Eksempeltid for prøve 2 er 172 ms
- Konstant timer : 5000 ms (som konfigureret)
- Slut tid af denne prøve er = 22: 05: 01,866 + 172 + 5000 = 22: 05: 07,038
Så prøve 3 skal starte klokken 22: 05: 07.039 (Som vist i ovenstående figur)
Den forsinkelse af hver prøve er 5000 ms
Hvis du ændrer den konstante timer er nul , vil du se, at resultatet er ændret
Lad os analysere prøve 1
- Starttid er 22: 17: 39.141
- Eksempeltid for prøve 2 er 370 ms
- Konstant timer : 0 ms (som konfigureret)
- Slut tid af denne prøve er = 22: 17: 39.141+ 370 + 0 = 22: 17: 39,511
Så prøve 2 skal starte kl. 22: 17: 39.512 (vist i ovenstående figur)
Fejlfinding:
Hvis du står over for problemet, mens du kører ovenstående scenario ... gør følgende
- Kontroller, om du opretter forbindelse til internettet via en proxy. Hvis ja, skal du fjerne proxyen.
- Åbn en ny forekomst af JMeter
- Åbn TimerTestPlan.jmx i Jmeter
- Dobbeltklik på trådgruppe -> Se resultat i tabel
- Kør testen