JMeter Elemente și componente: Grup de fire, eșantionare

⚡ Rezumat inteligent

JMeter Elementele sunt elementele constitutive ale fiecărui plan de testare: Grupurile de fire de execuție creează utilizatori virtuali, Samplerele trimit cererile, Listenerele afișează rezultatele, iar Elementele de configurare furnizează valorile implicite și datele de care au nevoie aceste cereri.

  • 🔘 Grup de fire de execuție: Fiecare fir de execuție reprezintă un utilizator virtual care controlează aplicația testată.
  • ☑️ Samplere: Decideți protocolul cererii — FTP, HTTP, JDBC, SMTP și altele.
  • ✅ Ascultători: Redați rezultatele sub formă de grafic, arbore, tabel sau fișier jurnal.
  • 🧪 Elemente de configurare: Setați valorile implicite și variabilele pe care eșantionatoarele le reutilizează pe parcursul întregului test.
  • 🛠️ Rulare bazată pe date: Configurația setului de date CSV furnizează acreditări diferite fiecărui utilizator simulat.
  • ⚡ Echivalente moderne: Samplerul BSF a fost eliminat; versiunile curente de script până la JSR223 și Groovy.

JMeter Elemente: Grup de fire de execuție, Samplere, Listenere și elemente de configurare

În ce este Element JMeter?

Diferitele componente ale JMeter se numesc Elemente. Fiecare element este conceput pentru un scop specific.

Figura de mai jos oferă câteva elemente comune în JMeter și arată cum se află acestea sub un grup de fire de execuție.

JMeter diagramă ierarhică a elementelor cu grupul de fire de execuție deasupra samplerelor, controlerelor logice, ascultătorilor, elementelor de configurare, aserțiunilor, temporizatoarelor și procesoarelor

Studierea tuturor componentelor dintr-o dată este o invitație la confuzie și plictiseală. Aici, vom discuta despre componentele obligatorii înainte de a putea începe. de testare in JMeter.

Componentele rămase vor fi discutate pe măsură ce vor fi utilizate în tutorialele următoare. Elementele discutate în acest tutorial sunt enumerate mai jos.

Grup de fire

Un grup de fire de execuție este o colecție de fire de execuție. Fiecare fir de execuție reprezintă un utilizator care utilizează aplicația testată. Practic, fiecare fir de execuție simulează o solicitare reală a unui utilizator către server.

Controalele pentru un grup de fire de execuție vă permit să setați numărul de fire de execuție pentru fiecare grup.

De exemplu, dacă setați numărul de fire de execuție la 100, JMeter va crea și simula 100 de solicitări ale utilizatorilor către serverul testat, așa cum ilustrează diagrama de mai jos.

Diagrama unei JMeter Grup de fire de execuție care simulează Utilizatorul 1 până la Utilizatorul 100, fiecare trimițând o cerere către aplicația testată

Panoul Grup de fire de execuție are și o perioadă de creștere a timpului, care distribuie începerea acelor fire de execuție în timp, în loc să lanseze fiecare utilizator simultan.

Samplere

După cum știm deja, JMeter acceptă testarea HTTP, FTP, JDBC și multe alte protocoale.

De asemenea, știm că grupurile de thread-uri simulează cererile utilizatorilor către server.

Dar cum știe un grup de thread-uri ce tip de cerere (HTTP, FTP și așa mai departe) trebuie să facă?

Răspunsul este Samplerele.

Cererea utilizatorului poate fi o cerere FTP, o cerere HTTP, o cerere JDBC și așa mai departe. Figura de mai jos listează eșantionatoarele abordate în acest tutorial.

Listarea diagramei arborescente JMeter eșantionoare: cerere FTP, cerere HTTP, cerere JDBC, eșantionator BSF, eșantionator jurnal de acces și eșantionator SMTP

Solicitare FTP

Să ne imaginăm că vrei să testezi performanța unui server FTP. Poți folosi un eșantionator de cereri FTP în JMeter pentru a face această sarcină. Acest controler vă permite să trimiteți o solicitare FTP „descărcare fișier” sau „încărcare fișier” către un server FTP.

Afișează diagrama JMeter trimiterea unei cereri FTP către un server FTP pentru a încărca sau descărca un fișier

De exemplu, dacă doriți să descărcați un fișier „Test.txt” de pe un server FTP testat, trebuie să configurați câțiva parametri în JMeter ca în figura de mai jos.

Panou de eșantionare a cererilor FTP cu ftp.example.com ca server, portul 21, Test.txt ca fișier la distanță și autentificare anonimă

Panoul setează serverul la ftp.example.com, portul 21, fișierul la distanță către Test.txt și opțiunea get(RETR), deci JMeter trimite o comandă FTP către serverul respectiv și descarcă fișierul.

Cerere HTTP

Acest sampler vă permite să trimiteți o solicitare HTTP/HTTPS către un server web.

Luați în considerare exemplul de mai jos. JMeter trimite o cerere HTTP către Google site web și preia fișiere HTML sau imagini de pe acesta.

Diagrama lui JMeter trimiterea unei cereri HTTP către Google Site-uri și primirea de HTML și imagini în schimb

În tutorial JMeter Test de performanta, vom explica mai multe despre această solicitare HTTP. Este cel mai utilizat eșantionator testarea aplicațiilor web pe care se bazează munca.

Solicitare JDBC

Acest eșantionator vă permite să executați o bază de date test de performanta. Trimite o cerere JDBC (o interogare SQL) la o bază de date.

Diagrama lui JMeter trimiterea unei interogări SQL către un server de baze de date și primirea rezultatului

De exemplu, un server de baze de date are un câmp test_result stocat într-un tabel numit test_tbl. Doriți să interogați aceste date de la serverul de baze de date, astfel încât să puteți configura JMeter a trimite un SQL interogare către acest server pentru a recupera datele.

Panoul JDBC Request cu Interogare Type setat la Select Statement și interogarea select test_result din test_tbl unde id = 1

Tipul de interogare aici este Instrucțiune Select, iar interogarea citește select test_result from test_tbl where id = 1Un element de configurare a conexiunii JDBC trebuie să furnizeze pool-ul la care indică câmpul Nume variabilă.

BSF Sampler

Acest sampler vă permite să scrieți un sampler folosind a BSF limbaj de scripting.

Iată un exemplu de eșantionator BSF în JMeter, cu câmpuri pentru limbajul scriptului, parametrii transmiși scriptului și fie un script inline, fie un fișier script extern.

Panoul BSF Sampler cu câmpuri pentru limbajul de script, parametri, un fișier de script extern și corpul scriptului în linie

Notă de depreciere: Familia de elemente BSF a fost depreciată în favoarea elementelor JSR223 și nu mai apare în JMeter referință componentăÎn versiunile actuale, utilizați Sampler JSR223 implementate cu Groovy, care compilează scriptul și are performanțe mult mai bune sub sarcină. Panoul de mai sus este păstrat aici deoarece planurile de testare mai vechi îl conțin încă.

Access Log Sampler

Acest eșantionator vă permite să citiți jurnalele de acces și să generați cereri HTTP. Intrările din jurnal pot fi imagini, HTML, CSS și așa mai departe.

Panoul Access Log Sampler care afișează câmpurile implicite pentru server și port, clasa pluginului TCLogParser și locația fișierului jurnal

Câmpul Parser are valoarea implicită org.apache.jmeter.protocol.http.util.accesslog.TCLogParserși punctele de câmp Locație fișier jurnal JMeter la jurnalul pe care doriți să fie redat din nou.

Sampler SMTP

Dacă doriți să testați un server de e-mail, puteți utiliza SMTP Sampler. Acest sampler este folosit pentru a trimite mesaje de e-mail folosind protocolul SMTP.

Panou SMTP Sampler cu setări server, adrese de e-mail, opțiuni de autentificare și securitate și setări pentru mesaje

Panoul grupează setările serverului, adresele de e-mail, setările de autentificare și mesaje și afișează porturile implicite lângă câmpul Port: SMTP 25, SSL 465 și StartTLS 587.

ascultătorii

Listenerii afișează rezultatele execuției testului. Aceștia pot prezenta rezultatele în diferite formate, cum ar fi un arbore, un tabel, un grafic sau un fișier jurnal.

Diagramă care prezintă un Listener care împarte rezultatele în vizualizări grafice, arbore, tabel și raport

Rezultate grafice listener-ul afișează timpii de răspuns ai serverului pe un grafic, cu numărul de eșantioane, media, abaterea, debitul și mediana imprimate dedesubt.

Ascultătorul de rezultate grafice care trasează timpii de răspuns cu date, medie, mediană, deviație și serii de randament

Vizualizați arborele de rezultate afișează rezultatul fiecărei solicitări a utilizatorului în format HTML de bază, cu o filă de rezultate Sampler care raportează timpul de încărcare, latența, dimensiunea și codul de răspuns.

Listener-ul arborelui de rezultate cu o listă de cereri în stânga și fila de rezultate Sampler care afișează codul de răspuns 200

Vizualizați rezultatele în tabel afișează un rezumat al rezultatului testului sub format tabelar, câte un rând per probă.

Vizualizați rezultatele în listenerul de tabel cu coloane pentru numărul eșantionului, ora de început, numele firului de execuție, eticheta și ora eșantionului

Un fișier jurnal înregistrează același rezumat ca text, care este ceea ce păstrați atunci când un test rulează fără interfața grafică.

Rezumatul agregat al jurnalului care listează etichetele eșantionatorului cu număr de eșantioane, medii și un rând TOTAL

Cea mai buna practica: Ascultătorii GUI consumă memorie și abate rezultatele, așa că rulați teste de încărcare reală în modul non-GUI și deschideți ulterior fișierul cu rezultate salvate.

Elemente de configurare

Elementele de configurare configurează valorile implicite și variabilele pentru utilizare ulterioară de către samplere.

Figura de mai jos prezintă câteva elemente de configurare utilizate în mod obișnuit în JMeter.

Diagramă arborescentă a JMeter elemente de configurare: Configurare set de date CSV, Manager cookie HTTP, Element de configurare autentificare, Valori implicite pentru solicitări HTTP și Valori implicite pentru solicitări FTP

Configurare set de date CSV

Să presupunem că vrei să testezi un site web pentru 100 de utilizatori care se conectează cu date de autentificare diferite. Nu este nevoie să înregistrezi scriptul de 100 de ori. Poți parametriza scriptul pentru a introduce date de autentificare diferite. Aceste informații de autentificare (de exemplu, numele de utilizator și parola) ar putea fi stocate într-un fișier text. JMeter are un element care vă permite să citiți diferiți parametri din fișierul text respectiv. Este vorba de „CSV Data Set Config”, care este folosit pentru a citi linii dintr-un fișier și a le împărți în variabile.

JMeter arborele planului de testare cu configurația setului de date CSV selectată sub un controler de conectare alături de valorile implicite ale cererilor HTTP

Acesta este un exemplu de date CSV. Este un fișier text care conține numele de utilizator și parolele utilizate pentru a vă conecta la site-ul web țintă.

Fișier text csv_data.txt care conține patru rânduri separate prin virgulă cu valori pentru numele de utilizator, parola și lungimea cookie-urilor

HTTP Cookie Manager

Să înțelegem acest lucru cu un exemplu.

Ai folosit browserul (Firefox, Chrome și așa mai departe) pentru a naviga www.google.com.

Te autentifici cu numele de utilizator și parola.

Numele dumneavoastră de utilizator și parola vor fi stocate pe computerul dumneavoastră sub formă de cookie-uri.

Data viitoare, când vei vizita www.google.com, nu trebuie să vă conectați din nou, deoarece browserul dvs. va folosi cookie-urile ca date de utilizator pentru a vă conecta.

Managerul de cookie-uri HTTP are aceeași funcție ca un browser web. Dacă aveți o solicitare HTTP și răspunsul conține un cookie, Managerul de cookie-uri stochează automat acel cookie și îl folosește pentru toate solicitările viitoare către site-ul web respectiv.

Valori implicite de solicitare HTTP

Acest element vă permite să setați valorile implicite pe care le utilizează controlerele dvs. de solicitare HTTP.

De exemplu,

Trimiți 100 de cereri HTTP către serverul google.com.

Va trebui să introduceți manual numele serverului google.com pentru toate cele 100 de solicitări.

În schimb, ați putea adăuga un singur element HTTP Request Defaults cu câmpul „Server Name or IP” setat la google.com, așa cum se arată mai jos.

Panoul Setări implicite pentru cereri HTTP cu google.com ca nume de server, portul 80 și timeout-uri de conectare și de răspuns

Nu este nevoie să îl tastezi de 100 de ori. Acest element va fi explicat în detaliu în tutorial. JMeter Test de performanta.

Element de configurare de conectare

Elementul Login Config vă permite să adăugați sau să suprascrieți setările de nume de utilizator și parolă în eșantionoare.

De exemplu, doriți să simulați un utilizator care se conectează la site-ul web www.facebook.com cu un nume de utilizator și o parolă. Puteți utiliza elementul de configurare a autentificării pentru a adăuga această setare de nume de utilizator și parolă într-o solicitare de utilizator.

Panoul Element de configurare autentificare cu guru99 introdus ca nume de utilizator și un câmp mascat pentru parolă

Elementul de configurare autentificare vs. configurația setului de date CSV

Element de configurare de conectare Configurare set de date CSV
Folosit pentru a simula autentificarea unui utilizator Folosit pentru simularea conectărilor multiple ale utilizatorilor
Potrivit doar pentru parametrii de conectare (nume de utilizator și parolă) Potrivit pentru un număr mare de parametri

Împreună, aceste două elemente acoperă aproape fiecare scenariu de acreditare pe care îl întâlnești în instrumente de testare a performanței muncă.

Întrebări frecvente

Spune JMeter cât timp durează până când toate firele de execuție rulează. Zece fire de execuție cu o accelerare de 100 de secunde încep la un interval de zece secunde. O accelerare prea scurtă inundă serverul și produce erori pe care niciun utilizator real nu le-ar provoca vreodată.

Cronometrele inserează o pauză între cereri, astfel încât încărcarea simulată să semene cu navigarea reală în loc de o inundație. Aserțiunile verifică fiecare răspuns, marcând un eșantion ca eșuat atunci când codul de stare, textul sau durata nu corespund cu ceea ce ați specificat.

Acestea grupează și ramifică cererile de sub ele. Un controler de buclă își repetă copiii, un controler If îi execută condiționat, iar un controler de tranzacții raportează întregul grup ca un pas temporizat în rezultate.

Nu. Listener-ele precum View Results Tree stochează în buffer fiecare eșantion și distorsionează numerele pe care le raportează. Rulați testul în modul non-GUI, scrieți rezultatele într-un fișier, apoi încărcați acel fișier într-un listener după ce rularea s-a terminat.

Elementele de configurare și preprocesoarele sunt aplicate mai întâi, apoi rulează eșantionatorul, apoi postprocesoarele, aserțiunile și listenerele. Domeniul de aplicare contează și el: un element plasat la nivel de plan se aplică fiecărei cereri de sub acesta.

Este util pentru identificarea tiparelor. Introducerea unui fișier cu rezultate către un asistent scoate la iveală cele mai lente etichete, grupuri de erori și tendințe ale timpului de răspuns mult mai rapid decât citirea rândurilor. Confirmați întotdeauna rezultatele cu mostrele brute înainte de a acționa.

Da. Redactează Groovy pentru extracsetarea valorilor, construirea de sarcini utile și setarea variabilelor în interiorul unui element JSR223. Verificați fiecare sugestie, deoarece adesea apelează la API-ul BeanShell depreciat sau la variabile care JMeter nu expune.

Un grup de fire de execuție și un eșantionator. Orice altceva este opțional. În practică, se adaugă un listener pentru ca rezultatele să fie vizibile, iar valorile implicite sau un fișier de date sunt adăugate odată ce aceleași valori încep să se repete în mai multe cereri.

Rezumați această postare cu: