gatling tutorial getting started with gatling load testing
Ten samouczek wideo Gatling zawiera kompleksowy przegląd Gatling, w tym funkcje, kroki instalacji i przykłady użycia Gatling Simulation Recorder:
Gatling to platforma testowa typu open source oparta na Scali. Obecnie zyskuje dużą popularność dzięki ponad 3 milionom pobrań w ciągu ostatnich 3 lat.
Jest dostępny jako wersja open source, a także wersja korporacyjna o nazwie Gatling Frontline dzięki większej liczbie integracji i wsparciu zespołu Gatling. Ale wszystkie praktyczne przypadki użycia można opracować za pomocą wydania społeczności Gatling, które jest bezpłatne i otwarte.
Czego się nauczysz:
Samouczek wideo Gatling
Zobaczmy, jakie kroki należy wykonać, aby rozpocząć pracę z Gatling. W ramach tego samouczka omówimy również niektóre z ważnych funkcji Gatling.
Oto samouczek wideo na temat Gatling Wprowadzenie:
Instalacja
Gatling można zainstalować na 2 różne sposoby. Można to wyjaśnić w następujący sposób:
# 1) Używając Gatling jako samodzielnego narzędzia, możesz po prostu zainstalować instalator / aplikację, używając oficjalnego Gatling stronie internetowej i postępuj zgodnie z instrukcjami instalacji.
Należy pamiętać, że zainstalowany folder zip zawiera zarówno pliki powłoki, jak i pliki wsadowe, co sprawia, że Gatling nadaje się do użytku w różnych systemach operacyjnych, takich jak - Windows, MacOS, Linux / Unix itp.
Instalator to nic innego jak oparty na Javie rejestrator skryptów Gatling, który rejestruje działania użytkownika za pośrednictwem przeglądarki w narzędziu i który można następnie przekształcić w skrypt lub scenariusz, który należy załadować i przetestować. Zobaczymy to szczegółowo w kolejnych sekcjach.
#dwa) Innym sposobem zainstalowania / używania Gatling jest użycie go jako pakietu za pośrednictwem Maven / Gradle lub za pomocą narzędzi do kompilacji Scala.
Ważnym punktem, na który należy zwrócić uwagę, jest to, że wszystkie skrypty Gatling są oparte na Scali, dlatego tworzenie projektu opartego na Scali może korzystać z biblioteki Gatling, którą można zaimportować za pomocą dowolnych narzędzi do budowania, takich jak Maven / Gradle lub SBT.
Cechy Gatlinga
Są to następujące:
# 1) Architektura asynchroniczna i lekkie wątki
Gatling posiada zaawansowaną architekturę opartą na zestawie narzędzi Akka i jest w pełni asynchroniczny. Daje to mu przewagę w porównaniu z innymi narzędziami do testowania wydajności, takimi jak JMeter, w których każdy wątek odpowiada jednemu użytkownikowi.
Tutaj pojedynczy wątek może symulować wielu użytkowników, ponieważ ma architekturę przesyłania wiadomości za pośrednictwem modelu Actor.
Krótko mówiąc, test Gatlinga może obsłużyć wielu jednoczesnych użytkowników na maszynę w porównaniu z innymi narzędziami, takimi jak Jmeter, a tym samym skutkuje znaczną oszczędnością procesora i pamięci RAM.
Zalecana lektura => Model aktora i asynchroniczna architektura Gatlinga
2. Język specyficzny dla domeny sprawia, że testy są czytelne
Skrypty Gatling są napisane w Scali i mają przyjazny interfejs DSL, co sprawia, że skrypty są bardzo czytelne i mniej podatne na błędy. Aby uzyskać więcej informacji na temat Gatling DSL, zobacz tutaj .
# 3) Obsługa protokołów Agnostic
Gatling obsługuje szeroką gamę protokołów, w tym HTTP, HTTPS i gniazda sieciowe. Posiada również rozszerzenia do testowania obciążeń zapytań / skryptów SQL.
# 4) Raportowanie i asercje
Gatling zapewnia wsparcie dla tworzenia szczegółowych raportów HTML dla realizowanych scenariuszy, a także ma możliwość stosowania asercji na poszczególnych żądaniach w scenariuszach - Na przykład, Czasy odpowiedzi, walidacja treści JSON itp.
# 5) Przyjazny rejestrator testów oparty na GUI
Gatling jest wyposażony w łatwy w użyciu graficzny rejestrator testów, który może generować skrypt symulacyjny, rejestrując aktywność użytkownika lub działania użytkownika w przeglądarce internetowej. Wygenerowane skrypty to skrypty oparte na Scali, które mogą być wykonywane w przyszłości i modyfikowane zgodnie z wymaganiami.
Aplikacja w trakcie testowania i przykładowe nagrywanie skryptów
Do stworzenia przykładowej symulacji użyjemy Oficjalna hostowana aplikacja Gatling
Będziemy używać rejestratora symulacji Gatling, aby rozpocząć tworzenie obciążenia i przeprowadzanie testów wydajności. Zanim przejdziemy dalej, omówmy scenariusz, w którym chcemy załadować test.
Scenariusz to przypadek użycia, który próbujemy załadować test. Co to zasadniczo oznacza, że chcemy naśladować działanie użytkownika w scenariuszu lub zestawie kroków, które należy przetestować.
Na przykład, załóżmy, że użytkownik uzyskuje dostęp do dowolnej witryny eCommerce, takiej jak Amazon.com, wyszukuje produkt i dodaje go do koszyka, a na koniec dokonuje płatności z informacjami o płatności.
Cała ta akcja użytkownika to pojedynczy scenariusz, który zawiera poszczególne kroki, takie jak
- Przechodzenie do witryny Amazon.com.
- Czekam na załadowanie strony.
- Wyszukiwanie produktu za pomocą paska wyszukiwania produktów.
- Dodanie produktu do koszyka.
- Przechodzenie do koszyka i kasy z produktem.
- Dokonywanie płatności.
Aby wczytać ten kompletny scenariusz z punktu widzenia systemu lub serwera, musimy zrozumieć, że jest to nic innego jak zbiór lub seria wywołań interfejsu API, które są wysyłane do serwera zaplecza i właśnie tego chcemy w teście wydajności.
W tym przykładzie użyjemy poniższego scenariusza w aplikacji hostowanej Gatling:
# 1) Nawigować do Aplikacja hostowana przez Gatling .
#dwa) Kliknij „Dodaj nowy komputer”.
# 3) Wybierz nazwę komputera jako Apple i nazwę firmy jako „Apple Inc” z listy rozwijanej, jak pokazano na poniższym obrazku.
# 4) Po wprowadzeniu szczegółów kliknij „Utwórz ten komputer”.
Skonfiguruj rejestrator Gatlinga i nagraj pierwszy skrypt
W tej sekcji omówimy, jak skonfigurować rejestrator testowy Gatlinga, aby utworzyć symulację dla scenariusza, który omówiliśmy w poprzedniej sekcji.
Będziemy używać rejestratora symulacyjnego Gatling, który jest w bardzo prostej formie, proxy HTTP - musisz znać inne narzędzia do nagrywania HTTP, takie jak Fiddler lub chrome Http proxy, itp. Tak więc rejestrator Gatling jest podobny do dodatkowych funkcji konwersji nagrywanie do skryptu symulacji testu.
Zobaczmy więc najpierw, jak skonfigurować rejestrator Gatling:
# 1) Po zainstalowaniu folderu zip Gatling po prostu rozpakuj folder do lokalizacji, w której chcesz zainstalować Gatling.
fałszywy e-mail i hasło, które działa
#dwa) Po tym kroku musimy ustawić 2 zmienne środowiskowe o nazwach - GATLING_HOME (dla katalogu domowego Gatling) i GATLING_CONF (dla lokalizacji folderu konfiguracyjnego Gatling).
W zależności od typu systemu operacyjnego (np. Windows, Mac lub Linux), ustaw te zmienne środowiskowe na poniższe wartości:
GATLING_HOME = {gatling-install-katalog}
Przykład:
GATLING_HOME=/Users/username/gatling-charts-highcharts-bundle-3.3.0/
GATLINE_CONF = {gatling-install-katalog} / conf
Przykład:
GATLING_CONF=/Users/username/gatling-charts-highcharts-bundle-3.3.0/conf
Gdy zmienne zostaną ustawione na walidację, możesz po prostu nacisnąć na terminalu polecenie - eksport | uchwyt „GATLING” a wynik powinien pokazać dwie zmienne środowiskowe, które właśnie ustawiliśmy.
# 3) Po ustawieniu tych zmiennych środowiskowych musimy uruchomić nasz rejestrator skryptów Gatling. W przypadku systemu operacyjnego opartego na systemie Windows dostępny jest plik wsadowy dostarczany z instalacją Gatling, aw przypadku systemu operacyjnego opartego na systemie Linux / MacOS dostępny jest plik powłoki.
Poniżej znajduje się struktura plików folderu bin:
# 4) Tak więc, w zależności od typu systemu operacyjnego, możemy wybrać typ pliku do wykonania dla uruchomionego rejestratora. Pamiętaj, że są tutaj 2 pliki, których będziemy używać:
- Plik Gatling.sh / Gatling.bat - aby uruchomić skrypt symulacji.
- Plik Recorder.sh / recorder.bat - uruchomić / otworzyć rejestrator symulacji Gatlinga.
# 5) Uruchommy skrypt rejestratora, aby otworzyć rejestrator Gatling. Użyj terminala Mac / Linux, aby uruchomić skrypt powłoki (lub bezpośrednio uruchom plik wsadowy systemu Windows).
. /$GATLING_HOME/bin/recorder.sh
# 6) Jeśli zmienne środowiskowe są ustawione poprawnie, powyższe polecenie powinno otworzyć rejestrator skryptów Gatling.
# 7) Zwróć uwagę na port Http / https w rejestratorze (domyślny wybór to 8000 lub 8080) - jest to port, na którym jest skonfigurowany odbiornik proxy ruchu HTTP firmy Gatling. Możemy zmienić ten numer portu według naszej wygody (lub możemy kontynuować z wartościami domyślnymi).
pytania do wywiadu dotyczące mydła i odpoczynku
# 8) Skonfigurujmy teraz chrome proxy, aby nasłuchiwał tego portu - tj. Zasadniczo chcemy kierować nasz ruch HTTP z przeglądarki przez ten odbiornik lub rejestrator proxy.
Obserwuj to połączyć aby skonfigurować serwer proxy w Chrome dla różnych systemów operacyjnych.
# 9) Po skonfigurowaniu portu wykonamy nasz scenariusz na Aplikacja hostowana przez Gatling.
# 10) Zanim rozpocznie się wykonywanie scenariusza, musimy najpierw skonfigurować nazwę pakietu i nazwę klasy dla powstałego skryptu testowego, a następnie uruchomić odbiornik proxy, klikając przycisk „Start” w rejestratorze skryptów.
#jedenaście) Zaraz po uruchomieniu rejestratora proxy pojawi się nowe okno, które zasadniczo przechwytuje wszystkie żądania, które są uruchamiane, gdy scenariusz zostanie wykonany w przeglądarce.
# 12) Nawigować do Aplikacja hostowana przez Gatling w przeglądarce.
Jeśli widzisz, że żądanie jest rejestrowane w oknie rejestratora, oznacza to, że ustawienia proxy dla przeglądarki są poprawne, a rejestrator Gatling może teraz rejestrować żądania zgodnie ze scenariuszem testowym, który jest wykonywany (jeśli nie, wróć do kroku # 7, aby naprawić konfigurację proxy dla przeglądarki / systemu).
# 13) Teraz, gdy upewnimy się, że konfiguracja działa prawidłowo, kliknij „Wyczyść”, aby usunąć wszystko z rejestratora i rozpocznij wykonywanie scenariusza, jak wspomniano poniżej:
- Nawigować do Aplikacja hostowana przez Gatling
- Kliknij przycisk „Dodaj nowy komputer”. Upewnij się, że wylądowałeś na nowym formularzu komputerowym z adresem URL przeglądarki jako http://computer-database.gatling.io/computers/new
- Teraz wypełnij wartości w formularzu: - Nazwa komputera jako Apple, a firma jako „Apple inc”, a także z listy rozwijanej.
- Kliknij „Utwórz ten komputer”, a zostaniesz przekierowany do strona główna
- To jest cały scenariusz, który chcemy wykonać i stworzyć skrypt automatyzacji za pomocą rejestratora skryptów Gatling. Po wykonaniu powyższych czynności rejestrator powinien przechwytywać wszystkie wykonywane połączenia HTTP i powinien wyglądać jak poniżej.
- Zwróć uwagę, że w nagranym skrypcie znajduje się również kilka poleceń „PAUSE”. To nic innego jak „czas do namysłu”, który rejestrator rejestruje, aby naśladować działanie użytkownika - tj. Czas między żądaniami. Te wartości można skonfigurować / zmienić po wykonaniu skryptu, w zależności od rzeczywistych potrzeb.
# 14) Aby zakończyć tworzenie skryptu, kliknij „Stop & Save” w oknie rejestratora.
#piętnaście) Skrypt symulacji powinien zostać utworzony w katalogu lub folderze symulacji wyświetlanym na ekranie konfiguracji rejestratora Gatling.
Zrozumienie skryptu symulacji
Po utworzeniu skryptu dla wykonywanego scenariusza przejdź do folderu symulacji i otwórz skrypt.
Zwróć uwagę, że skrypt zostanie utworzony jako pakiet o takiej samej strukturze, jaki został określony przed uruchomieniem rejestratora - w naszym przypadku będzie to com.learn.gatling a nazwa klasy będzie „AddProduct”.
Otwórzmy plik AddProduct.scala i spróbujmy przejrzeć różne sekcje skryptu.
Można to wyjaśnić w następujący sposób:
# 1) Konfiguracja konfiguracji :to znaczy httpProtocol i nagłówki - W tej sekcji dokonuje się ogólnej konfiguracji danych dla skryptu, na przykład:
- Rodzaj protokołu - Http lub https,
- Inne rzeczy, takie jak baseUrl do wykorzystania w kolejnych żądaniach.
- Informacje w nagłówku - typowe informacje w nagłówku oraz nagłówki, które mają być wysyłane z indywidualnymi żądaniami. Zapoznaj się z nagłówkami_0 i headers_2 we fragmencie kodu poniżej:
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) Definicja scenariusza: Zawiera rzeczywisty scenariusz i kolejność żądań, które należy wykonać, aby odtworzyć scenariusz działający w oknie przeglądarki.
Warto też zwrócić uwagę na to, że właśnie wspomnieliśmy o względnym adresie URL dla żądań zamiast o pełnym adresie URL. To dlatego, że będziemy używać Konfiguracja protokołu httpProtocol omówiliśmy w punkcie 1, w którym zdefiniowano dane konfiguracyjne scenariusza.
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) Wykonanie scenariusza: Ta sekcja jest najważniejszą sekcją, która zawiera kroki konfiguracji scenariusza.
Konfiguracja wstrzyknięcia tutaj to liczba użytkowników / wątków lub innymi słowy obciążenie, z jakim chcemy przetestować ten scenariusz.
Wartością domyślną dla liczby użytkowników jest zawsze 1 i można to zmienić przed wykonaniem scenariusza.
Należy również pamiętać, że używamy również definicji httpProtocol, którą omówiliśmy w punkcie 1, która zawiera wszystkie podstawowe konfiguracje scenariusza do wykonania.
setUp (scn.inject (atOnceUsers (1))). protokoły (httpProtocol)
W następnym samouczku przyjrzymy się więcej szczegółom na temat konfiguracji wstrzykiwania i ładowania.
Wykonywanie testu za pomocą skryptu symulacji
Teraz zobaczymy, jak wykonać scenariusz za pomocą tego skryptu symulacyjnego, który został utworzony za pomocą rejestratora. Powstały skrypt, który zostanie utworzony, jest w rzeczywistości klasą opartą na Scali, która zawiera szczegółowe informacje na temat scenariusza wykonanego za pośrednictwem przeglądarki.
Oto samouczek wideo dotyczący wykonywania skryptu Gatling:
Instalacja Gatling zawiera skrypt powłoki (dla użytkowników systemu Windows jest to skrypt wsadowy), którego można użyć do wykonania tej symulacji.
Wykonaj poniższe kroki, aby wykonać utworzoną symulację:
# 1) Przejdź do folderu bin instalacji Gatling lub po prostu przejdź do - $ GATLING_HOME / bin
#dwa) Uruchom plik Gatling.sh dla systemu Linux / Mac OS (lub plik Gatling.bat dla użytkowników systemu Windows).
# 3) W przypadku wielu plików skryptów obecnych w folderze symulacji, skrypt poprosi użytkownika o wybranie symulacji, którą użytkownik chce uruchomić (aby to zasymulować, utwórz ten sam scenariusz w różnych pakietach, a po uruchomieniu skryptu Gatling można zobacz, że wyświetla 2 różne skrypty).
# 4) Symulacja jest zaznaczona (lub domyślnie jest ustawiona symulacja obecna w folderze, jeśli dostępny jest tylko jeden skrypt symulacji).
# 5) Skrypt wyświetla teraz monit o dodanie opcjonalnego opisu uruchomienia. Możesz to po prostu zignorować i nacisnąć Enter, aby rozpocząć wykonywanie symulacji.
# 6) Podczas wykonywania symulacji można zobaczyć raporty wykonania drukowane na terminalu, a parametry, takie jak czas odpowiedzi, łączna liczba żądań, powodzenie / niepowodzenie, itp. Podsumowany widok zostanie wyświetlony po zakończeniu wykonywania scenariusza.
# 7) Gatling generuje również szczegółowy raport w formacie HTML na koniec realizacji scenariusza, który zawiera wiele różnych punktów danych w odniesieniu do wykonanego scenariusza.
W następnym samouczku przyjrzymy się szczegółom wygenerowanego raportu.
Zalety korzystania z Gatling
Gatling zapewnia wiele bogatych w funkcje możliwości w celu zbudowania dobrego zestawu testów automatyzacji wydajności, wykorzystującego szeroki zakres DSL Gatling, a także rosnącego wsparcia społeczności w zakresie pomocy i uzyskiwania odpowiedzi na pytania.
Należy tutaj zauważyć, że w przeciwieństwie do innych narzędzi, takich jak JMeter, Gatling wymaga stromej krzywej uczenia się, ale zamiast tego daje wiele możliwości programowania, aby stworzyć solidny iw pełni funkcjonalny zestaw skryptów do symulacji testów wydajności i obciążenia.
Niektóre z tych zalet są następujące:
- Jest lekki i pozwala na użycie jednego wątku do więcej niż jednego żądania, w przeciwieństwie do większości innych narzędzi perf, w których wątek jest utożsamiany z użytkownikiem.
- Korzystanie z jednego wątku dla wielu żądań umożliwia firmie Gatling większe skalowanie i generowanie większego obciążenia nawet na jednej maszynie.
- Gatling zapewnia możliwość pracy w trybie rozproszonym w przypadku dużego obciążenia wymagającego symulacji.
- Zapewnia obsługę wielu innych protokołów innych niż HTTP,na przykład, Websockets, MQTT, JDBC, itp. Wszystkie mogą być testowane przy użyciu Gatling.
- Gatling zapewnia bogaty w funkcje język DSL - Domain Specific Language, który ma łatwą składnię i zapewnia potężne możliwości w połączeniu z tworzeniem skryptu symulacyjnego.
- Zapewnia również wiele złożonych funkcji kontroli symulacji, takich jak konstrukcje zapętlone, symulacja czasu myślenia, ograniczanie żądań poza pożądanym RPS itp.
- Ma bogate możliwości raportowania po wyjęciu z pudełka i można je również dostosować w zależności od wymagań.
Wniosek
W tym samouczku poruszyliśmy podstawy używania Gatlinga jako wybranego narzędzia do testowania obciążenia. Dzięki ekspresyjnemu DSL i doskonałemu wsparciu dla protokołu HTTP Gatling szybko zyskuje popularność i może być używany jako narzędzie wybierane przez wielu.
Dowiedzieliśmy się również o rejestratorze Gatling i programie uruchamiającym skrypty Gatling z przykładowym skryptem symulacyjnym, który pomógł zrozumieć podstawową koncepcję nagrywania skryptu symulacyjnego, który można następnie wykonać w przyszłości za pomocą wykonawcy Gatling Script.
W następnym samouczku zajmiemy się pisaniem skryptów Gatlinga jako projektów Scala - tj. Bez użycia rejestratora i zrozumiemy szablony raportów, które są generowane, gdy Gatling zakończy wykonywanie symulacji.
rekomendowane lektury
- Testowanie obciążenia za pomocą samouczków HP LoadRunner
- Korelacja - Testowanie obciążenia za pomocą LoadRunner
- Samouczek testowania przez zanurzenie - co to jest testowanie w moczu
- Testowanie obciążenia za pomocą LoadUI - bezpłatnego i otwartego narzędzia do testowania obciążenia
- Przegląd WebLOAD - Pierwsze kroki z narzędziem do testowania obciążenia WebLOAD
- Testy niszczące i samouczek dotyczący testów nieniszczących
- Samouczek testowania użyteczności: kompletny przewodnik dla początkujących
- Testy wydajnościowe a testy obciążeniowe a testy obciążeniowe (różnica)