gatling tutorial getting started with gatling load testing
Ta video vadnica za Gatling ponuja celovit pregled Gatlinga, vključno s funkcijami, koraki namestitve in primeri uporabe snemalnika simulacij Gatling:
Gatling je odprtokodni testni okvir, ki temelji na Scali. V današnjih časih z več kot 3 milijoni prenosov v zadnjih 3 letih pridobiva veliko popularnost.
Na voljo je tako kot odprtokodna kot tudi različica podjetja Gatling Frontline z več integracijami in podporo ekipe Gatling. Toda vse primere praktične uporabe je mogoče uporabiti z brezplačno in odprtokodno izdajo skupnosti Gatling.
Kaj se boste naučili:
Video vadnica za Gatling
Oglejmo si korake, potrebne za začetek delovanja Gatlinga. V okviru te vadnice bomo obravnavali tudi nekatere pomembne značilnosti Gatlinga.
Tu je video vadnica o uvodu Gatlinga:
Namestitev
Gatling lahko namestite na dva različna načina. To je mogoče razložiti na naslednji način:
# 1) Z uporabo Gatlinga kot samostojnega orodja lahko preprosto namestite namestitveni program / aplikacijo z uporabo uradnega Gatlinga Spletna stran in sledite navodilom za namestitev.
Upoštevajte, da nameščena mapa zip vsebuje lupino in paketne datoteke, zaradi česar je Gatling primeren za uporabo v različnih operacijskih sistemih, kot so Windows, MacOS, Linux / Unix itd.
Namestitveni program ni nič drugega kot snemalnik skriptov Gatling, ki temelji na Javi, ki prek brskalnika v orodju beleži uporabniška dejanja in ki ga je nato mogoče pretvoriti v skript ali scenarij, ki ga je treba naložiti in preizkusiti. To bomo podrobno videli v prihodnjih poglavjih.
#two) Drug način namestitve / uporabe Gatlinga je, da ga uporabite kot paket prek Maven / Gradle ali prek orodij za gradnjo Scala.
Pomembno je omeniti, da vsi skripti Gatling temeljijo na Scali, zato bi lahko pri ustvarjanju projekta, ki temelji na Scali, uporabili knjižnico Gatling, ki jo lahko uvozijo katera koli gradbena orodja, kot sta Maven / Gradle ali SBT.
Značilnosti Gatlinga
Ti so naslednji:
# 1) Asinhrona arhitektura in lahke niti
Gatling ima napredno arhitekturo, ki temelji na orodju Akka, in je popolnoma asinhron. To mu daje prednost v primerjavi z drugimi orodji za preizkušanje zmogljivosti, kot je JMeter, kjer vsaka nit ustreza enemu uporabniku.
Tu lahko ena nit simulira več uporabnikov, saj ima arhitekturo sporočil prek modela Actor.
Na kratko, Gatlingov test lahko obravnava več sočasnih uporabnikov na stroj v primerjavi z drugimi orodji, kot je Jmeter, in s tem znatno prihrani CPU in RAM.
Priporočeno branje => Model igralca in asinhrona arhitektura Gatlinga
# 2) Domain Specific Language omogoča teste berljive
Skripti Gatling so napisani v Scali in imajo prijazen DSL, zaradi česar so skripti zelo berljivi in manj nagnjeni k napakam. Za več podrobnosti o Gatling DSL glejte tukaj .
# 3) Agnostična podpora protokola
Gatling podpira široko paleto protokolov, vključno s HTTP, HTTPS in spletnimi vtičnicami. Ima tudi razširitve za testiranje obremenitve SQL poizvedb / skriptov.
# 4) Poročanje in trditve
Gatling nudi podporo za ustvarjanje podrobnih poročil HTML za izvedene scenarije in ima tudi zmožnosti uveljavljanja trditev o posameznih zahtevah v scenarijih - Na primer, Odzivni časi, preverjanje vsebine JSON itd.
# 5) Prijazen GUI testni snemalnik
Gatling je opremljen z grafičnim testnim snemalnikom, ki je enostaven za uporabo, ki lahko ustvari simulacijski skript s snemanjem dejavnosti uporabnika ali uporabniških dejanj v spletnem brskalniku. Ustvarjeni skripti so skripti na osnovi Scale, ki jih je mogoče izvajati v prihodnosti in jih je mogoče spremeniti v skladu z zahtevami.
Testna aplikacija in snemanje vzorčnega scenarija
Za izdelavo vzorčne simulacije bomo uporabili Gatlingova uradno zagotovljena gostujoča aplikacija
Za začetek ustvarjanja obremenitve in preizkušanja zmogljivosti bomo uporabili Gatlingov simulacijski snemalnik. Pred nadaljevanjem se pogovorimo o scenariju, v katerem želimo naložiti test.
Scenarij je primer uporabe, ki ga poskušamo naložiti v test. Kaj pa to v bistvu pomeni, da želimo posnemati uporabnikovo dejanje v scenarij ali niz korakov, ki jih je treba preizkusiti.
Na primer, domnevamo, da uporabnik dostopa do katerega koli spletnega mesta e-trgovine, kot je Amazon.com, in išče izdelek ter ga doda v košarico in na koncu plača s podatki o plačilu.
Celotno uporabniško dejanje je en scenarij, ki vsebuje posamezne korake, kot je
- Navigacija do spletnega mesta Amazon.com.
- Čakanje, da se stran naloži.
- Iskanje izdelka po vrstici za iskanje izdelka.
- Dodajanje izdelka v košarico.
- Odhod v košarico in odjava z izdelkom.
- Izvedba plačila.
Da bi lahko naložili preizkus tega celotnega scenarija, s sistemskega ali strežniškega vidika, moramo razumeti, da se na zaledni strežnik izvaja samo zbirka ali vrsta klicev API in to želimo v preizkusu učinkovitosti.
Za ta primer bomo uporabili spodnji scenarij za gostovano aplikacijo Gatling:
# 1) Pomaknite se do Gostujoča aplikacija Gatling .

#two) Kliknite »Dodaj nov računalnik«.
# 3) V spustnem meniju izberite ime računalnika kot Apple in ime podjetja kot 'Apple Inc', kot je prikazano na spodnji sliki.

# 4) Po vnosu podrobnosti kliknite »Ustvari ta računalnik«.

Namestite snemalnik Gatling in posnemite prvi skript
V tem poglavju bomo razpravljali o tem, kako nastaviti snemalnik Gatlingovih testov, da ustvari simulacijo za scenarij, ki smo ga obravnavali v prejšnjem poglavju.
Uporabili bomo simulacijski snemalnik Gatling, ki je v zelo preprosti obliki, HTTP proxy - poznati morate druga orodja za snemanje HTTP, kot sta Fiddler ali chrome Http proxy, itd. snemanje v testni simulacijski skript.
Torej, najprej poglejmo, kako nastaviti snemalnik Gatling:
# 1) Ko je nameščena mapa zip Gatling, preprosto razpakirajte mapo na mesto, kjer želite namestiti Gatling.
za kaj se uporabljajo datoteke apk
#two) Po tem koraku moramo nastaviti dve spremenljivki okolja z imenom - GATLING_HOME (za domači imenik Gatling) in GATLING_CONF (za lokacijo konfiguracijske mape Gatling).
Glede na vrsto operacijskega sistema (tj. Windows, Mac ali Linux), nastavite te spremenljivke okolja s spodnjimi vrednostmi:
GATLING_HOME = {gatling-install-directory}
Primer:
GATLING_HOME=/Users/username/gatling-charts-highcharts-bundle-3.3.0/GATLINE_CONF = {gatling-install-directory} / conf
Primer:
GATLING_CONF=/Users/username/gatling-charts-highcharts-bundle-3.3.0/confKo so spremenljivke nastavljene na preverjanje, lahko na terminalu preprosto pritisnete ukaz - izvoz | oprijem “GATLING” in izhod mora prikazati dve spremenljivki okolja, ki smo jih pravkar nastavili.

# 3) Ko so te spremenljivke okolja nastavljene, moramo zagnati naš zapisovalnik skriptov Gatling. Za OS, ki temelji na operacijskem sistemu Windows, je nameščena paketna datoteka z namestitvijo Gatling, za OS Linux / MacOS pa je na voljo datoteka lupine.
Spodaj je struktura datotek mape bin:

# 4) Torej, odvisno od tipa OS, lahko za tekoči snemalnik izberemo vrsto datoteke. Upoštevajte, da bomo tukaj uporabljali 2 datoteki:
- Datoteka Gatling.sh / Gatling.bat - za zagon skripta za simulacijo.
- Datoteka Recorder.sh / recorder.bat - za zagon / odpiranje snemalnika simulacije Gatling.
# 5) Zaženimo skript snemalnika, da odpremo snemalnik Gatling. Za zagon skripta lupine uporabite terminal Mac / Linux (ali neposredno zaženite paketno datoteko Windows).
. /$GATLING_HOME/bin/recorder.sh # 6) Če so spremenljivke okolja pravilno nastavljene, mora zgornji ukaz odpreti snemalnik skriptov Gatling.
# 7) Upoštevajte vrata Http / https v snemalniku (privzeta izbira je 8000 ali 8080) - na teh vratih je konfiguriran poslušalec proxy Http prometa Gatlinga. To številko vrat lahko spremenimo glede na naše udobje (ali pa nadaljujemo s privzetimi vrednostmi).
ustvarjanje make datoteke c ++
# 8) Zdaj pa nastavimo chrome proxy, da posluša ta vrata - torej v bistvu želimo usmerjati svoj Http promet iz brskalnika prek tega poslušalca proxy ali snemalnika.
Sledite temu povezava za namestitev strežnika proxy na chrome za različne operacijske sisteme.
# 9) Ko so vrata konfigurirana, bomo nato izvedli naš scenarij na Gostujoča aplikacija Gatling.
# 10) Preden se začne izvajanje scenarija, bomo morali najprej konfigurirati ime paketa in ime razreda za nastali preizkusni skript, nato pa zagnati poslušalnik proxy s preprostim klikom na gumb »Start« v snemalniku skriptov.

#eleven) Takoj, ko se snemalnik proxy zažene, se prikaže novo okno in v bistvu zajame vse zahteve, ki se sprožijo, ko se scenarij izvede v brskalniku.

# 12) Pomaknite se do Gostujoča aplikacija Gatling v brskalniku.
Če vidite, da je zahteva zapisana v oknu snemalnika, to pomeni, da je nastavitev strežnika proxy za brskalnik pravilna in snemalnik Gatling zdaj lahko snema zahteve v skladu s testnim scenarijem, ki se izvaja (če se ne vrnete na korak # 7, da popravite konfiguracijo proxyja za brskalnik / sistem).

# 13) Ko smo prepričani, da namestitev deluje dobro, kliknite na 'Počisti', da odstranite vse iz snemalnika in začnite izvajati scenarij, kot je navedeno spodaj:
- Pomaknite se do Gostujoča aplikacija Gatling
- Kliknite »Dodaj nov računalniški gumb«. Poskrbite, da boste pristali na novem računalniškem obrazcu z URL-jem brskalnika kot http://computer-database.gatling.io/computers/new
- Zdaj izpolnite vrednosti v obrazcu z - Ime računalnika kot Apple in podjetje kot 'Apple inc', prav tako pa iz spustnega menija.
- Kliknite »Ustvari ta računalnik« in preusmerjeni boste na domača stran
- To je celoten scenarij, ki ga želimo izvesti in ustvariti skript za avtomatizacijo s pomočjo zapisovalnika skriptov Gatling. Ko se izvedejo zgornji koraki, mora snemalnik zajeti vse opravljene klice HTTP in mora biti videti kot spodaj.

- Upoštevajte, da je v posnetem skriptu tudi nekaj ukazov 'PAUSE'. To ni nič drugega kot 'čas razmišljanja', ki ga snemalnik posname, da posnema uporabnikovo dejanje - torej čas, ki traja med zahtevami. Te vrednosti je mogoče konfigurirati / spremeniti po izvedbi skripta, odvisno od dejanskih nedov.
# 14) Če želite dokončati izdelavo skripta, v oknu snemalnika kliknite »Stop & Save«.
# petnajst) Skript za simulacijo bi morali ustvariti v imeniku ali mapi za simulacijo, ki je prikazana na zaslonu za konfiguracijo snemalnika Gatling.

Razumevanje simulacijskega scenarija
Ko je skript za izveden scenarij ustvarjen, se pomaknite do mape za simulacijo in odprite skript.
Upoštevajte, da bo skript ustvarjen kot isti strukturirani paket, ki je bil določen pred zagonom snemalnika - v našem primeru bo com.learn.gatling in ime predavanja bo “AddProduct”.
Odprimo datoteko AddProduct.scala in poskusimo pregledati različne odseke skripta.
To je mogoče razložiti na naslednji način:
# 1) Konfiguracija nastavitve :tj httpProtocol in glave - V tem razdelku je končana celotna konfiguracija podatkov za skript, na primer:
- Vrsta protokola - Http ali https,
- Druge stvari, kot je baseUrl, ki se bodo uporabljale v naslednjih zahtevah.
- Informacije o glavi - skupne informacije o glavi, kot tudi glave, ki jih je treba poslati s posameznimi zahtevami. Glejte header_0 in headers_2 v spodnjem delčku kode:
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) Opredelitev scenarija: Ta vsebuje dejanski scenarij in vrstni red zahtev, ki jih je treba izvršiti, da znova ustvarite scenarij, ki se je zagnal v oknu brskalnika.
Pomembno je omeniti tudi to, da smo pravkar omenili relativni URL za zahteve namesto celotnega URL-ja. To je zato, ker bomo uporabili http Konfiguracija protokola smo razpravljali v točki # 1, kjer so definirani podatki 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) Izvedba scenarija: Ta razdelek je najpomembnejši odsek, ki vsebuje korake za nastavitev scenarija.
Konfiguracija vbrizga je število uporabnikov / niti ali z drugimi besedami obremenitev, s katero želimo preizkusiti ta scenarij.
Privzeta vrednost za število uporabnikov je vedno 1 in to je mogoče spremeniti, preden se izvede scenarij.
Upoštevajte tudi, da uporabljamo tudi definicijo httpProtocol, ki smo jo obravnavali v točki 1, ki vsebuje vse osnovne konfiguracije za izveden scenarij.
setUp (scn.inject (atOnceUsers (1))). protokoli (httpProtocol)
Več podrobnosti o konfiguraciji vbrizgavanja in nalaganja si bomo ogledali v naslednji vadnici.
Izvajanje testa z uporabo simulacijskega skripta
Zdaj bomo videli, kako izvesti scenarij s pomočjo tega simulacijskega skripta, ki je bil ustvarjen s pomočjo snemalnika. Nastali skript, ki se ustvari, je dejansko razred, ki temelji na Scali in vsebuje podrobnosti o scenariju, ki je bil izveden prek brskalnika.
Tu je video vadnica za Gatling Script Execution:
Namestitev Gatling je opremljena s skriptom lupine (za uporabnike sistema Windows je paketni skript), ki bi ga lahko uporabili za izvedbo te simulacije.
Za izvedbo ustvarjene simulacije sledite spodnjim korakom:
# 1) Pomaknite se do mape bin namestitve Gatling ali preprosto pojdite na - $ GATLING_HOME / bin
#two) Izvedite datoteko Gatling.sh za Linux / Mac OS (ali datoteko Gatling.bat za uporabnike sistema Windows).
# 3) V primeru, da je v mapi s simulacijami več datotek skriptov, bo skript uporabnika pozval, naj izbere simulacijo, ki jo želi izvajati (če želite to simulirati, ustvarite isti scenarij v različnih paketih in ko se zažene skript Gatling, lahko glej, da prikaže 2 različni skripti).

# 4) Izbrana je simulacija (ali pa je privzeto nastavljena na simulacijo, ki je prisotna v mapi, če je na voljo samo en simulacijski skript).
# 5) Skript zdaj zahteva, da dodate neobvezen opis izvajanja. To lahko preprosto prezrete in pritisnete enter, da začnete izvajati simulacijo.
# 6) Medtem ko se simulacija izvaja, lahko vidite, kako se na terminalu natisnejo poročila o izvedbi, po končanem izvajanju scenarija pa bodo prikazani strnjeni pogledi parametrov, kot so odzivni čas, skupne zahteve, uspeh / neuspeh itd.

# 7) Gatling na koncu izvedbe scenarija ustvari tudi podrobno poročilo, ki temelji na HTML-ju, ki vsebuje veliko različnih podatkovnih točk glede na izvedeni scenarij.
Podrobnosti ustvarjenega poročila bomo preučili v naslednji vadnici.
Prednosti uporabe Gatlinga
Gatling ponuja veliko zmogljivih funkcij, da bi lahko ustvaril dober testni paket za avtomatizacijo zmogljivosti, ki izkorišča širok Gatling DSL, pa tudi vedno večjo podporo skupnosti za pomoč in odgovore na vprašanja.
Tu je pomembno omeniti, da za razliko od drugih orodij, kot je JMeter, Gatling vključuje strmo učno krivuljo, vendar namesto tega daje veliko programskih zmogljivosti za ustvarjanje robustnega in popolnoma funkcionalnega sklopa simulacijskih skriptov za testiranje zmogljivosti in obremenitve.
Nekatere od teh prednosti so naslednje:
- Je lahek in omogoča uporabo ene niti za več zahtev, za razliko od večine drugih orodij za perf, kjer je nit enačena z uporabnikom.
- Uporaba ene niti za več zahtev omogoča Gatlingu, da poveča obseg in ustvari večjo obremenitev tudi na enem računalniku.
- Gatling omogoča delovanje v porazdeljenem načinu, ko je treba simulirati veliko obremenitev.
- Nudi podporo za številne druge protokole, razen HTTP,na primer, Spletne vtičnice, MQTT, JDBC itd. Vse je mogoče preizkusiti z uporabo Gatlinga.
- Gatling ponuja funkcijsko bogat DSL - Domain Specific Language, ki ima enostavno sintakso in nudi zmogljive zmogljivosti v kombinaciji za ustvarjanje simulacijskega skripta.
- Omogoča tudi veliko zapletenih zmožnosti simulacijskega nadzora, kot so zanke konstrukcije, simulacija časa razmišljanja, omejevanje zahtev nad želeno RPS itd.
- Ima že bogate možnosti poročanja in jih je mogoče prilagoditi tudi glede na zahteve.
Zaključek
V tej vadnici smo se dotaknili osnov uporabe Gatlinga kot izbranega orodja za testiranje obremenitve. Z izrazitim DSL-jem in odlično podporo za protokol HTTP Gatling hitro pridobiva na priljubljenosti in se uporablja kot izbrano orodje za mnoge.
Spoznali smo tudi zapisovalnik Gatling in tekač skriptov Gatling z vzorčnim simulacijskim skriptom, ki je pomagal razumeti osnovni koncept snemanja simulacijskega skripta, ki bi ga lahko v prihodnosti izvedli z izvršiteljem Gatlingovega skripta.
V naslednji vadnici bomo obravnavali pisanje skriptov Gatling kot projekti Scale - torej brez uporabe snemalnika in razumeli predloge poročil, ki se ustvarijo, ko Gatling dokonča izvedbo simulacije.
Priporočeno branje
- Testiranje obremenitve z vadnicami HP LoadRunner
- Korelacija - preskušanje obremenitve z LoadRunnerjem
- Vadnica za testiranje namočenja - Kaj je testiranje namočenja
- Preskušanje obremenitve z uporabo LoadUI - brezplačno in odprtokodno orodje za preskušanje obremenitve
- Pregled WebLOAD - Uvod v orodje za testiranje obremenitve WebLOAD
- Vadnica za destruktivno testiranje in nedestruktivno testiranje
- Vadnica za preizkušanje uporabnosti: popoln vodnik za začetek
- Preskušanje učinkovitosti v primerjavi s preskusom obremenitve v primerjavi s testiranjem napetosti (razlika)