gatling tutorial getting started with gatling load testing
Ovaj video vodič za Gatling pruža sveobuhvatan pregled Gatlinga, uključujući značajke, korake instalacije i primjere korištenja Gatling Simulator Recorder-a:
Gatling je okvir za testiranje otvorenog koda zasnovan na Scali. Ovih dana stječe veliku popularnost s više od 3 milijuna preuzimanja u posljednje 3 godine.
Dostupan je kao otvorena verzija, kao i poslovna varijanta Gatling Frontline uz više integracija i podršku tima iz Gatlinga. Ali na svim slučajevima praktične upotrebe može se raditi putem izdanja zajednice Gatling, koje je besplatno i otvorenog koda.
Što ćete naučiti:
Video tutorial za Gatling
Pogledajmo korake potrebne za početak rada s Gatlingom. Također ćemo pokriti neke od važnih značajki Gatlinga kao dio ovog vodiča.
Evo video vodiča o Uvodu u Gatling:
Montaža
Gatling se može instalirati na 2 različita načina. To se može objasniti na sljedeći način:
# 1) Koristeći Gatling kao samostalni alat, možete jednostavno instalirati instalacijski program / aplikaciju, koristeći službeni Gatling web stranica i slijedite upute za instalaciju.
Imajte na umu da instalirana zip mapa sadrži i školjku i batch datoteke što čini Gatling prikladnim za upotrebu u različitim operativnim sustavima poput - Windows, MacOS, Linux / Unix itd.
Instalacijski program nije ništa drugo doli snimač skripti Gatling koji se temelji na Javi, a koji bilježi radnje korisnika putem preglednika u alatu i koji se zatim može pretvoriti u skriptu ili scenarij koji treba učitati i testirati. To ćemo detaljno vidjeti u narednim odjeljcima.
#dva) Drugi način instaliranja / korištenja Gatlinga je upotreba kao paketa kroz Maven / Gradle ili kroz Scala alate za izgradnju.
Ovdje je važno napomenuti da se sve skripte Gatling temelje na Scali, stoga bi stvaranje projekta temeljenog na Scali moglo koristiti biblioteku Gatling koju mogu uvesti bilo koji alati za izgradnju, poput Maven / Gradle ili SBT.
Značajke Gatlinga
To su kako slijedi:
# 1) Asinkrona arhitektura i lagane niti
Gatling ima naprednu arhitekturu koja se temelji na Akka alatu i potpuno je asinkron. To mu daje prednost u usporedbi s drugim alatima za testiranje performansi, poput JMetera, gdje svaka nit odgovara jednom korisniku.
Ovdje jedna nit može simulirati više korisnika jer ima arhitekturu razmjene poruka kroz model glumca.
Ukratko, Gatlingov test može podnijeti niz istovremenih korisnika po stroju u usporedbi s drugim alatima poput Jmetra, što rezultira znatnom uštedom u CPU-u i RAM-u.
Preporučena literatura => Model glumca i asinkrona arhitektura Gatlinga
# 2) Jezik specifičan za domenu čini testove čitljivima
Gatling skripte napisane su u Scali i imaju prijateljski DSL što skripte čini vrlo čitljivima i manje sklonim pogreškama. Za više detalja o Gatling DSL-u, molimo pogledajte ovdje .
# 3) Agnostička podrška protokola
Gatling podržava širok spektar protokola, uključujući HTTP, HTTPS i web utičnice. Također ima proširenja za testiranje učitavanja SQL upita / skripti.
# 4) Izvještavanje i tvrdnje
Gatling pruža izvanmrežnu podršku za stvaranje detaljnih HTML izvještaja za izvršene scenarije, a također ima mogućnosti primjene tvrdnji na pojedinačne zahtjeve u scenarijima - Na primjer, Vremena odgovora, JSON provjera sadržaja itd.
# 5) Prijateljski snimač testova zasnovan na GUI-u
Gatling dolazi s jednostavnim grafičkim snimačem za testiranje koji može generirati simulacijsku skriptu bilježenjem aktivnosti korisnika ili korisničkih radnji na web pregledniku. Generirane skripte su skripte temeljene na Scali koje se mogu izvršavati u budućnosti i mogu se mijenjati prema zahtjevima.
Testirana aplikacija i snimanje uzorka skripte
Za izradu simulacije uzorka koristit ćemo Gatlingova službeno pružena hostirana aplikacija
Koristit ćemo Gatlingov snimač simulacija da započnemo s stvaranjem opterećenja i testiranjem performansi. Prije nego što krenemo dalje, razgovarajmo o scenariju u kojem želimo učitati test.
Scenarij je slučaj upotrebe koji pokušavamo učitati u test. Što ovo, u osnovi znači da želimo oponašati korisničku akciju u scenariju ili skupu koraka koje treba testirati.
Na primjer, pretpostavimo da korisnik pristupi bilo kojoj web stranici e-trgovine kao što je Amazon.com i traži proizvod te ga dodaje u košaricu i na kraju plati s podacima o plaćanju.
Cijela ova korisnička akcija jedan je scenarij koji sadrži pojedinačne korake poput
- Otvaranje web stranice Amazon.com.
- Čeka se učitavanje stranice.
- Traženje proizvoda putem trake za pretraživanje proizvoda.
- Dodavanje proizvoda u košaricu.
- Odlazak u košaricu i naplata s proizvodom.
- Uplata.
Da bismo mogli učitati ovaj cjeloviti scenarij, iz perspektive sustava ili poslužitelja, moramo shvatiti da se radi o zbirci ili nizu API poziva koji se upućuju na pozadinski poslužitelj, a to je ono što želimo u testu izvedbe.
Za ovaj ćemo primjer upotrijebiti sljedeći scenarij za aplikaciju smještenu u Gatlingu:
# 1) Dođite do Aplikacija domaćin Gatlinga .
#dva) Kliknite 'Dodaj novo računalo'.
# 3) Na padajućem izborniku odaberite Naziv računala kao Apple, a naziv tvrtke kao 'Apple Inc', kao što je prikazano na donjoj slici.
# 4) Kliknite 'Stvori ovo računalo' nakon unosa podataka.
Postavite Gatling Recorder i snimite prvu skriptu
U ovom ćemo odjeljku razgovarati o tome kako postaviti rekorder Gatlingovog testa kako bi se stvorila simulacija za scenarij o kojem smo govorili u prethodnom odjeljku.
Koristit ćemo Gatlingov simulacijski snimač koji je u vrlo jednostavnom obliku, HTTP proxy - morate biti upoznati s drugim HTTP alatima za snimanje kao što su Fiddler ili chrome Http proxy itd. Dakle, Gatlingov snimač sličan je dodatnim značajkama pretvaranja snimanje u testnu simulacijsku skriptu.
Pa prvo da vidimo kako postaviti Gatlingov snimač:
# 1) Jednom kada je instalirana zip mapa Gatling, jednostavno raspakirajte mapu na mjesto na kojem želite instalirati Gatling.
najbolja aplikacija za upravljanje projektima za iphone
#dva) Nakon ovog koraka trebamo postaviti dvije varijable okoline nazvane - GATLING_HOME (za kućni direktorij Gatling) i GATLING_CONF (za mjesto mape config Gatlinga).
Ovisno o vrsti OS-a (tj. Windows ili Mac ili Linux), postavite ove varijable okruženja sa sljedećim vrijednostima:
GATLING_HOME = {gatling-install-directory}
Primjer:
GATLING_HOME=/Users/username/gatling-charts-highcharts-bundle-3.3.0/
GATLINE_CONF = {gatling-install-directory} / conf
Primjer:
GATLING_CONF=/Users/username/gatling-charts-highcharts-bundle-3.3.0/conf
Jednom kada se varijable postave za provjeru, na terminalu možete jednostavno pritisnuti naredbu - izvoz | hvat 'GATLING' a izlaz bi trebao prikazati 2 varijable okruženja koje smo upravo postavili.
# 3) Jednom kad su postavljene ove varijable okruženja, trebamo pokrenuti naš snimač skripti Gatling. Za OS zasnovan na sustavu Windows postoji batch datoteka koja se isporučuje s instalacijom Gatlinga, a za OS temeljena na Linuxu / MacOS-u postoji datoteka ljuske.
Ispod je struktura datoteke mape bin:
# 4) Dakle, ovisno o vrsti OS-a, možemo odabrati vrstu datoteke koju ćemo izvršiti za pokrenut rekorder. Napominjemo da ovdje imamo dvije datoteke koje ćemo koristiti:
- Datoteka Gatling.sh / Gatling.bat - za pokretanje skripte za simulaciju.
- Datoteka Recorder.sh / recorder.bat - pokrenuti / otvoriti snimač simulacije Gatlinga.
# 5) Pokrenimo skriptu snimača kako bismo otvorili snimač Gatlinga. Upotrijebite Mac / Linux terminal za pokretanje skripte ljuske (ili izravno pokrenite batch datoteku Windows).
. /$GATLING_HOME/bin/recorder.sh
# 6) Ako su varijable okoline postavljene pravilno, tada bi gornja naredba trebala otvoriti snimač skripti Gatling.
# 7) Primijetite Http / https priključak u rekorderu (zadani odabir je 8000 ili 8080) - ovo je priključak na kojem je konfiguriran Http proxy slušatelj prometa Gatlinga. Ovaj broj porta možemo promijeniti prema vlastitoj pogodnosti (ili možemo nastaviti sa zadanim vrijednostima).
kako koristiti css selektor u selenu -
# 8) Ajmo sada konfigurirati chrome proxy za preslušavanje ovog porta - tj. U osnovi želimo usmjeravati svoj Http promet iz preglednika putem ovog proxy slušatelja ili snimača.
Slijedite ovo veza za postavljanje proxyja na kromu za različite OS.
# 9) Nakon što je port konfiguriran, tada ćemo izvršiti naš scenarij na Aplikacija domaćin Gatlinga.
# 10) Prije početka izvođenja scenarija, prvo ćemo trebati konfigurirati naziv paketa i naziv klase za rezultujuću testnu skriptu, a zatim pokrenuti preslušavač proxyja jednostavnim klikom na gumb „Start” u snimaču skripti.
#jedanaest) Čim se proxy snimač pokrene, pojavit će se novi prozor, koji u osnovi bilježi sve zahtjeve koji se pokreću kada se scenarij izvrši u pregledniku.
# 12) Dođite do Aplikacija domaćin Gatlinga u pregledniku.
Ako vidite da je zahtjev zabilježen u prozoru snimača, to znači da je postavka proxyja za preglednik ispravna i da je Gatlingov snimač sada u mogućnosti snimiti zahtjeve prema testnom scenariju koji se izvršava (ako se ne vratite na korak # 7 da popravi konfiguraciju proxyja za preglednik / sustav).
# 13) Sada, kad se uvjerimo da postava radi u redu, kliknite na 'Clear' da biste uklonili sve sa snimača i započnite izvršavanje scenarija kako je spomenuto u nastavku:
- Dođite do Aplikacija domaćin Gatlinga
- Kliknite 'Dodaj novi računalni gumb'. Obavezno pristanite na novi računalni obrazac s URL-om preglednika kao http://computer-database.gatling.io/computers/new
- Sada ispunite vrijednosti u obrascu s - Naziv računala kao Apple i tvrtka kao 'Apple inc', kao i s padajućeg izbornika.
- Kliknite 'Stvori ovo računalo' i bit ćete preusmjereni na početna stranica
- Ovo je cijeli scenarij koji želimo izvršiti i stvoriti automatizacijsku skriptu pomoću Gatlingovog snimača skripti. Jednom kad se izvrše gornji koraci, snimač bi trebao zabilježiti sve HTTP pozive koji se upućuju i trebao bi izgledati kao u nastavku.
- Imajte na umu da u snimljenoj skripti postoji i nekoliko naredbi 'PAUSE'. To nisu ništa drugo nego 'vrijeme razmišljanja' koje snimač snima kako bi oponašao radnju korisnika - tj. Vrijeme potrebno između zahtjeva. Te se vrijednosti mogu konfigurirati / promijeniti nakon izvršavanja skripte, ovisno o stvarnim nedima.
# 14) Da biste dovršili izradu skripte, kliknite “Stop & Save” na prozoru snimača.
#petnaest) Skripta za simulaciju trebala bi se stvoriti u direktoriju ili mapi simulacije koja se prikazuje na ekranu za konfiguraciju Gatlingovog snimača.
Razumijevanje simulacijske skripte
Jednom kada se kreira skripta za izvršeni scenarij, idite do mape za simulaciju i otvorite skriptu.
Imajte na umu da će se skripta stvoriti kao isti strukturirani paket koji je naveden prije pokretanja snimača - u našem će slučaju biti com.naučiti.grabiti a naziv razreda bit će “AddProduct”.
Otvorimo datoteku AddProduct.scala i pokušajmo proći kroz različite odjeljke skripte.
To se može objasniti na sljedeći način:
# 1) Konfiguracija postavljanja :tj httpProtocol i zaglavlja - U ovom je odjeljku izvršena ukupna konfiguracija podataka za skriptu, kao što su:
- Vrsta protokola - Http ili https,
- Ostale stvari poput baseUrl koje će se koristiti u sljedećim zahtjevima.
- Informacije o zaglavlju - uobičajene informacije o zaglavlju, kao i zaglavlja koja se šalju s pojedinačnim zahtjevima. Pogledajte header_0 i headers_2 u isječku koda u nastavku:
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) Definicija scenarija: Sadrži stvarni scenarij i redoslijed zahtjeva koji trebaju biti izvršeni kako bi se ponovno kreirao scenarij koji je bio pokrenut u prozoru preglednika.
Također je ovdje važno napomenuti - upravo smo spomenuli relativni URL ovdje za zahtjeve, umjesto kompletnog URL-a. To je zato što ćemo koristiti httpProtocol konfiguracija raspravljali smo u točki # 1, gdje su definirani podaci o konfiguraciji scenarija.
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) Izvršenje scenarija: Ovaj je odjeljak najvažniji odjeljak koji sadrži korake za postavljanje scenarija.
Ovdje je konfiguracija ubrizgavanja broj korisnika / niti ili drugim riječima, opterećenje s kojim želimo testirati ovaj scenarij.
Zadana vrijednost za broj korisnika uvijek je 1 i to se može promijeniti prije izvođenja scenarija.
Također, imajte na umu da koristimo i definiciju httpProtocol o kojoj smo govorili u točki # 1 koja sadrži sve osnovne konfiguracije za scenarij koji treba izvršiti.
setUp (scn.inject (atOnceUsers (1))). protokoli (httpProtocol)
Više detalja oko konfiguracije ubrizgavanja i učitavanja potražit ćemo u sljedećem vodiču.
Izvršavanje testa pomoću simulacijske skripte
Sada ćemo vidjeti kako izvršiti scenarij pomoću ove simulacijske skripte koja je kreirana pomoću snimača. Rezultirajuća skripta koja se kreira zapravo je klasa temeljena na Scali koja sadrži detalje oko scenarija koji je izveden kroz preglednik.
Evo video vodiča za izvršenje skripte Gatling:
Instalacija Gatling dolazi s skriptom ljuske (za korisnike Windowsa to je batch skripta) koja se može koristiti za izvršavanje ove simulacije.
Slijedite korake u nastavku za izvršenje kreirane simulacije:
# 1) Dođite do mape bin instalacije Gatlinga ili jednostavno idite na - $ GATLING_HOME / bin
#dva) Izvršite datoteku Gatling.sh za Linux / Mac OS (ili datoteku Gatling.bat za korisnike Windowsa).
# 3) U slučaju da je u mapi simulacije prisutno više datoteka skripti, skripta će zatražiti od korisnika da odabere simulaciju koju korisnik želi pokrenuti (Da biste to simulirali, stvorite isti scenarij u različitim paketima, a kada se pokrene skripta Gatling, možete vidi da prikazuje 2 različite skripte).
# 4) Odabrana je simulacija (ili je postavljena na zadane vrijednosti simulacije prisutne u mapi ako postoji samo jedna simulacijska skripta).
# 5) Skripta sada traži dodavanje neobaveznog opisa izvođenja. Možete to jednostavno zanemariti i pritisnuti enter za pokretanje izvršavanja simulacije.
# 6) Dok se simulacija izvršava, možete vidjeti kako se izvješća o izvršenju ispisuju na terminalu, a parametri poput vremena odziva, ukupnih zahtjeva, uspjeha / neuspjeha itd. Prikazat će se sažeti prikaz kada se izvrši scenarij.
# 7) Gatling također generira detaljno izvješće temeljeno na HTML-u na kraju završetka izvršenja scenarija koje sadrži puno različitih podatkovnih točaka s obzirom na izvršeni scenarij.
Pojedinosti generiranog izvješća proučit ćemo u sljedećem vodiču.
Prednosti korištenja Gatlinga
Gatling nudi puno mogućnosti bogatih značajkama kako bi se stvorio dobar testni paket za automatizaciju performansi koji koristi široki Gatling DSL, kao i sve veću podršku zajednice za pomoć i dobivanje odgovora na upite.
Ovdje je važno napomenuti da za razliku od ostalih alata poput JMetera, Gatling uključuje strmu krivulju učenja, ali umjesto toga daje puno programskih mogućnosti za stvaranje robusnog i potpuno funkcionalnog skupa skripti za simulaciju testiranja performansi i opterećenja.
Neke od ovih prednosti su sljedeće:
- Lagan je i omogućuje upotrebu jedne niti za više zahtjeva, za razliku od većine drugih perf alata gdje se nit izjednačava s korisnikom.
- Korištenje jedne niti za više zahtjeva omogućava Gatlingu da se više skalira i generira veće opterećenje čak i na jednom stroju.
- Gatling pruža mogućnost pokretanja u distribuiranom načinu rada kada postoji ogroman teret koji treba simulirati.
- Pruža podršku za mnoge druge protokole osim HTTP-a,na primjer, Websockets, MQTT, JDBC, itd. Sve se mogu testirati pomoću Gatlinga.
- Gatling nudi bogatstvo značajki DSL - jezik specifičan za domenu, koji ima jednostavnu sintaksu i pruža moćne mogućnosti kombiniranim za stvaranje skripte za simulaciju.
- Također pruža puno složenih mogućnosti simulacijske kontrole kao što su petlje konstrukcije, simuliranje vremena razmišljanja, ograničavanje zahtjeva izvan željenog RPS-a, itd.
- Sadrži bogate mogućnosti izvještavanja i mogu se prilagoditi i ovisno o zahtjevima.
Zaključak
U ovom uputstvu dotaknuli smo se osnova upotrebe Gatlinga kao odabranog alata za ispitivanje opterećenja. Izražajnim DSL-om i izvrsnom podrškom za HTTP protokol, Gatling brzo stječe popularnost i koristi se kao odabrani alat za mnoge.
Također smo saznali o snimaču Gatlinga i pokretaču skripti Gatling s uzorkom skripte za simulaciju koja je pomogla razumjeti osnovni koncept snimanja skripte za simulaciju koja bi se u budućnosti mogla izvršiti pomoću izvršitelja Gatling Scripta.
U sljedećem ćemo tutorialu obrađivati pisanje Gatling skripti kao projekti Scale - tj. Bez upotrebe rekordera i razumjeti predloške izvještaja koji se generiraju kad Gatling dovrši izvršavanje simulacije.
Preporučena literatura
- Ispitivanje opterećenja pomoću HP LoadRunner vodiča
- Korelacija - Ispitivanje opterećenja pomoću LoadRunnera
- Vodič za ispitivanje namakanja - što je ispitivanje namakanjem
- Ispitivanje opterećenja pomoću LoadUI - besplatnog alata za testiranje učitavanja otvorenog koda
- Pregled WebLOAD - Početak rada s alatom za testiranje učitavanja WebLOAD
- Vodič za ispitivanje razaranja i ispitivanja bez razaranja
- Vodič za ispitivanje upotrebljivosti: cjelovit vodič za početak rada
- Ispitivanje performansi vs ispitivanje opterećenja vs testiranje naprezanja (razlika)