gatling tutorial getting started with gatling load testing
Tento videonávod Gatling poskytuje komplexný prehľad o Gatlingovi vrátane funkcií, krokov inštalácie a príkladov použitia rekordéra simulácie Gatlinga:
Gatling je open-source testovací rámec založený na Scale. V dnešnej dobe si získava veľkú popularitu vďaka viac ako 3 miliónom stiahnutí za posledné 3 roky.
Je k dispozícii ako open-source aj ako podnikový variant s názvom Gatling Frontline s väčšou integráciou a podporou od tímu Gatling. Ale na všetkých praktických prípadoch použitia sa dá pracovať pomocou komunitnej edície Gatling, ktorá je bezplatná a otvorená.
Čo sa dozviete:
Výukový program Gatling
Pozrime sa na kroky potrebné na začatie práce s Gatlingom. V rámci tohto tutoriálu sa tiež budeme venovať niektorým dôležitým funkciám Gatlinga.
Tu je videonávod na úvod Gatlinga:
Inštalácia
Gatling je možné nainštalovať dvoma rôznymi spôsobmi. To možno vysvetliť nasledovne:
# 1) Ak používate Gatling ako samostatný nástroj, môžete jednoducho nainštalovať inštalátor / aplikáciu pomocou oficiálneho Gatlinga webovú stránku a postupujte podľa pokynov na inštaláciu.
Upozorňujeme, že nainštalovaný priečinok zip obsahuje shell aj dávkové súbory, vďaka čomu je Gatling vhodný na použitie v rôznych operačných systémoch, ako sú Windows, MacOS, Linux / Unix atď.
Inštalačný program nie je nič iné ako záznamník skriptov Gatling založený na prostredí Java, ktorý zaznamenáva akcie používateľov prostredníctvom prehľadávača v nástroji a ktorý je potom možné previesť na skript alebo scenár, ktorý je potrebné načítať a otestovať. Uvidíme to podrobne v nasledujúcich častiach.
#dva) Ďalším spôsobom, ako nainštalovať / používať Gatlinga, je jeho použitie ako balíka prostredníctvom Maven / Gradle alebo prostredníctvom nástrojov na vytváranie Scala.
Dôležitým bodom, ktorý si tu treba uvedomiť, je, že Gatlingove skripty sú založené na Scale, a preto pri vytváraní projektu založeného na Scale by sa mohla použiť knižnica Gatling, ktorú je možné importovať pomocou akýchkoľvek nástrojov na vytváranie, ako sú Maven / Gradle alebo SBT.
Vlastnosti Gatlinga
Sú to tieto:
# 1) Asynchrónna architektúra a ľahké vlákna
Gatling má pokročilú architektúru založenú na súbore nástrojov Akka a je plne asynchrónny. To mu dáva prevahu v porovnaní s ostatnými nástrojmi na testovanie výkonu, ako je JMeter, kde každé vlákno zodpovedá jednému používateľovi.
Jedno vlákno tu môže simulovať viacerých používateľov, pretože má architektúru zasielania správ prostredníctvom modelu Actor.
Stručne povedané, Gatlingov test dokáže spracovať množstvo súbežných používateľov na jeden stroj v porovnaní s inými nástrojmi, ako je Jmeter, a teda vedie k značnej úspore CPU a RAM.
Odporúčané čítanie => Herecký model a asynchrónna architektúra Gatlinga
# 2) Vďaka jazyku špecifickému pre doménu sú testy čitateľné
Gatlingové skripty sú napísané v Scale a majú priateľské DSL, vďaka čomu sú skripty dobre čitateľné a menej náchylné na chyby. Viac podrobností o Gatling DSL nájdete na webovej stránke tu .
# 3) Protokol agnostická podpora
Gatling podporuje širokú škálu protokolov vrátane HTTP, HTTPS a webových zásuviek. Má tiež rozšírenia pre testovanie zaťaženia SQL dotazov / skriptov.
# 4) Hlásenie a tvrdenia
Gatling poskytuje po vybalení podporu pre vytváranie podrobných správ HTML pre scenáre, ktoré sú vykonávané, a tiež má schopnosť aplikovať tvrdenia na jednotlivé požiadavky v scenároch - Napríklad, Časy odozvy, overenie obsahu JSON atď.
# 5) Priaznivý záznamník testov založený na grafickom používateľskom rozhraní
Gatling je dodávaný s ľahko použiteľným grafickým záznamníkom testov, ktorý dokáže generovať simulačný skript zaznamenaním aktivity používateľa alebo jeho akcií do webového prehliadača. Vygenerované skripty sú skripty na báze Scala, ktoré je možné spustiť v budúcnosti a ktoré je možné podľa požiadaviek upraviť.
Testovaná aplikácia a nahrávanie vzorových skriptov
Na vytvorenie simulácie vzorky použijeme Gatlingova oficiálne poskytovaná hostovaná aplikácia
Na začatie vytvárania záťaže a testovania výkonu budeme používať Gatlingov simulačný záznamník. Než pôjdeme ďalej, poďme sa rozprávať o scenári, kde chceme načítať test.
Scenár je prípad použitia, ktorý sa pokúšame načítať test. Čo to v podstate znamená, že chceme napodobniť akciu používateľa do scenára alebo súboru krokov, ktoré je potrebné podrobiť testu.
Napríklad, Predpokladajme, že používateľ navštívi akýkoľvek web elektronického obchodu, napríklad Amazon.com, vyhľadá produkt, pridá ho do košíka a nakoniec zaplatí s platobnými údajmi.
Celá táto akcia používateľa je jediný scenár, ktorý obsahuje jednotlivé kroky ako
- Navigácia na webovú stránku Amazon.com.
- Čaká sa na načítanie stránky.
- Vyhľadávanie produktu prostredníctvom panela vyhľadávania produktov.
- Pridanie produktu do košíka.
- Ísť do košíka a platiť pri produkte.
- Uskutočnenie platby.
Aby sme mohli otestovať tento úplný scenár, z pohľadu systému alebo servera, musíme pochopiť, že to nie je nič iné ako kolekcia alebo séria volaní API, ktoré sa uskutočňujú na serveri typu back-end, a to je to, čo chceme v teste výkonnosti.
V tomto príklade použijeme scenár uvedený nižšie v hostenej aplikácii Gatling:
# 1) Prejdite na Gatling hostená aplikácia .
#dva) Kliknite na „Pridať nový počítač“.
# 3) Z rozbaľovacej ponuky vyberte Názov počítača ako Apple a názov spoločnosti ako „Apple Inc“, ako je to znázornené na obrázku nižšie.
# 4) Po zadaní podrobností kliknite na „Vytvoriť tento počítač“.
Nastavte Gatlingov rekordér a zaznamenajte prvý skript
V tejto časti budeme diskutovať o tom, ako nastaviť záznamník testov Gatlinga tak, aby vytvoril simuláciu pre scenár, o ktorom sme hovorili v predchádzajúcej časti.
Budeme používať Gatlingov simulačný záznamník, ktorý je vo veľmi jednoduchej forme, HTTP proxy - musíte byť oboznámení s ostatnými nástrojmi na nahrávanie HTTP, ako je Fiddler alebo chrome Http proxy atď. Gatlingov rekordér je teda podobný ďalším funkciám prevodu záznam do testovacieho simulačného skriptu.
Poďme sa teda najskôr pozrieť, ako nastaviť Gatlingov rekordér:
# 1) Po nainštalovaní priečinka Gatling zip jednoducho rozbaľte priečinok na miesto, kam chcete nainštalovať Gatling.
sql rozhovor otázky s odpoveďami pdf
#dva) Po tomto kroku musíme nastaviť 2 premenné prostredia s názvom - GATLING_HOME (pre domovský adresár Gatling) a GATLING_CONF (pre umiestnenie konfiguračného priečinka Gatlinga).
V závislosti od typu OS (napr. Windows alebo Mac alebo Linux), nastavte tieto premenné prostredia na nižšie hodnoty:
GATLING_HOME = {gatling-install-adresár}
Príklad:
GATLING_HOME=/Users/username/gatling-charts-highcharts-bundle-3.3.0/
GATLINE_CONF = {gatling-install-adresár} / conf
Príklad:
GATLING_CONF=/Users/username/gatling-charts-highcharts-bundle-3.3.0/conf
Keď sú premenné nastavené na validáciu, môžete jednoducho stlačiť na termináli príkaz - vývoz | rukoväť „GATLING“ a výstup by mal zobrazovať 2 premenné prostredia, ktoré sme práve nastavili.
# 3) Keď sú tieto premenné prostredia nastavené, musíme spustiť náš záznamník skriptov Gatling. Pre operačný systém Windows je k dispozícii dávkový súbor dodávaný s inštaláciou Gatlinga a pre operačné systémy Linux / MacOS je k dispozícii shell súbor.
Ďalej je uvedená štruktúra súborov priečinka bin:
# 4) Takže v závislosti od typu operačného systému môžeme zvoliť typ súboru, ktorý sa má vykonať pre spustený záznamník. Upozorňujeme, že tu sú 2 súbory, ktoré budeme používať:
- Súbor Gatling.sh / Gatling.bat - spustiť simulačný skript.
- Súbor Recorder.sh / recorder.bat - spustiť / otvoriť Gatlingov simulačný záznamník.
# 5) Spustíme skript rekordéra a otvoríme rekordér Gatling. Na spustenie shell skriptu použite terminál Mac / Linux (alebo priamo spustite dávkový súbor Windows).
. /$GATLING_HOME/bin/recorder.sh
# 6) Ak sú premenné prostredia nastavené správne, potom by mal vyššie uvedený príkaz otvoriť záznamník skriptov Gatling.
# 7) Všimnite si port Http / https v rekordéri (predvolená voľba je 8000 alebo 8080) - na tomto porte je nakonfigurovaný poslucháč HTTP prevádzkového proxy Gatlinga. Toto číslo portu môžeme podľa našej potreby zmeniť (alebo môžeme pokračovať s predvolenými hodnotami).
najlepšie je vykonať testy pripojenia na počítači pripojenom k živej sieti.
# 8) Teraz nakonfigurujme chrome proxy na počúvanie tohto portu - t. J. V podstate chceme smerovať našu prenosovú rýchlosť HTTP z prehliadača cez tento poslucháč alebo záznamník proxy.
Riaďte sa týmto odkaz nastaviť proxy na chrome pre rôzne OS.
# 9) Po nakonfigurovaní portu vykonáme náš scenár na serveri Gatling hostená aplikácia.
# 10) Pred spustením vykonávania scenára budeme musieť najskôr nakonfigurovať názov balíka a názov triedy pre výsledný testovací skript a potom spustiť poslucháča proxy jednoduchým kliknutím na tlačidlo „Štart“ v záznamníku skriptov.
#eleven) Hneď po spustení proxy rekordéra sa zobrazí nové okno, ktoré v podstate zachytí všetky požiadavky, ktoré sa spustia pri spustení scenára v prehliadači.
# 12) Prejdite na Gatling hostená aplikácia v prehliadači.
Ak vidíte, že požiadavka je zaznamenaná v okne rekordéra, znamená to, že nastavenie proxy prehliadača je správne a Gatlingov rekordér je teraz schopný zaznamenávať požiadavky podľa vykonávaného scenára testu (ak nie, vráťte sa späť na krok # 7 opraviť konfiguráciu proxy pre prehliadač / systém).
# 13) Teraz, keď sme si istí, že nastavenie funguje dobre, kliknite na „Vymazať“ a odstráňte tak všetko z rekordéra a začať vykonávať scenár, ako je uvedené nižšie:
- Prejdite na Gatling hostená aplikácia
- Kliknite na „Pridať nový počítač“. Uistite sa, že ste sa dostali do nového počítačového formulára s adresou URL prehliadača ako http://computer-database.gatling.io/computers/new
- Teraz vyplňte hodnoty vo formulári pomocou - Názov počítača ako Apple a spoločnosť ako „Apple inc“ tiež z rozbaľovacej ponuky.
- Kliknite na „Vytvoriť tento počítač“ a budete presmerovaní na stránku domovská stránka
- Toto je celý scenár, ktorý chceme vykonať a vytvoriť automatizačný skript pomocou záznamníka skriptov Gatling. Po vykonaní vyššie uvedených krokov by rekordér mal zachytiť všetky uskutočnené hovory HTTP a mal by vyzerať takto.
- Upozorňujeme, že v zaznamenanom skripte je tiež niekoľko príkazov „PAUSE“. Nejde o nič iné ako „čas premýšľania“, ktorý rekordér zachytáva, aby napodobnil činnosť používateľa, t. J. Čas medzi požiadavkami. Tieto hodnoty je možné nakonfigurovať / zmeniť po vykonaní skriptu v závislosti od skutočnej neds.
# 14) Aby ste dokončili vytváranie skriptu, kliknite na „Stop & Save“ v okne rekordéra.
# pätnásť) Simulačný skript by sa mal vytvoriť v adresári alebo priečinku simulácie, ktorý sa zobrazuje na konfiguračnej obrazovke rekordéra Gatling.
Pochopenie simulačného skriptu
Po vytvorení skriptu spusteného scenára prejdite do priečinka simulácie a skript otvorte.
Upozorňujeme, že skript bude vytvorený ako rovnaká štruktúra balíka, ktorá bola zadaná pred spustením rekordéra - v našom prípade to bude com.learn.gatling a názov triedy bude „AddProduct“.
Poďme si otvoriť súbor AddProduct.scala a skúsiť prejsť rôznymi časťami skriptu.
To možno vysvetliť nasledovne:
# 1) Konfigurácia nastavenia :t.j. httpProtocol a hlavičky - V tejto časti sa vykonáva celková konfigurácia údajov pre skript, ako napríklad:
- Typ protokolu - Http alebo https,
- Ostatné veci ako baseUrl, ktoré sa majú použiť v následných požiadavkách.
- Informácie o hlavičke - bežné informácie o hlavičke, ako aj hlavičky, ktoré sa majú poslať s individuálnymi požiadavkami. Prečítajte si header_0 a headers_2 v útržku kódu nižšie:
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) Definícia scenára: Obsahuje skutočný scenár a poradie požiadaviek, ktoré je potrebné vykonať, aby sa znova vytvoril scenár, ktorý bol spustený v okne prehliadača.
Tu je tiež dôležité poznamenať - namiesto úplnej adresy URL sme tu práve spomenuli relatívne adresy URL pre žiadosti. Je to preto, že použijeme konfigurácia protokolu http sme diskutovali v bode 1, kde sú definované konfiguračné údaje scenára.
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) Vykonanie scenára: Táto časť je najdôležitejšou časťou, ktorá obsahuje kroky nastavenia scenára.
Konfigurácia injectu je tu počet používateľov / vlákien alebo inými slovami záťaž, s ktorou chceme tento scenár otestovať.
Predvolená hodnota pre počet používateľov je vždy 1 a dá sa zmeniť pred vykonaním scenára.
Upozorňujeme tiež, že používame aj definíciu protokolu httpProtocol, o ktorej sme hovorili v bode č. 1, ktorý obsahuje všetky základné konfigurácie scenára, ktorý sa má vykonať.
setUp (scn.inject (atOnceUsers (1))). protokoly (httpProtocol)
V ďalšom návode sa pozrieme na ďalšie podrobnosti týkajúce sa konfigurácie injektovania a načítania.
Vykonanie testu pomocou simulačného skriptu
Teraz uvidíme, ako vykonať scenár pomocou tohto simulačného skriptu, ktorý bol vytvorený pomocou rekordéra. Výsledný skript, ktorý sa vytvorí, je v skutočnosti trieda založená na Scale, ktorá obsahuje podrobnosti o scenári, ktorý bol vykonaný prostredníctvom prehliadača.
Tu je videonávod na vykonávanie Gatlingovho skriptu:
Inštalácia Gatlingu je dodávaná s shell skriptom (pre používateľov Windows je to dávkový skript), ktorý je možné použiť na vykonanie tejto simulácie.
Vytvorenú simuláciu vykonáte podľa pokynov uvedených nižšie:
# 1) Prejdite do priečinka bin v inštalácii Gatling alebo jednoducho prejdite do - $ GATLING_HOME / zásobník
#dva) Spustite súbor Gatling.sh pre OS Linux / Mac (alebo súbor Gatling.bat pre používateľov systému Windows).
# 3) V prípade, že sa v priečinku simulácie nachádza viac súborov skriptu, skript vyzve používateľa, aby vybral simuláciu, ktorú chce používateľ spustiť (Ak chcete simulovať túto akciu, vytvorte rovnaký scenár v rôznych balíkoch a keď je spustený Gatlingov skript, môžete uvidíte, že zobrazuje 2 rôzne skripty).
# 4) Simulácia je vybratá (alebo je predvolene nastavená na simuláciu prítomnú v priečinku, ak je k dispozícii iba jeden simulačný skript).
# 5) Skript teraz vyzve na pridanie voliteľného popisu behu. Môžete to jednoducho ignorovať a spustiť simuláciu stlačením klávesu Enter.
# 6) Počas vykonávania simulácie môžete vidieť, že sa na termináli tlačia správy o vykonaní, a po dokončení vykonávania scenára sa zobrazia parametre ako čas odozvy, celkové požiadavky, úspech / zlyhanie atď.
# 7) Gatling tiež generuje podrobnú správu založenú na HTML na konci dokončenia vykonania scenára, ktorá obsahuje veľa rôznych dátových bodov vzhľadom na vykonaný scenár.
V ďalšom návode sa pozrieme na podrobnosti vygenerovanej správy.
Výhody použitia Gatlingu
Gatling poskytuje mnoho funkcií bohatých na funkcie, aby mohol vytvoriť dobrý testovací balík automatizácie výkonu využívajúci široký Gatling DSL, ako aj rastúcu podporu komunity pre pomoc a získanie odpovedí na otázky.
Tu je dôležité poznamenať, že na rozdiel od iných nástrojov, ako je JMeter, Gatling zahŕňa strmú krivku učenia, ale namiesto toho poskytuje veľa programovacích schopností na vytvorenie robustnej a plne funkčnej sady skriptov simulácie výkonu a zaťaženia.
Niektoré z týchto výhod sú nasledujúce:
- Je ľahký a umožňuje použitie jedného vlákna pre viac ako jednu požiadavku, na rozdiel od väčšiny ostatných nástrojov na zdokonalenie, kde sa vlákno rovná používateľovi.
- Použitie jedného vlákna pre viac požiadaviek umožňuje Gatlingovi viac škálovať a generovať väčšie zaťaženie dokonca aj na jednom stroji.
- Gatling poskytuje možnosť spustenia v distribuovanom režime, keď je potrebné simulovať veľké zaťaženie.
- Poskytuje podporu pre množstvo ďalších protokolov okrem protokolu HTTP,napríklad, Websockets, MQTT, JDBC atď., Všetky môžu byť testované pomocou Gatlinga.
- Gatling poskytuje na funkcie bohatý jazyk DSL - Domain Specific Language, ktorý má ľahkú syntax a poskytuje výkonné možnosti v kombinácii s vytvorením simulačného skriptu.
- Poskytuje tiež veľa komplexných funkcií riadenia simulácie, ako sú cyklické konštrukcie, simulácia času premýšľania, obmedzenie požiadaviek nad požadovaný RPS atď.
- Má bohaté možnosti nahlasovania a je možné ich podľa potreby tiež prispôsobiť.
Záver
V tomto tutoriáli sme sa dotkli základov používania Gatlinga ako nástroja na testovanie záťaže podľa vlastného výberu. Vďaka expresívnemu DSL a vynikajúcej podpore protokolu HTTP si Gatling rýchlo získava popularitu, aby ho bolo možné použiť ako nástroj pre mnohých.
Dozvedeli sme sa tiež o rekordéri Gatling a bežcovi skriptu Gatling so vzorovým simulačným skriptom, ktorý pomohol pochopiť základný koncept nahrávania simulačného skriptu, ktorý by sa potom dal v budúcnosti vykonať pomocou exekútora Gatling Script.
V ďalšom návode sa budeme venovať písaniu Gatlingových skriptov ako projektov Scala - teda bez použitia rekordéra a pochopeniu šablón správ, ktoré sa vygenerujú, keď Gatling dokončí vykonávanie simulácie.
Odporúčané čítanie
- Testovanie záťaže s výukovými programami HP LoadRunner
- Korelácia - testovanie zaťaženia pomocou nástroja LoadRunner
- Výukový program pre testovanie namočenia - Čo je testovanie namočenia
- Testovanie záťaže pomocou LoadUI - bezplatný a otvorený nástroj na testovanie záťaže
- Recenzia WebLOAD - Začíname s nástrojom na testovanie zaťaženia WebLOAD
- Výukový program pre deštruktívne testovanie a nedeštruktívne testovanie
- Výukový program o testovaní použiteľnosti: Kompletná príručka Začíname
- Výkonové testovanie vs záťažové testovanie vs záťažové testovanie (rozdiel)