jmeter processors controllers
Prezentare generală a pre-procesoarelor și controlerelor din JMeter (Partea III):
=> Urmăriți aici o serie cuprinzătoare de tutoriale JMeter gratuite
Acest articol ar ghida utilizatorii prin utilizarea pre-procesoarelor, post-procesoarelor și controlerelor în JMeter. Controlerele sunt foarte utile deoarece vă fac scenarii de testare.
Poate doriți să testați diferite scenarii în care doriți să vă configurați propria succesiune a unei cereri trimise către un server pentru a monitoriza timpul de răspuns și alți factori de performanță.
Ce veți învăța:
- Pre-procesoare
- Parametrii utilizatorului
- Exemplu de expirare
- Controlere
- Exemplu în timp real
- Șablon de înregistrare JMeter
- Concluzie
- Lectură recomandată
Pre-procesoare
Acestea sunt elementele care sunt executate înainte de executarea unui eșantionator. Puteți atașa pre-procesorul cu eșantionatorul pentru care doriți să faceți unele modificări în cerere.
Cel mai simplu caz ar putea fi adăugarea preprocesatorului „Sample Timeout” cu o cerere HTTP, astfel încât această solicitare să ruleze doar pentru o perioadă de timp definită. De asemenea, se asigură că această modificare se face numai pentru Sampler părinte.
Mai jos sunt câteva dintre pre-procesorul utilizat în JMeter:
- Pre-procesor Bean Shell
- Parser HTML Link
- Rescriere URL URL
- Preprocesor JDBC
- Expirare eșantion
- Parametrii utilizatorului
Cele mai frecvent utilizate sunt explicate mai jos cu exemple. Este posibil să aveți nevoie sau nu de toate în proiectele dvs. Încercați să identificați scenariile legate de proiectul dvs. și să le implementați pe cele care vă ajută să acoperiți scenarii de performanță în timp real.
Parametrii utilizatorului
Parametrii utilizatorului sunt utilizați pentru a defini valorile variabilelor înainte de a fi utilizate în eșantioane. Când JMeter execută acest element de pre-procesor, acesta stochează valorile în variabilele la care pot fi referite orice Samplere din același grup de fire.
cum se creează cazuri de testare junit în java
Dacă aveți mai multe fire de execuție decât numărul de utilizatori din „Parametrii utilizatorului”, subiectele suplimentare vor repeta din nou valorile.
De exemplu, aveți 5 utilizatori în grupul dvs. de fire, dar doar 3 în pre-procesor, apoi 4ași un 5afirul va folosi param1 și param2 .
Exemplu de expirare
Acest pre-procesor este utilizat pentru a defini durata de expirare a cererilor.
De exemplu, dacă ați pus un eșantion de timp din 400 de milisecunde, atunci toate cererile care necesită timp> 400 vor avea un răspuns eșuat. Vă rugăm să consultați mai jos capturile de ecran.
Controlere
Controlerele sunt foarte importante în construirea unui plan de testare JMeter în timp real. Acesta definește secvența în care cererile sunt trimise la server.
De exemplu, Dacă doriți să testați o aplicație web în care doriți să vă conectați o dată și să căutați, selectarea articolelor solicită să se parcurgă unul câte unul pentru toate iterațiile. Controlerele fac acest lucru posibil prin gestionarea fluxului de cereri care merge pe serverul testat.
Mai jos sunt cele mai utilizate controlere în JMeter
- Controler simplu
- Controler modul
- Odată numai controler
- Controler intercalat
- Controler de buclă
- Dacă controler
- Pentru fiecare controler
- Controler de înregistrare și etc.,
Controler simplu
Controlerul simplu nu îndeplinește nicio funcție specifică. Este doar un fel de container în care vă puteți păstra solicitările similare pentru a face planul de testare ușor de înțeles.
Controler de buclă
Dacă doriți o anumită solicitare specifică pentru a rula mai multe iterații decât cele specificate în Grupul de fire, le puteți pune sub Loop Controller și introduceți numărul de bucle în setările controlerului.
Exemplu: Dacă aveți un grup de fire cu 1 utilizator și 3 iterații, atunci toate cererile dvs. din acest grup vor rula de 3 ori. Acum, dacă aveți două Sampler HTTP sub un controler de buclă cu numărul de bucle 2, ambele Samplere ar rula de 1 * 3 * 2 = de 6 ori.
Vă rugăm să consultați capturile de ecran de mai jos, care o explică mai departe
Odată numai controler
Acest controler este utilizat atunci când doriți să executați o cerere specifică o singură dată, chiar dacă aveți mai multe fire în grupul de fire. Cel mai simplu exemplu care poate fi luat în considerare este „Preluarea paginii de pornire a unui site web” sau „Autentificare într-o aplicație web”. Scenariul în timp real ar dori ca acest lucru să se întâmple o singură dată și alte cereri, cum ar fi căutarea sau editarea / ștergerea, să se întâmple mai multe ori.
Cererea care urmează să fie executată o singură dată poate fi plasată sub Controlul O singură dată. Consultați imaginea de mai jos pentru referință. Odată ce numai setările controlerului ocolesc setările grupului de fire părinte.
Controler de înregistrare
La fel ca Simple Controller, Recording Controller nu modifică nicio secvență a cererilor care sunt trimise către server. Este utilizat cu HTTP (S) Script Recorder. Toate cererile înregistrate cu acest element non-test sunt salvate sub controlerul de înregistrare.
Trebuie să specificați controlerul țintă pentru a salva cererile înregistrate făcute pe server.
Controlerul de înregistrare și înregistratorul de scripturi HTTP (s) intră în imagine atunci când testerii nu au informații despre adresele URL și parametrii solicitării. Ei pot pur și simplu să înregistreze și să capteze toate cererile care ajung la serverele lor. Acest lucru funcționează atât pentru mobil, cât și pentru proiecte web.
Controler de transfer
Acest controler este, de asemenea, utilizat pentru a controla fluxul de execuție. După cum se vede în decupajul de mai jos, acest controler este împărțit în două părți:
Procent executare - Această selecție va face ca Jmeter să execute doar un anumit procent din iterațiile totale pentru eșantioane plasate sub acest controler. De asemenea, puteți bifa caseta de selectare „Per utilizator” pentru a controla acest lucru la nivel de utilizator.
De exemplu, Grupul de fire este configurat să aibă 10 utilizatori și numărul de bucle este 5. Prin urmare, iterațiile totale sunt 50. Dacă% execuție este setată la 50%, atunci toate eșantioanele de sub controlul de transfer vor face doar 25 de iterații (50% din 50).
Execuții totale - Acest lucru permite utilizatorilor să specifice numărul de iterații direct pentru eșantioanele conținute sub acest controler.
Controler intercalat
Acest controler vă permite să măriți domeniul de aplicare al testării performanței prin modificarea secvenței în mai multe moduri, astfel încât să puteți testa încărcarea pe server atunci când aplicațiile accesează cererea cu secvențe diferite. Interleave Controller face selecții alternative cu probele de sub el.
În cazul în care există alte controlere, cum ar fi Simple Controller, ținute sub acest bloc, controlerul de intercalare oferă privilegiul de a selecta câte un eșantionator dintr-un container pentru fiecare iterație. Pentru a explica mai departe, luați în considerare planul de testare de mai jos.
Deci, Jmeter va itera alternativ între controlere pentru fiecare iterație. Prin urmare, secvența va fi menționată mai jos
Request1 -> Request3 -> Request 5 - Request2 -> Request4 -> Request6
Vă rugăm să consultați rezultatele JMeter de mai jos cu numărul de fire = 2 și numărul de bucle = 2.
ce este o cheie de rețea pentru wifi
În exemplul de mai sus, Jmeter este intercalat cu următoarea buclă / iterație. Există setări în Interleave Controller care pot face ca JMeter să trimită cereri alternative cu fiecare fir nou.
Vă rugăm să consultați rezultatele de mai jos. Acest lucru este util în scenariile în care doriți servere secvențiale sau simultane care lovesc sarcini cu secvența diferită a cererii de la aceeași mașină.
Controler aleatoriu
Funcționează aproape ca un controler Interleave, dar nu alege probele în ordine. Doar selectează sub controlerele și eșantioanele din interiorul lor în mod aleatoriu.
Dacă controler
Dacă controlerul funcționează în mod similar, o expresie IF este tratată în orice limbaj de programare. Condiția este validată mai întâi și apoi componentele de sub acest container se execută dacă condiția este TRUE, în caz contrar, elementele din afara IF Controller vor fi executate.
Exemplu : Continuând cu unul dintre exemplele anterioare care implică controlerul Interleave, acum unul dintre cele două controlere Interleave a fost păstrat sub controlerul IF și condiția „$ (COUNT)<10 is added as a condition. Variable COUNT is defined in config element “User Defined Variables” and is given a value equal to 11. Configuration is described below
Definirea și atribuirea unei valori la COUNT variabilă.
Starea de definire în Dacă controler setări. Jmeter va valida această condiție și, dacă este TRUE, va executa blocurile de sub acest container.
După cum puteți vedea din planul de test de mai jos, numai Request3, Request4 și Request5 se vor executa în cazul în care condiția este evaluată ca Fals .
În timp ce Controlere
Acest controler execută componentele de sub acesta până când condiția devine falsă.
De exemplu, să spunem că avem o condiție în timp ce ($ (count)<10), it will execute the child elements until the condition is false. To test this, there should be a counter which gets increment or decrement on each iteration and then condition is evaluated. Config Element “Counter” can be used to serve this purpose.
Configurați elementul de configurare „Contor” pentru a începe de la 1 și apoi crește la fiecare iterație. Vedeți mai jos pentru mai multe clarificări:
Vom atinge restul controlerelor în tutorialele noastre video.
Exemplu în timp real
Să luăm în considerare un scenariu în care echipa de testare nu cunoaște adresele URL și parametrii tuturor cererilor care lovesc serverul testat. Acum, pentru a încărca testul serverului, trebuie să înregistreze solicitările și apoi să moduleze încărcarea secvențial sau concomitent și să creeze scenarii din ele pentru a face testarea performanței.
Pași
deschiderea unui fișier XML în excel
- Adăugați un șablon în Jmeter pentru controlerul de înregistrare
- Setați proxy-ul în browserul dvs. și alegeți același port în HTTP (s) Script Recorder
- Înregistrați solicitările
- Modificați planul de testare și măriți sarcina
- Grupați tranzacțiile în consecință
- Încercați diferite combinații de cereri
Șablon de înregistrare JMeter
JMeter are, de asemenea, un șablon predefinit. Selectați opțiunea „Șablon” din meniul Fișier. După selectarea șablonului pentru a alege opțiunea „Înregistrare” în fereastra care se deschide și faceți clic pe Creare.
De îndată ce selectați acest șablon de înregistrare, veți vedea câteva componente adăugate deja în planul de testare.
- HTTP (s) Script Recorder sub Work Bench
- Implicite solicitări HTTP și Manager cookie-uri HTTP
- Controler de înregistrare sub grupul de fire.
Puteți face setări proxy în browserul dvs. pentru a vorbi cu serverul proxy JMeter sau puteți utiliza CHROME Extension Blazemeter pentru a înregistra cererile și apoi exporta. jmx în Jmeter. Există multe alte extensii pentru a înregistra scriptul și apoi pentru a-l exporta în JMeter. Instrumentul BADBOY funcționează bine și cu Jmeter pentru înregistrarea atât a accesărilor web, cât și a celor mobile.
Click pe. jmx opțiune pentru a exporta cererea înregistrată la Jmeter. Acum, de la Jmeter, deschideți fișierul. jmx și vedeți solicitările și parametrii asociați cu fiecare cerere.
Concluzie
Până acum, se presupune că toți trebuie să vă familiarizați cu logica de bază a JMeter, cum simulează încărcarea, cum să jucați cu diferite tipuri de eșantioane, cum să controlați fluxul de execuție cu ajutorul controlerului și folosind variabile și funcții pentru a rula buclele pe iterații. Acesta nu este cu siguranță sfârșitul seriei de tutoriale de pe JMeter.
Există multe tutoriale video să urmeze care va ghida testerii cu mai multe mâini pe diferite scenarii în Jmeter și modul în care fiecare componentă JMeter poate fi utilizată în cel mai bun mod.
=> Consultați lista completă a tutorialelor video JMeter aici
Vă rugăm să ne împărtășiți comentariile sau întrebările.
Lectură recomandată
- Controlere Jmeter Partea 1
- Controlere Jmeter Partea 2
- Cum se realizează corelația JMeter cu un exemplu
- Lucrul cu solicitările HTTP în JMeter
- Lucrul cu cererea FTP în JMeter
- Utilizarea postprocesorului în JMeter (Extractor regulat de expresii)
- Top 5 plugin-uri JMeter și cum să le utilizați (cu exemple)
- JMeter Timers: Constant, BeanShell și Guassian Random Timer