Tame JMeter +24
- 01.07.15 12:21 •
- GlukKazan •
- # 261483
- Habrahabr •
- 3 •
- 13468
- la fel ca Forbes, doar mai bine.
- Web - HTTP, HTTPS
- SOAP / REST
- FTP
- Baza de date prin JDBC
- LDAP
- Meniul orientat pe mesaje (MOM) prin JMS
- Mail - SMTP (S), POP3 (S) și IMAP (S)
- MongoDB (NoSQL)
- Comenzi native sau scripturi de shell
- TCP
Deci, dacă aveți o sarcină de automatizare înaintea dvs. și tot ceea ce aveți nevoie este listată în această listă, cu siguranță trebuie să vă gândiți să folosiți JMeter înainte de a vă conecta la programarea dvs. preferată Perl, Python sau Java. Poate că această abordare va economisi mult timp.
Cu aceasta, totul este simplu:
- Instalați Java (dacă nu este deja instalat)
- Scoateți și despachetați ansamblul proaspăt de JMeter
- Am setat variabila de mediu JMETER_BIN în directorul cu fișiere JMeter executabile (numai pentru Windows)
- Executați jmeter.bat sau jmeter.sh (în funcție de sistemul de operare) din directorul bin
Singura problemă pe care am întâlnit-o în Windows este că variabila JMETER_BIN trebuie să fie terminată cu un caracter înainte sau înapoi. Detalii pot fi găsite în scriptul care se execută. Citirea instrucțiunilor nu va fi, de asemenea, superfluă.
Înregistrarea scenariului
Aceasta, probabil, este cea mai eficientă caracteristică a lui JMeter. Acesta a fost deja descris anterior. dar voi repeta, pentru că în acest articol a fost vorba de o versiune puțin depășită. JMeter-ul poate fi pornit în modul proxy, astfel încât tot traficul HTTP să treacă prin acesta. Toate detaliile de interacțiune vor fi înregistrate automat în grupul de filete selectat sau în controlerul de înregistrare. Pentru a adăuga noduri noi în copac, faceți clic pe butonul din dreapta al mouse-ului și selectați tipul dorit din meniul derulant:
Am evidențiat setările din figura pe care ar trebui să le acordați atenție. Este posibil ca portul să trebuiască să fie schimbat dacă ceva a fost ridicat la 8080. În cazuri complexe, Planul de testare va trebui să adauge un Manager HTTP Cookie și un Manager de autorizare HTTP. După ce faceți clic pe butonul Start, accesați setările browserului dvs. preferat:
Interacțiunea cu Yandex, brusc, este foarte dificilă:
variabile
Pentru ceva mai mult sau mai puțin grav, vom avea nevoie de posibilitatea de parametrizare. De exemplu, să presupunem că trebuie să specificăm timeout-urile în care JMeter va aștepta răspunsul unui server. Pentru a le reîncărca în fiecare solicitare HTTP. la orice schimbare, ar fi prea obositoare. În același timp, definim setările proxy HTTP (dacă este folosit):
Goliți valorile variabilelor nu reprezintă o problemă. În setările corespunzătoare, șirurile goale sunt înlocuite, dacă este necesar, dacă proxy-ul HTTP nu este utilizat. Puteți merge mai departe și plasați cu adevărat toate setările HTTP într-un singur loc:
Toate variabilele sunt în palma mâinii tale. Convenabil.
Cererea JDBC
Acest Sampler ne oferă acces la orice bază de date care acceptă protocolul JDBC. Mai întâi, adăugați un element de configurare în Planul de testare cu setările pentru conectarea la serverul de bază de date (Configurație conexiune JDBC):
În plus față de setările reale pentru conectarea la baza de date, este important să completați câmpul Nume variabil. Acest nume va fi folosit în Solicitarea JDBC (Sampler) pentru a accesa poolul de sesiuni:
Dacă sunteți interesat de rezultatele selecției, trebuie să completați numele variabilelor. JMeter nu poate parsa interogări SQL pentru numele coloanelor. Puteți să listați numele coloanelor separate prin virgule și să ignorați coloanele fără a le da un nume. Introducem Debug Sampler și uităm că sa dovedit:
Expresii regulate
Acum, aș dori să analizez rezultatele cererilor către serverele Web. Pentru aceasta, ni se dă toată puterea expresiilor regulate. Extractorul de expresii regulate poate fi găsit în Procesoare postale. Adăugați-o la solicitarea HTTP și configurați-o:
Aici, suntem interesați doar de codul de răspuns HTTP (dar puteți vedea din ilustrație că puteți procesa conținutul răspunsului). Vom extrage șirul de numere (Expresie regulată) și vom pune rezultatul aplicării șablonului (Șablon) în variabila http_result (Nume de referință):
După cum era de așteptat, obținem 200. În același timp, puteți vedea cum se realizează capturarea în variabile printr-o expresie regulată.
Ceva din el
Acum, să spunem că suntem interesați de timpul în care cererea HTTP a fost executată. Și ne interesează nu doar pentru statistici, ci vrem să o folosim cumva în scenariu (de exemplu, adăugați la baza de date). BeanShell va ajuta cu această sarcină. Mai precis, folosim Pre- and PostProcessor.
În prima oară vom primi o marcă de timp:
Și în al doilea rând, să primească cu ajutorul ei o întârziere de timp:
În general, acest lucru funcționează și:
Dar aici trebuie să facem o observație importantă. Deoarece, momentan, nu fac teste de încărcare, performanța acestui design nu este foarte importantă pentru mine. Dacă nu este cazul în cazul dvs., merită citit următorul articol.
Dacă nu ar exista o astfel de oportunitate, nu ar merita să începeți întreaga conversație. În cazul testării încărcării, scriptul poate fi rulat din GUI, fără probleme. Dar dacă suntem interesați de automatizare, este necesar să putem rula în tăcere (de exemplu, cron -u). Desigur, există și această posibilitate:
Salvați scriptul într-un fișier cu extensia jmx (în interiorul acestuia este XML) și executați această comandă. Scriptul rulează fără a porni GUI-ul și în același timp scrie rezultatele lucrărilor sale în jurnal. Totul este simplu și convenabil.