Ce sunt cronometrele?
În mod implicit, JMeter trimite solicitarea fără a face pauză între fiecare solicitare. În acest caz, JMeter ar putea copleși serverul de testare făcând prea multe solicitări într-o perioadă scurtă de timp.
Să ne imaginăm că trimiteți mii de solicitări către un server web testat în câteva secunde. Asta se intampla!
Temporizatorii permit JMeter să întârzie între fiecare cerere pe care o face un fir. Un cronometru poate rezolva problema de suprasarcină a serverului .
De asemenea, în viața reală, vizitatorii nu ajung la un site web în același timp, ci la intervale de timp diferite. Deci Timer va ajuta la imitarea comportamentului în timp real.
În acest tutorial, veți învăța
- Temporizator constant
- Gaussian Random Timer
- Timer aleatoriu uniform
- BeanShell Timer
- Temporizator BSF
- Temporizator JSR223
- Cum se utilizează temporizatorul constant
Următoarele sunt câteva tipuri comune de cronometru în JMeter
Temporizator constant:
Temporizatorul constant întârzie fiecare solicitare a utilizatorului pentru aceeași perioadă de timp.
Temporizator aleatoriu gaussian:
Temporizatorul aleatoriu Gauss întârzie fiecare solicitare a utilizatorului pentru o perioadă aleatorie de timp.
Parametri:
Atribut | Descriere |
---|---|
Nume | Numele descriptiv pentru acest cronometru care este afișat în copac |
Abateri (milisecunde) | Un parametru al funcției de distribuție gaussiană |
Offset de întârziere constantă (milisecunde) | Valoare suplimentară în milisecunde |
Deci întârzierea totală este descrisă ca în figura de mai jos:
Timer aleatoriu uniform:
Temporizatorul uniform aleatoriu întârzie fiecare solicitare a utilizatorului pentru o perioadă aleatorie de timp.
Parametri:
Atribut |
Descriere |
---|---|
Nume |
Numele descriptiv pentru acest cronometru care este afișat în copac |
Întârziere aleatorie maximă |
Numărul maxim aleatoriu de milisecunde de întârziat. |
Offset de întârziere constantă (milisecunde) |
Valoare suplimentară în milisecunde |
Întârzierea totală este suma valorii aleatorii și a valorii de compensare.
BeanShell Timer
Temporizatorul BeanShell poate fi utilizat pentru a genera un timp de întârziere între fiecare solicitare a utilizatorului.
Temporizator BSF
Temporizatorul BSF poate fi utilizat pentru a genera o întârziere între fiecare solicitare a utilizatorului utilizând un limbaj de scriptare BSF.
Temporizator JSR223
Temporizatorul JSR223 poate fi folosit pentru a genera o întârziere între fiecare cerere de utilizator utilizând un limbaj de script JSR223
Cum se utilizează temporizatorul constant
În acest exemplu, veți utiliza Timer constant pentru a seta o întârziere fixă între solicitările utilizatorilor către google.com.
Să începem cu un script de test simplu
- JMeter creează o cerere de utilizator către http://www.google.com de 100 de ori
- Întârzierea între fiecare solicitare a utilizatorului este de 5000 ms
Iată foaia de parcurs pentru acest exemplu practic:
Pre-condiție:
Noi reutiliza Etapa 1 și Etapa 2 în testele de performanta JMeter tutorial.
Pasul 1) Adăugați un grup de fire
Faceți clic dreapta pe Planul de testare și adăugați un nou grup de fire: Adăugați -> Fire (Utilizatori) -> Grup de fire
În panoul de control Thread Group, introduceți Thread Properties după cum urmează
Această setare permite JMeter să creeze o solicitare de utilizator către http://www.google.com de 100 de ori
Pasul 2) Adăugați elemente JMeter
- Adăugați cerere HTTP implicită
- Adăugați o solicitare HTTP
Pasul 3) Adăugați temporizator constant
Faceți clic dreapta pe Thread Group -> Timer -> Constant Timer
Configurarea întârzierii firului de 5000 de milisecunde
Pasul 4) Adăugați rezultatele vizualizării în tabel
Vizualizați rezultatele în tabel afișează rezultatul testului în format tabel.
Faceți clic dreapta pe Adăugare -> Ascultător -> Vizualizați rezultatul în tabel
Vizualizați rezultatele în tabel se afișează ca în figura de mai jos
Pasul 5) Rulați testul
Când sunteți gata să rulați un test, faceți clic pe butonul Executare din bara de meniu sau pe tasta scurtă Ctrl + R
Acesta este rezultatul acestui test
De exemplu, în figura de mai sus, să analizăm proba 2
- Ora de începere este 22: 05: 01.866
- Durata eșantionului eșantionului 2 este de 172 ms
- Temporizator constant : 5000 ms (așa cum este configurat)
- Ora de încheiere a acestui eșantion este = 22: 05: 01.866 + 172 + 5000 = 22: 05: 07.038
Deci eșantionul 3 ar trebui să înceapă la ora 22: 05: 07.039 (așa cum se arată în figura de mai sus)
Întârzierea fiecărei probe este de 5000 ms
Dacă schimbați temporizatorul constant este zero , veți vedea că rezultatul este modificat
Să analizăm eșantionul 1
- Ora de începere este 22: 17: 39.141
- Durata eșantionului eșantionului 2 este de 370 ms
- Timer constant : 0 ms (așa cum este configurat)
- Ora de încheiere a acestui eșantion este = 22: 17: 39.141+ 370 + 0 = 22: 17: 39.511
Deci eșantionul 2 ar trebui să înceapă la ora 22: 17: 39.512 (Afișat în figura de mai sus)
Depanare:
Dacă vă confruntați cu problema în timp ce executați scenariul de mai sus ... faceți următoarele
- Verificați dacă vă conectați la internet prin intermediul unui proxy. Dacă da, eliminați proxy-ul.
- Deschideți o nouă instanță a JMeter
- Deschideți TimerTestPlan.jmx în Jmeter
- Faceți dublu clic pe Grup de fire -> Vizualizați rezultatul în tabel
- Rulați testul