gatling tutorial getting started with gatling load testing
Tento video tutoriál Gatling poskytuje komplexní přehled Gatlinga včetně funkcí, instalačních kroků a příkladů použití Gatling Simulation Recorder:
Gatling je open-source testovací framework založený na Scale. V dnešní době si získává velkou popularitu díky více než 3 milionům stažení za poslední 3 roky.
Je k dispozici jako open-source i jako podniková varianta s názvem Gatling Frontline s více integracemi a podporou týmu Gatling. Ale na všech praktických případech použití lze pracovat pomocí komunitní edice Gatling, která je bezplatná a open-source.
Co se naučíte:
Výukový program Gatling
Podívejme se na kroky potřebné k zahájení práce s Gatlingem. V rámci tohoto kurzu se také budeme zabývat některými důležitými funkcemi Gatlinga.
Zde je videonávod k Gatlingovu úvodu:
Instalace
Gatling lze nainstalovat dvěma různými způsoby. To lze vysvětlit takto:
# 1) Pomocí Gatlingu jako samostatného nástroje můžete jednoduše nainstalovat instalační program / aplikaci pomocí oficiálního Gatlinga webová stránka a postupujte podle pokynů k instalaci.
Vezměte prosím na vědomí, že nainstalovaná složka zip obsahuje jak shell, tak dávkové soubory, díky čemuž je Gatling vhodný pro použití v různých operačních systémech, jako jsou - Windows, MacOS, Linux / Unix atd.
Instalační program není nic jiného než záznamník skriptů Gatling založený na prostředí Java, který zaznamenává akce uživatelů prostřednictvím prohlížeče v nástroji a který lze poté převést na skript nebo scénář, který je třeba načíst a otestovat. Uvidíme to podrobně v následujících částech.
#dva) Dalším způsobem, jak nainstalovat / používat Gatlinga, je jeho použití jako balíčku prostřednictvím Maven / Gradle nebo pomocí nástrojů pro vytváření Scala.
Důležitým bodem, který je zde třeba poznamenat, je, že Gatlingovy skripty jsou založeny na Scale, a proto při vytváření projektu založeného na Scale lze použít knihovnu Gatling, kterou lze importovat pomocí libovolných nástrojů pro vytváření, jako je Maven / Gradle nebo SBT.
Vlastnosti Gatlinga
Jedná se o následující:
# 1) Asynchronní architektura a lehká vlákna
Gatling má pokročilou architekturu založenou na sadě nástrojů Akka a je plně asynchronní. To mu dává převahu ve srovnání s jinými nástroji pro testování výkonu, jako je JMeter, kde každé vlákno odpovídá jednomu uživateli.
Jedno vlákno zde může simulovat více uživatelů, protože má architekturu zasílání zpráv prostřednictvím modelu Actor.
Stručně řečeno, Gatlingův test dokáže zpracovat řadu souběžných uživatelů na stroj ve srovnání s jinými nástroji, jako je Jmeter, a má tedy za následek značnou úsporu CPU a RAM.
Doporučené čtení => Herecký model a asynchronní architektura Gatlinga
# 2) Jazyk specifický pro doménu umožňuje čitelnost testů
Gatling skripty jsou psány ve Scale a mají přátelské DSL, díky čemuž jsou skripty vysoce čitelné a méně náchylné k chybám. Další podrobnosti o Gatling DSL naleznete na stránce tady .
# 3) Protokol agnostická podpora
Gatling podporuje širokou škálu protokolů, včetně HTTP, HTTPS a webových soketů. Má také rozšíření pro načítání testovacích dotazů / skriptů SQL.
# 4) Hlášení a tvrzení
Gatling poskytuje podporu pro vytváření podrobných sestav HTML pro scénáře, které jsou prováděny, a má také možnosti aplikovat tvrzení na jednotlivé požadavky ve scénářích - Například, Doby odezvy, ověření obsahu JSON atd.
# 5) Přátelský záznamník testů založený na grafickém uživatelském rozhraní
Gatling je dodáván se snadno použitelným grafickým zapisovačem testů, který dokáže generovat simulační skript zaznamenáním aktivity uživatele nebo jeho akcí ve webovém prohlížeči. Vygenerované skripty jsou skripty založené na Scale, které lze spustit v budoucnu a lze je upravit podle požadavků.
Testovaná aplikace a nahrávání ukázkových skriptů
Pro vytvoření ukázkové simulace použijeme Gatlingova oficiálně poskytovaná hostovaná aplikace
Abychom mohli začít s vytvářením zátěže a prováděním testování výkonu, použijeme Gatlingův simulační záznamník. Než půjdeme dále, pojďme diskutovat o scénáři, kam chceme zavést test.
Scénář je případ použití, který se pokoušíme načíst test. Co to v podstatě znamená, že chceme napodobit akci uživatele do scénáře nebo sady kroků, které je třeba podrobit testu.
Například, Předpokládejme, že uživatel vstoupí na jakýkoli web eCommerce, jako je Amazon.com, vyhledá produkt, přidá jej do košíku a nakonec zaplatí pomocí platebních údajů.
Celá tato akce uživatele je jediný scénář, který obsahuje jednotlivé kroky jako
- Přechod na web Amazon.com.
- Čekání na načtení stránky.
- Hledání produktu pomocí lišty pro vyhledávání produktů.
- Přidání produktu do košíku.
- Přejít do košíku a pokladna u produktu.
- Provedení platby.
Abychom mohli načíst test tohoto úplného scénáře, z pohledu systému nebo serveru, musíme pochopit, že to není nic jiného než kolekce nebo série volání API, které se provádějí na back-end serveru, a to je to, co chceme v testu výkonu.
V tomto příkladu použijeme níže uvedený scénář v hostitelské aplikaci Gatling:
# 1) Navigovat do Gatling hostovaná aplikace .
#dva) Klikněte na „Přidat nový počítač“.
# 3) Z rozevírací nabídky vyberte Název počítače jako Apple a název společnosti jako „Apple Inc“, jak je znázorněno na následujícím obrázku.
# 4) Po zadání podrobností klikněte na „Vytvořit tento počítač“.
Nastavit Gatlingův rekordér a zaznamenat první skript
V této části budeme diskutovat o tom, jak nastavit záznamník testu Gatling pro vytvoření simulace pro scénář, o kterém jsme hovořili v předchozí části.
Budeme používat Gatlingův simulační záznamník, který je ve velmi jednoduché formě, HTTP proxy - musíte být obeznámeni s jinými nástroji pro nahrávání HTTP, jako je Fiddler nebo chrome Http proxy, atd. Gatlingův záznamník je tedy podobný dalším funkcím převodu záznam do testovacího simulačního skriptu.
Pojďme se tedy nejprve podívat, jak nastavit Gatlingův rekordér:
# 1) Jakmile je složka Gatling zip nainstalována, jednoduše ji rozbalte do umístění, kam chcete Gatling nainstalovat.
c ++ počkejte několik sekund
#dva) Po tomto kroku musíme nastavit 2 proměnné prostředí s názvem - GATLING_HOME (pro domovský adresář Gatling) a GATLING_CONF (pro umístění konfigurační složky Gatlinga).
V závislosti na typu OS (tj. Windows nebo Mac nebo Linux), nastavte tyto proměnné prostředí s níže uvedenými hodnotami:
GATLING_HOME = {gatling-install-adresář}
Příklad:
GATLING_HOME=/Users/username/gatling-charts-highcharts-bundle-3.3.0/
GATLINE_CONF = {gatling-install-directory} / conf
Příklad:
GATLING_CONF=/Users/username/gatling-charts-highcharts-bundle-3.3.0/conf
Jakmile jsou proměnné nastaveny na ověření, můžete jednoduše stisknout na terminálu příkaz - export | rukojeť „GATLING“ a výstup by měl ukazovat 2 proměnné prostředí, které jsme právě nastavili.
# 3) Jakmile jsou tyto proměnné prostředí nastaveny, musíme spustit náš záznamník skriptů Gatling. Pro OS se systémem Windows je k dispozici dávkový soubor dodávaný s instalací Gatlingu a pro OS se systémem Linux / MacOS je k dispozici soubor shellu.
Níže je struktura souborů složky bin:
# 4) V závislosti na typu operačního systému si tedy můžeme vybrat typ souboru, který se má spustit pro spuštěný rekordér. Vezměte prosím na vědomí, že zde budeme používat 2 soubory, které budeme používat:
- Soubor Gatling.sh / Gatling.bat - spustit simulační skript.
- Soubor Recorder.sh / recorder.bat - spustit / otevřít Gatlingův simulační záznamník.
# 5) Umožňuje spustit skript rekordéru a otevřít rekordér Gatling. Ke spuštění shell skriptu použijte terminál Mac / Linux (nebo přímo spusťte dávkový soubor Windows).
. /$GATLING_HOME/bin/recorder.sh
# 6) Pokud jsou proměnné prostředí správně nastaveny, měl by výše uvedený příkaz otevřít záznamník skriptů Gatling.
# 7) Všimněte si portu Http / https v rekordéru (výchozí výběr je 8000 nebo 8080) - toto je port, na kterém je nakonfigurován posluchač HTTP provozu proxy Gatlinga. Toto číslo portu můžeme podle potřeby změnit (nebo můžeme pokračovat s výchozími hodnotami).
jak nainstalovat soubor .jar
# 8) Nyní nakonfigurujme chromovaný proxy server, aby naslouchal tomuto portu - tj. V podstatě chceme směrovat náš provoz HTTP z prohlížeče přes tento posluchač nebo rekordér proxy.
Postupujte podle toho odkaz nastavit proxy na chromu pro různé OS.
# 9) Jakmile je port nakonfigurován, provedeme náš scénář na Gatling hostovaná aplikace.
# 10) Před spuštěním spuštění scénáře budeme nejprve muset nakonfigurovat název balíčku a název třídy pro výsledný testovací skript a poté spustit posluchače proxy jednoduše kliknutím na tlačítko „Start“ v záznamníku skriptů.
#jedenáct) Jakmile se spustí záznamník proxy, zobrazí se nové okno a v zásadě zachytí všechny požadavky, které se spustí, když se scénář spustí v prohlížeči.
# 12) Navigovat do Gatling hostovaná aplikace v prohlížeči.
Pokud vidíte, že požadavek je zaznamenán v okně rekordéru, znamená to, že nastavení proxy pro prohlížeč je správné a Gatlingův rekordér je nyní schopen zaznamenávat požadavky podle prováděného scénáře testu (pokud ne, přejděte zpět ke kroku # 7 opravit konfiguraci proxy pro prohlížeč / systém).
# 13) Nyní, když jsme si jisti, že nastavení funguje dobře, kliknutím na „Vymazat“ odeberte vše ze zapisovače a spusťte scénář, jak je uvedeno níže:
- Navigovat do Gatling hostovaná aplikace
- Klikněte na „Přidat nový počítač“. Ujistěte se, že jste přistáli na novém počítačovém formuláři s adresou URL prohlížeče jako http://computer-database.gatling.io/computers/new
- Nyní vyplňte hodnoty ve formuláři pomocí - Název počítače jako Apple a společnost jako „Apple inc“ také z rozbalovací nabídky.
- Klikněte na „Vytvořit tento počítač“ a budete přesměrováni na domovská stránka
- Toto je celý scénář, který chceme provést a vytvořit automatizační skript pomocí záznamníku skriptů Gatling. Po provedení výše uvedených kroků by měl rekordér zachytit všechna uskutečněná volání HTTP a měl by vypadat níže.
- Pamatujte, že v zaznamenaném skriptu je také několik příkazů „PAUSE“. Nejedná se o nic jiného než o „think-time“, který rekordér zachytí, aby napodobil akci uživatele - tj. Čas mezi požadavky. Tyto hodnoty lze konfigurovat / změnit, jakmile je skript spuštěn, v závislosti na skutečných neds.
# 14) Chcete-li dokončit vytváření skriptu, klikněte v okně vypalovače na „Stop & Save“.
#patnáct) Simulační skript by měl být vytvořen v adresáři nebo simulační složce, která je zobrazena na konfigurační obrazovce Gatlingova rekordéru.
Porozumění simulačnímu skriptu
Po vytvoření skriptu provedeného scénáře přejděte do složky simulace a skript otevřete.
Upozorňujeme, že skript bude vytvořen jako stejný balíček strukturovaný, který byl zadán před spuštěním zapisovače - v našem případě to bude com.learn.gatling a název třídy bude „AddProduct“.
Pojďme otevřít soubor AddProduct.scala a pokusit se projít různými částmi skriptu.
To lze vysvětlit takto:
# 1) Nastavení konfigurace :tj http Protokol a záhlaví - V této části se provádí celková konfigurace dat pro skript, například:
- Typ protokolu - Http nebo https,
- Další věci, jako je baseUrl, které se mají použít v následných požadavcích.
- Informace o záhlaví - běžné informace o záhlaví i záhlaví, která mají být odeslána s jednotlivými požadavky. Viz header_0 a headers_2 ve fragmentu kódu níže:
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) Definice scénáře: Obsahuje skutečný scénář a pořadí požadavků, které je třeba provést, aby bylo možné znovu vytvořit scénář, který byl spuštěn v okně prohlížeče.
Důležitým bodem je také to, že jsme zde zmínili relativní adresy URL pro žádosti namísto celé adresy URL. Je to proto, že použijeme Konfigurace protokolu http diskutovali jsme v bodě č. 1, kde jsou definována konfigurační data scénáře.
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) Provedení scénáře: Tato část je nejdůležitější částí, která obsahuje kroky instalace scénáře.
Konfigurace injectu je zde počet uživatelů / vláken nebo jinými slovy zatížení, se kterým chceme tento scénář otestovat.
Výchozí hodnota pro počet uživatelů je vždy 1 a lze ji změnit před provedením scénáře.
Vezměte prosím také na vědomí, že používáme také definici httpProtocol, kterou jsme probrali v bodě # 1, která obsahuje všechny základní konfigurace pro scénář, který má být proveden.
setUp (scn.inject (atOnceUsers (1))). protokoly (httpProtocol)
V dalším kurzu se podíváme na další podrobnosti týkající se konfigurace inject and load.
Provádění testu pomocí simulačního skriptu
Nyní uvidíme, jak provést scénář pomocí tohoto simulačního skriptu, který byl vytvořen pomocí rekordéru. Výsledný skript, který se vytvoří, je ve skutečnosti třída založená na Scale, která obsahuje podrobnosti o scénáři, který byl spuštěn prostřednictvím prohlížeče.
Zde je videonávod k provedení skriptu Gatling:
Instalace Gatlingu je dodávána s shell skriptem (pro uživatele Windows je to dávkový skript), který lze použít k provedení této simulace.
Vytvořenou simulaci provedete podle následujících pokynů:
# 1) Přejděte do složky bin instalace Gatling nebo jednoduše přejděte do - $ GATLING_HOME / bin
#dva) Spusťte soubor Gatling.sh pro systémy Linux / Mac (nebo soubor Gatling.bat pro uživatele systému Windows).
# 3) V případě více souborů skriptu ve složce simulace skript vyzve uživatele, aby vybral simulaci, kterou chce uživatel spustit (Chcete-li to simulovat, vytvořte stejný scénář v různých balíčcích a když je spuštěn Gatlingův skript, můžete uvidíte, že zobrazuje 2 různé skripty).
# 4) Je vybrána simulace (nebo je nastavena jako výchozí simulace ve složce, pokud je k dispozici pouze jeden simulační skript).
# 5) Skript nyní vyzve k přidání volitelného popisu běhu. Toto můžete jednoduše ignorovat a stisknutím klávesy Enter zahájíte provádění simulace.
# 6) Během provádění simulace můžete vidět, že se na terminálu tisknou zprávy o spuštění a po dokončení provádění scénáře se zobrazí parametry, jako je doba odezvy, celkový počet požadavků, úspěch / selhání atd.
# 7) Gatling také generuje podrobnou zprávu založenou na HTML na konci dokončení provádění scénáře, která obsahuje mnoho různých datových bodů s ohledem na provedený scénář.
V dalším kurzu se podíváme na podrobnosti vygenerované sestavy.
Výhody používání Gatlingu
Gatling poskytuje mnoho funkcí bohatých na funkce, aby bylo možné vytvořit kvalitní testovací sadu automatizace výkonu využívající širokou Gatling DSL a rostoucí komunitní podporu pro pomoc a získání odpovědí na dotazy.
Zde je důležité poznamenat, že na rozdíl od jiných nástrojů, jako je JMeter, Gatling zahrnuje strmou křivku učení, ale místo toho poskytuje spoustu programovacích schopností k vytvoření robustní a plně funkční sady simulačních skriptů pro testování výkonu a zátěže.
Některé z těchto výhod jsou následující:
- Je lehký a umožňuje použít jedno vlákno pro více než jeden požadavek, na rozdíl od většiny ostatních nástrojů Perf, kde se vlákno rovná uživateli.
- Použití jednoho vlákna pro více požadavků umožňuje Gatlingovi více škálovat a generovat větší zátěž dokonce i na jednom počítači.
- Gatling poskytuje schopnost běžet v distribuovaném režimu, když je třeba simulovat obrovské zatížení.
- Poskytuje podporu mnoha jiným protokolům než HTTP,například, Websockets, MQTT, JDBC atd., Vše lze testovat pomocí Gatlinga.
- Gatling poskytuje funkčně bohatý DSL - Domain Specific Language, který má snadnou syntaxi a poskytuje výkonné funkce v kombinaci s vytvořením simulačního skriptu.
- Poskytuje také spoustu komplexních funkcí řízení simulace, jako jsou smyčkové konstrukce, simulace doby přemýšlení, omezení požadavků nad požadovaný RPS atd.
- Má bohaté možnosti hlášení ihned po vybalení a lze je také přizpůsobit v závislosti na požadavcích.
Závěr
V tomto kurzu jsme se dotkli základů používání Gatlinga jako nástroje pro testování zátěže. Díky expresivnímu DSL a vynikající podpoře protokolu HTTP si Gatling rychle získává popularitu a je používán jako nástroj volby pro mnohé.
Dozvěděli jsme se také o rekordéru Gatling a běhu skriptu Gatling se ukázkovým simulačním skriptem, který pomohl pochopit základní koncept nahrávání simulačního skriptu, který by mohl být v budoucnu spuštěn pomocí exekutora Gatling Script.
V dalším kurzu se budeme zabývat psaním Gatlingových skriptů jako projektů Scala - tj. Bez použití rekordéru a pochopení šablon sestav, které se generují, když Gatling dokončí provádění simulace.
Doporučené čtení
- Testování zátěže s výukovými programy HP LoadRunner
- Korelace - testování zátěže pomocí nástroje LoadRunner
- Výukový program pro testování namáčení - Co je testování namočení
- Testování zátěže pomocí LoadUI - bezplatný a otevřený nástroj pro testování zátěže
- Recenze WebLOAD - Začínáme s nástrojem pro testování zatížení WebLOAD
- Výukový program pro destruktivní testování a nedestruktivní testování
- Výukový program pro testování použitelnosti: Kompletní příručka Začínáme
- Testování výkonu vs. zátěžové testování vs. zátěžové testování (rozdíl)