gatling tutorial getting started with gatling load testing
Acest tutorial video Gatling oferă o revizuire cuprinzătoare a Gatling, inclusiv funcții, pași de instalare și exemple de utilizare a Gatling Simulation Recorder:
Gatling este un cadru de testare open-source bazat pe Scala. În zilele noastre câștigă multă popularitate, cu peste 3 milioane de descărcări în ultimii 3 ani.
Este disponibil ca o sursă deschisă, precum și ca o variantă de întreprindere numită Gatling Frontline cu mai multe integrări și sprijin din partea echipei Gatling. Dar toate cazurile de utilizare practice pot fi lucrate folosind ediția comunității Gatling, care este gratuită și open-source.
Ce veți învăța:
Tutorial video Gatling
Să vedem pașii necesari pentru a începe cu Gatling. Vom acoperi, de asemenea, unele dintre caracteristicile importante ale Gatling ca parte a acestui tutorial.
Iată un tutorial video despre Gatling Introducere:
Instalare
Gatling poate fi instalat în 2 moduri diferite. Acest lucru poate fi explicat după cum urmează:
# 1) Folosind Gatling ca instrument independent, puteți pur și simplu instala instalatorul / aplicația, utilizând Gatling oficial site-ul web și urmați instrucțiunile de instalare.
Vă rugăm să rețineți că folderul zip instalat conține atât fișiere shell, cât și fișiere batch, ceea ce face Gatling adecvat pentru a fi utilizat pe diferite sisteme de operare precum - Windows, MacOS, Linux / Unix etc.
Programul de instalare nu este altceva decât un recorder de scripturi Gatling bazat pe Java, care înregistrează acțiunile utilizatorului prin browser în instrument și care ar putea fi apoi convertit într-un script sau scenariu care trebuie încărcat și testat. Vom vedea acest lucru în detaliu în secțiunile viitoare.
#Două) O altă modalitate de a instala / utiliza Gatling este folosind-o ca pachet prin Maven / Gradle sau prin instrumentele de construire Scala.
Un punct important de remarcat aici este că scripturile Gatling sunt toate bazate pe Scala, prin urmare, crearea unui proiect bazat pe Scala ar putea utiliza biblioteca Gatling care poate fi importată de orice instrumente de construcție precum Maven / Gradle sau SBT.
Caracteristicile Gatling
Acestea sunt după cum urmează:
# 1) Arhitectură asincronă și fire ușoare
Gatling are o arhitectură avansată bazată pe setul de instrumente Akka și este complet asincron. Aceasta îi oferă un avantaj în comparație cu alte instrumente de testare a performanței, cum ar fi JMeter, unde fiecare fir corespunde unui singur utilizator.
Aici, un singur fir poate simula mai mulți utilizatori deoarece are o arhitectură de mesagerie prin modelul Actor.
Pe scurt, un test Gatling poate gestiona un număr de utilizatori concurenți pe mașină în comparație cu alte instrumente precum Jmeter și, prin urmare, are ca rezultat o economie considerabilă în CPU și RAM.
Lectură recomandată => Model de actor și arhitectură asincronă a lui Gatling
# 2) Limbajul specific domeniului face testele lizibile
Scripturile Gatling sunt scrise în Scala și au un DSL prietenos, ceea ce face ca scripturile să fie foarte lizibile și mai puțin predispuse la erori. Pentru mai multe detalii despre Gatling DSL, vă rugăm să consultați Aici .
# 3) Protocol Agnostic Support
Gatling acceptă o mare varietate de protocoale, inclusiv HTTP, HTTPS și socket-uri Web. De asemenea, are extensii pentru testarea încărcării interogărilor / scripturilor SQL.
# 4) Raportare și afirmații
Gatling oferă suport pentru crearea rapoartelor HTML detaliate pentru scenariile executate și are, de asemenea, capacitatea de a aplica afirmații asupra cererilor individuale în scenarii - De exemplu, Timpii de răspuns, validarea conținutului JSON etc.
# 5) Înregistrator de test prietenos bazat pe GUI
Gatling vine cu un înregistrator grafic de testare ușor de utilizat, care poate genera un script de simulare prin înregistrarea activității utilizatorului sau a acțiunilor utilizatorului pe un browser web. Scripturile generate sunt scripturi bazate pe Scala care ar putea fi executate în viitor și pot fi modificate conform cerințelor.
Aplicație sub testare și eșantion de înregistrare script
Pentru a crea simulare de probă, vom folosi Aplicația găzduită furnizată oficial de Gatling
Vom folosi înregistratorul de simulare Gatling pentru a începe să creăm sarcină și să facem teste de performanță. Înainte de a merge mai departe, să discutăm scenariul în care dorim să încărcăm testul.
Scenariul este un caz de utilizare pe care încercăm să îl încărcăm. Ceea ce înseamnă, în esență, că vrem să imităm acțiunea utilizatorului într-un scenariu sau un set de pași care trebuie să fie testați.
De exemplu, să presupunem că un utilizator accesează orice site web de comerț electronic, cum ar fi Amazon.com și caută un produs, îl adaugă în coș și finalizează finalizarea cu informațiile de plată.
Întreaga acțiune a utilizatorului este un singur scenariu care conține pași individuali precum
- Navigând la site-ul Amazon.com.
- Se așteaptă încărcarea paginii.
- Căutarea unui produs prin bara de căutare a produsului.
- Adăugarea produsului în coș.
- Mergeți în coș și plătiți cu produsul.
- Efectuarea plății.
Pentru a încărca testul acestui scenariu complet, din perspectiva sistemului sau a serverului, trebuie să înțelegem că nu este altceva decât o colecție sau o serie de apeluri API care sunt efectuate către serverul backend și asta ne dorim în testul de performanță.
Pentru acest exemplu, vom folosi scenariul de mai jos pentru aplicația găzduită Gatling:
# 1) Navigheaza catre Aplicație găzduită Gatling .
#Două) Faceți clic pe „Adăugați un computer nou”.
# 3) Selectați Numele computerului ca Apple și numele companiei ca „Apple Inc” din meniul derulant, așa cum se arată în imaginea de mai jos.
# 4) Faceți clic pe „Creați acest computer” după introducerea detaliilor.
Configurați Gatling Recorder și înregistrați primul scenariu
În această secțiune, vom discuta despre cum să configurați înregistratorul de testare Gatling pentru a crea o simulare pentru scenariul pe care l-am discutat în secțiunea anterioară.
Vom folosi înregistratorul de simulare Gatling, care este într-o formă foarte simplă, un proxy HTTP - trebuie să fiți familiarizați cu alte instrumente de înregistrare HTTP, cum ar fi Fiddler sau proxy chrome Http, etc. înregistrarea într-un script de simulare de test.
Deci, să vedem mai întâi cum să configurați înregistratorul Gatling:
# 1) Odată ce folderul zip Gatling este instalat, pur și simplu dezarhivați folderul în locația în care doriți să fie instalat Gatling.
cel mai bun optimizator gratuit pentru Windows 10
#Două) După acest pas, trebuie să setăm 2 variabile de mediu numite - GATLING_HOME (pentru directorul de start Gatling) și GATLING_CONF (pentru locația dosarului de configurare Gatling).
În funcție de tipul de sistem de operare (de exemplu, Windows sau Mac sau Linux), setați aceste variabile de mediu cu valorile de mai jos:
GATLING_HOME = {gatling-install-directory}
Exemplu:
GATLING_HOME=/Users/username/gatling-charts-highcharts-bundle-3.3.0/
GATLINE_CONF = {gatling-install-directory} / conf
Exemplu:
GATLING_CONF=/Users/username/gatling-charts-highcharts-bundle-3.3.0/conf
Odată ce variabilele sunt setate pentru validare, puteți pur și simplu apăsa pe terminal comanda - export | apucă „GATLING” iar ieșirea ar trebui să arate cele 2 variabile de mediu pe care tocmai le-am setat.
# 3) Odată setate aceste variabile de mediu, trebuie să pornim înregistratorul de scripturi Gatling. Pentru sistemul de operare Windows, există un fișier batch furnizat cu instalarea Gatling, iar pentru sistemul de operare Linux / MacOS, este furnizat un fișier shell.
Mai jos este structura de fișiere a folderului bin:
# 4) Deci, în funcție de tipul sistemului de operare, putem alege tipul de fișier de executat pentru înregistratorul care rulează. Vă rugăm să rețineți că există 2 fișiere aici pe care le vom folosi:
- Fișier Gatling.sh / Gatling.bat - pentru a rula scriptul de simulare.
- Fișier Recorder.sh / recorder.bat - pentru a rula / deschide înregistratorul de simulare Gatling.
# 5) Permite rularea scriptului recorderului pentru a deschide recorderul Gatling. Utilizați terminalul Mac / Linux pentru a rula scriptul shell (sau rulați direct fișierul Windows).
. /$GATLING_HOME/bin/recorder.sh
# 6) Dacă variabilele de mediu sunt setate corect, atunci comanda de mai sus ar trebui să deschidă înregistratorul de scripturi Gatling.
# 7) Observați portul Http / https din reportofon (selecția implicită este 8000 sau 8080) - acesta este portul în care este configurat ascultătorul proxy de trafic Http din Gatling. Putem schimba acest număr de port conform convenienței noastre (sau putem continua cu valorile implicite).
întrebări de interviu cu seleniu pentru o experiență de 3 ani
# 8) Acum, să configurăm proxy-ul Chrome pentru a asculta acest port - adică, în esență, dorim să direcționăm traficul Http de la browser prin acest ascultător sau înregistrator proxy.
Urmareste asta legătură pentru a configura un proxy pe Chrome pentru diferite sisteme de operare.
# 9) Odată ce portul este configurat, vom executa apoi scenariul nostru pe Aplicație găzduită Gatling.
# 10) Înainte de începerea executării scenariului, va trebui mai întâi să configurăm numele pachetului și numele clasei pentru scriptul de test rezultat și apoi să pornim ascultătorul proxy făcând clic pe butonul „Start” din înregistratorul de scripturi.
#unsprezece) De îndată ce pornește înregistratorul proxy, va apărea o nouă fereastră și, în esență, captează toate cererile care sunt declanșate atunci când scenariul este executat pe browser.
# 12) Navigheaza catre Aplicație găzduită Gatling în browser.
Dacă vedeți că solicitarea este înregistrată în fereastra înregistratorului, aceasta înseamnă că configurarea proxy pentru browser este corectă și Gatling recorder este acum capabil să înregistreze solicitările conform scenariului de test care se execută (dacă nu reveniți la pasul # 7 pentru a remedia configurația proxy pentru browser / sistem).
# 13) Acum, odată ce suntem siguri că setarea funcționează bine, faceți clic pe „Ștergeți” pentru a elimina totul din înregistrator și începeți să executați scenariul așa cum se menționează mai jos:
- Navigheaza catre Aplicație găzduită Gatling
- Faceți clic pe „Adăugați un buton computer nou”. Asigurați-vă că ajungeți pe un nou formular de computer cu adresa URL a browserului ca http://computer-database.gatling.io/computers/new
- Acum completați valorile din formularul cu - Numele computerului ca Apple și compania ca „Apple inc”, precum și din meniul derulant.
- Faceți clic pe „Creați acest computer” și veți fi redirecționat către pagina principala
- Acesta este întregul scenariu pe care dorim să-l executăm și să creăm un script de automatizare folosind înregistratorul de scripturi Gatling. Odată ce pașii de mai sus sunt executați, reportofonul ar trebui să capteze toate apelurile HTTP efectuate și ar trebui să arate ca mai jos.
- Vă rugăm să rețineți că există și câteva comenzi „PAUSE” și în scriptul înregistrat. Acestea nu sunt altceva decât „timpul de gândire” pe care înregistratorul îl captează pentru a imita acțiunea utilizatorului - adică timpul necesar între cereri. Aceste valori pot fi configurate / modificate odată ce scriptul este executat în funcție de nedurile reale.
# 14) Pentru a finaliza crearea scriptului, faceți clic pe „Stop & Save” pe fereastra recorderului.
#cincisprezece) Scriptul de simulare ar trebui creat în directorul sau folderul de simulare afișat pe ecranul de configurare a înregistratorului Gatling.
Înțelegerea scriptului de simulare
Odată ce scriptul pentru scenariul executat este creat, navigați la folderul de simulare și deschideți scriptul.
Vă rugăm să rețineți că scriptul va fi creat ca același pachet structurat care a fost specificat înainte de a porni recorderul - în cazul nostru, va fi com.learn.gatling iar numele clasei va fi „AddProduct”.
Să deschidem fișierul AddProduct.scala și să încercăm să parcurgem diferitele secțiuni ale scriptului.
Acest lucru poate fi explicat după cum urmează:
# 1) Configurare configurare :adică httpProtocol și anteturi - În această secțiune se realizează configurarea generală a datelor pentru script, cum ar fi:
- Tipul protocolului - Http sau https,
- Alte lucruri, cum ar fi baseUrl, pentru a fi utilizate în cererile ulterioare.
- Informații despre antet - informații comune despre antet, precum și anteturile care trebuie trimise cu solicitări individuale. Consultați header_0 și headers_2 în fragmentul de cod de mai jos:
val httpProtocol = http .baseUrl('http://computer-database.gatling.io') .inferHtmlResources(BlackList('''.*.js''', '''.*.css''', '''.*.gif''', '''.*.jpeg''', '''.*.jpg''', '''.*.ico''', '''.*.woff''', '''.*.woff2''', '''.*.(t|o)tf''', '''.*.png''', '''.*detectportal.firefox.com.*'''), WhiteList()) .acceptHeader ('text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8, application/signed-exchange;v=b3') .acceptEncodingHeader('gzip, deflate') .acceptLanguageHeader('en-GB,en-US;q=0.9,en;q=0.8') .upgradeInsecureRequestsHeader('1') .userAgentHeader('Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.120 Safari/537.36') val headers_0 = Map('Proxy-Connection' -> 'keep-alive') val headers_2 = Map( 'Origin' -> 'http://computer-database.gatling.io', 'Proxy-Connection' -> 'keep-alive')
# 2) Definiția scenariului: Acesta conține scenariul real și ordinea cererilor care trebuie executate pentru a recrea scenariul care rulează în fereastra browserului.
De asemenea, un punct important de remarcat aici este - tocmai am menționat adresa URL relativă pentru solicitări, în loc de adresa URL completă. Acest lucru se datorează faptului că vom folosi Configurare httpProtocol am discutat la punctul # 1, unde sunt definite datele de configurare a scenariului.
val scn = scenario('AddProduct') .exec(http('request_0') .get('/computers') .headers(headers_0) .resources(http('request_1') .get('/computers/new') .headers(headers_0))) .pause(4) .exec(http('request_2') .post('/computers') .headers(headers_2) .formParam('name', 'apple') .formParam('introduced', '') .formParam('discontinued', '') .formParam('company', '1'))
# 3) Executarea scenariului: Această secțiune este cea mai importantă secțiune care conține pașii de configurare a scenariului.
Configurația de injectare aici este numărul de utilizatori / fire sau cu alte cuvinte, sarcina cu care dorim să testăm acest scenariu.
Valoarea implicită pentru un număr de utilizatori este întotdeauna 1 și aceasta poate fi modificată înainte de executarea scenariului.
De asemenea, vă rugăm să rețineți că folosim și definiția httpProtocol pe care am discutat-o la punctul # 1 care conține toate configurațiile de bază pentru scenariul care urmează să fie executat.
setUp (scn.inject (atOnceUsers (1))). protocoale (httpProtocol)
Vom analiza mai multe detalii despre configurarea injectării și încărcării în următorul tutorial.
Executarea testului folosind scriptul de simulare
Acum, vom vedea cum să executăm scenariul folosind acest script de simulare care a fost creat folosind recorderul. Scriptul rezultat care este creat este de fapt o clasă bazată pe Scala care conține detalii despre scenariul care a fost executat prin browser.
Iată un tutorial video pentru Gatling Script Execution:
Instalarea Gatling vine cu un script shell (pentru utilizatorii Windows, este un script batch) care ar putea fi folosit pentru a executa această simulare.
Vă rugăm să urmați pașii de mai jos pentru a executa simularea creată:
# 1) Navigați la folderul bin al instalării Gatling sau pur și simplu accesați - $ GATLING_HOME / bin
#Două) Executați fișierul Gatling.sh pentru Linux / Mac OS (sau fișierul Gatling.bat pentru utilizatorii de Windows).
# 3) În cazul în care există mai multe fișiere de script prezente în folderul de simulare, scriptul va solicita utilizatorului să selecteze simularea pe care dorește să o ruleze utilizatorul (Pentru a simula acest lucru, creați același scenariu în pachete diferite, iar când este rulat scriptul Gatling, puteți vezi că afișează 2 scripturi diferite).
# 4) Simularea este selectată (sau este setată ca implicită la simularea prezentă în folder dacă există doar un singur script de simulare disponibil).
# 5) Scriptul solicită acum să adăugați o descriere opțională a rulării. Puteți pur și simplu să ignorați acest lucru și să apăsați Enter pentru a începe execuția simulării.
# 6) În timp ce se execută simularea, puteți vedea rapoarte de execuție tipărindu-se pe terminal și parametrii precum timpul de răspuns, solicitările totale, succesul / eșecurile, etc. vizualizarea rezumată va fi afișată odată cu finalizarea executării scenariului.
# 7) Gatling generează, de asemenea, un raport detaliat bazat pe HTML la sfârșitul finalizării execuției scenariului, care conține o mulțime de puncte de date diferite cu privire la scenariul executat.
Vom analiza detaliile raportului generat în următorul tutorial.
Avantajele utilizării Gatling
Gatling oferă o mulțime de funcționalități bogate în funcții pentru a construi o suită de teste de automatizare a performanțelor bune, folosind DSL-ul larg Gatling, precum și asistență comunitară tot mai mare pentru asistență și pentru a primi răspunsuri la întrebări.
Este important de menționat aici că, spre deosebire de alte instrumente, cum ar fi JMeter, Gatling implică o curbă de învățare abruptă, dar, în locul acestuia, oferă o mulțime de capacități de programare pentru a crea un set robust și complet funcțional de scripturi de simulare a performanței și testării sarcinii.
Unele dintre aceste avantaje sunt următoarele:
- Este ușor și permite utilizarea unui singur fir pentru mai multe cereri, spre deosebire de majoritatea celorlalte instrumente de perfecționare în care un fir este echivalat cu un utilizator.
- Folosirea unui singur fir pentru solicitări multiple permite Gatling să mărească mai mult și să genereze o sarcină mai mare chiar și pe o singură mașină.
- Gatling oferă posibilitatea de a rula în modul distribuit atunci când există o sarcină imensă care trebuie simulată.
- Oferă suport pentru multe alte protocoale, altele decât HTTP,de exemplu, Websockets, MQTT, JDBC, etc. toate pot fi testate de performanță folosind Gatling.
- Gatling oferă un DSL bogat în caracteristici - Limbaj specific domeniului, care are o sintaxă ușoară și oferă capacități puternice atunci când este combinat pentru a crea un script de simulare.
- De asemenea, oferă o mulțime de capabilități complexe de control al simulării, cum ar fi construcții în buclă, simularea timpului de gândire, reducerea cererilor dincolo de RPS dorit etc.
- Are capabilități de raportare bogate și pot fi personalizate și în funcție de cerințe.
Concluzie
În acest tutorial, am abordat elementele de bază ale utilizării Gatling ca instrument de testare a sarcinii la alegere. Cu DSL expresiv și un suport excelent pentru protocolul HTTP, Gatling câștigă rapid popularitate pentru a fi folosit ca instrument de alegere pentru mulți.
De asemenea, am aflat despre reportofonul Gatling și rulatorul de scripturi Gatling cu un eșantion de script de simulare care a ajutat la înțelegerea conceptului de bază al înregistrării unui script de simulare care ar putea fi apoi executat în viitor folosind executorul de script Gatling.
În următorul tutorial, vom acoperi scrierea scripturilor Gatling ca proiecte Scala - adică fără a utiliza recorderul și a înțelege șabloanele de raport care sunt generate atunci când Gatling finalizează execuția simulării.
Lectură recomandată
- Testarea încărcării cu tutoriale HP LoadRunner
- Corelație - Testarea încărcării cu LoadRunner
- Tutorial de testare a înmuierii - Ce este testarea înmuiere
- Testarea încărcării folosind LoadUI - Un instrument de testare a încărcării gratuit și open source
- Revizuire WebLOAD - Noțiuni introductive despre instrumentul de testare a încărcării WebLOAD
- Tutorial de testare distructivă și testare nedistructivă
- Tutorial de testare a utilizabilității: un ghid introductiv complet
- Testarea performanței vs Testarea sarcinii vs Testarea stresului (Diferență)