W naszym artykule postaramy się pokazać jak krok po kroku przygotować podstawowe środowisko umożliwiające pracę w narzędziu Gatling. Dodatkowo dowiecie się, jak uruchomić samo narzędzie oraz jak uruchomić Recorder do nagrywania skryptów.
Pobieranie narzędzia
Narzędzie Gatling można pobrać ze strony http://gatling.io jako paczkę zip. Po zapisaniu pobranego pliku na dysku trzeba go rozpakować do wybranego folderu. Ważne, aby nie był to katalog, w którym mamy ograniczone uprawnienia np. w systemach Windows nie powinniśmy wykorzystywać do tego katalogu „Program Files…”. Po rozpakowaniu nazwa domyślnego folderu może okazać się niewygodna w użyciu, ponieważ jest dość długa: „gatling-charts-highcharts-bundle-x.x.x-bundle”, dlatego dla ułatwienia można zmienić nazwę na wygodniejszą. Będzie to tzw. katalog domowy Gatlinga.
Struktura plików i katalogów wygląda następująco:
- katalogu „bin” zawiera pliki umożliwiające uruchomienie narzędzia,
- katalog „conf” zawiera pliki konfiguracyjne,
- katalog „lib” zawiera pliki bibliotek potrzebnych do funkcjonowania narzędzia,
- katalog „results” to katalog, w którym zapisywane są raporty z testów,
- katalog „user-files” zawiera skrypty symulacyjne uruchamiane do testów,
- katalog „target”, utworzony po uruchomienia narzędzia, zawiera skompilowane skrypty testowe w postaci plików .class.
Zrzut ekranu 1. Zawartość katalogu Gatling.
Do uruchomienia narzędzia Gatling należy mieć zainstalowane i odpowiednio skonfigurowane środowisko JAVA JDK, najlepiej ze wszystkimi najnowszymi aktualizacjami.
Aby sprawdzić zainstalowaną wersję środowiska JAVA powinniśmy wywołać polecenie „java -version” w wierszu poleceń (Windows). Po zainstalowaniu JDK trzeba ustawić zmienną środowiskową JAVA_HOME na katalog, w którym zostało zainstalowane środowisko Java, o ile zmienna nie została ustawiona wcześniej.
Katalog „bin” zawiera przygotowane pliki dla systemów Windows oraz Linux/MacOS, które służą do uruchamiania narzędzia Gatling oraz Recorder.
W systemach Windows do uruchomienia narzędzia Gatling należy użyć pliku ‘gatling.bat’, do uruchomienia Recorder – „recorder.bat”.
Pliki „gatling.sh” oraz „recorder.sh” służą analogicznie do uruchomienia narzędzia Gatling i Recorder na systemach Linux / MacOS.
Zrzut ekranu 2. Pliki uruchamiające narzędzie Gatling i Recorder.
W katalogu Gatling otrzymujemy również gotowe skrypty umożliwiające przetestowanie testowej aplikacji „Computer-Database”, dostępnej pod adresem http://computer-database.gatling.io. Jest to prosta aplikacja webowa stworzona w celach testowych. Pozwala na dodawanie, edycję i usuwanie pozycji z bazy.
Zrzut ekranu 3. Aplikacja „Computer-Database”.
Powyższe skrypty testowe znajdują się w katalogu „user-filessimulationscomputerdatabase”. Pliki są podzielone ze względu na zaawansowanie skryptów. W głównym katalogu znajduje się tylko jeden plik, który przedstawia podstawowy skrypt w takiej postaci, w jakiej skrypty zostają nagrywane w narzędziu Recorder. W katalogu „advanced” zostały umieszczone skrypty, w których scenariusze testowe zostały zmodyfikowane i podzielone na złożone procesy biznesowe, w sposób podobny do wzorca PageObject.
Omawianiem budowy skryptów zajmiemy się w kolejnych artykułach.
Zrzut ekranu 4. Główny katalog ze skryptami testowymi.
Zrzut ekranu 5. Katalog „advanced” ze skryptami testowymi.
Test uruchomienie - Gatling
Po przygotowaniu i skonfigurowaniu środowiska możemy sprawdzić czy nasze środowisko jest gotowe do uruchomienia narzędzia. W tym celu przechodzimy do katalogu „bin” i uruchamiamy narzędzie odpowiednim plikiem, zależnie od systemu na jakim pracujemy – „gatling.bat” dla systemu Windows lub „gatling.sh” dla systemów Linux/MacOS.
Na początku pracy z Gatlingiem zachęcamy do uruchamiania narzędzia z konsoli (lub terminala) poprzez plik „gatling.bat” (w terminalu „./gatling.sh”). Będąc w katalogu „bin” wykonujemy komendę:
> gatling.bat
dla systemu Windows, a dla terminala systemu Linuksowego wykonujemy polecenie:
$ ./gatling.sh
co umożliwia obserwację ewentualnych błędów.
Uruchomienie narzędzia spowoduje wyświetlenie zmiennej „GATLING_HOME”, która zawiera ścieżkę do katalogu z plikami narzędzia. Następnie zostanie wyświetlona zmienna „JAVA” z wartością, jaka została ustawiona w „JAVA_HOME”.
Działania w przypadku pojawienia się błędów w konsoli i problemów z uruchomieniem narzędzia:
Jeśli podczas uruchamiania w wierszu poleceń pojawi się komunikat podobny do:
Please install or use the JRE or JDK that contains these missing components.
będzie to oznaczać, że nie mamy poprawnie zainstalowanej lub skonfigurowanej Javy.
Jeśli podczas uruchamiania w wierszu poleceń pojawi się komunikat podobny do:
simulations
lub
Could not reserve enough space for 1048576KB object heap
najprawdopodobniej będzie spowodowany tym, że domyślne parametry, z jakimi uruchamiany jest Gatling nie są odpowiednie dla naszego systemu - niewystarczające zasoby do uruchomienia narzędzia. W takim przypadku należy edytować skrypt, z którego uruchamiamy Gatlinga („gatling.bat”) i zmienić wartość w parametrze „JAVA_OPTS” z „Xmx1G” na „Xmx512M”, co spowoduje rezerwowanie mniejszej ilości pamięci przez narzędzie. Po zapisaniu pliku można spróbować uruchomić narzędzie ponownie.
Pierwsze uruchomienie może potrwać dłużej niż kolejne, gdyż w momencie pierwszego uruchomienia kompilowane są wszystkie skrypty testowe. Jeśli nie ma żadnych innych błędów z kompilacji skryptów (nie będzie błędów, ponieważ mamy na razie tylko skrypty dostarczone z narzędziem), to w kolejnym punkcie uruchamiania narzędzia należy wybrać skrypt testowy, który chcemy uruchomić. Wybranie skryptu odbywa się poprzez podanie cyfry przyporządkowanej do wybranego skryptu dostępnego na liście. W naszym przypadku wybieramy pierwszy skrypt przez wpisane „0” i potwierdzamy klawiszem „Enter”.
Zrzut ekranu 6. Uruchamianie Gatlinga - wybór skryptu testowego.
W następnej kolejności można podać identyfikator uruchamianego testu, zostanie on nadany folderowi z raportem. Domyślnie raport zostanie zapisany w katalogu z nazwą naszego skryptu – „basicsimulation”. Jeżeli nie podamy identyfikatora do nazwy, zostanie dołączony wygenerowany identyfikator w postaci ciągu cyfr. Na tym etapie nie podajemy żadnej wartości, tylko potwierdzamy klawiszem „Enter”.
Zrzut ekranu 7. Uruchamianie Gatlinga - określenie identyfikatora testu dla raportu.
Przed finalnym uruchomieniem testu jesteśmy proszeni o podanie opcjonalnego opisu dla uruchamianego skryptu. Opis ten będzie widoczny po wyświetleniu raportu. W tym momencie także nie podajemy żadnego opisu, tylko ponownie potwierdzamy klawiszem „Enter”.
Zrzut ekranu 8. Uruchamianie Gatlinga - określenie opisu testu.
Po potwierdzeniu opisu Gatling uruchomi wybrany przez nas wcześniej skrypt testowy, co zostanie potwierdzone komunikatem w konsoli
Simulation computerdatabase.BasicSimulation started…
Zrzut ekranu 9. Uruchamianie Gatlinga - uruchomienie skryptu.
W trakcie wykonywania skryptu testowego w odstępach co 5 sekund będziemy informowani o wykonanych zapytaniach (request) i statusach ich wykonania.
Zrzut ekranu 10. Uruchomienie skryptu - raporty z wykonanych zapytań.
Na zakończenie wykonania skryptu wyświetlone zostanie krótkie podsumowanie z ogólnymi wartościami z wykonania testu, a także informacje dotyczące zapisu raportu:
Please open the following file: d:gatling esultsasicsimulation-1503579827086index.html
Zrzut ekranu 11. Uruchomienie skryptu - podsumowanie wykonania skryptu.
Mając powyższe informacje wiemy, że skrypt zakończył pracę, a raport został zapisany we wskazanej lokalizacji. Raporty zapisywane są w postaci plików HTML, więc można otworzyć je w przeglądarce. Raport z naszego uruchomionego skryptu nie zawiera dużej liczby wiadomości, ponieważ skrypt został uruchomiony tylko dla jednego użytkownika. Daje jednak obraz tego, co raporty z przebiegu testów mogą przedstawiać/zawierać.
W raporcie dostępne mamy dwie zakładki, które zawierają zestaw informacji o zrealizowanych testach. Na pierwszej zakładce znajdują się:
- ogólne informacje w postaci graficznej z wykonania skryptu na temat zapytań, które zostały wykonane oraz czasów ich odpowiedzi,
- ogólne statystyki z czasem odpowiedzi dla kolejnych zapytań,
- liczba aktywnych użytkowników w czasie wykonywania testów (Active Users along the Simulation),
- procentowy rozkład czasu odpowiedzi (Response Time Distribution),
- procentowy rozkład czasu odpowiedzi w czasie (Response Time Percentiles over Time),
- liczba zapytań na sekundę w czasie wykonywania testów (Number of requests per second),
- liczba odpowiedzi na sekundę w czasie wykonywania testów (Number of responses per second).
Na drugiej zakładce znajdują się:
- ogólne informacje w postaci graficznej z ilością zapytań, które zostały wykonane i czasy ich odpowiedzi,
- statystyki z czasem odpowiedzi dla wybranego zapytania,
- procentowy rozkład czasu odpowiedzi (Response time distribution),
- odsetek czasu odpowiedzi w czasie (Response time percentiles over time),
- liczba zapytań na sekundę w czasie wykonywania testów dla wybranego zapytania (Number of requests per second),
- liczba odpowiedzi na sekundę w czasie wykonywania testów dla wybranego zapytania (Number of responses per second),
- czas odpowiedzi w stosunku do globalnego czasu RPS dla wybranego zapytania (Response time against global RPS).
Zrzut ekranu 12. Raport - informacje ogólne (1/2).
Zrzut ekranu 13. Raport - informacje ogólne (2/2).
Zrzut ekranu 14. Raport - informacje szczegółowe dla zapytań (1/2).
Zrzut ekranu 15. Raport - informacje szczegółowe dla zapytań (2/2).
Test uruchomienie - Recorder
W celu pełnego sprawdzenia, czy Gatling został poprawnie skonfigurowany powinniśmy jeszcze uruchomić narzędzie Recorder.
Recorder, w odróżnieniu od samego narzędzia Gatling, jest narzędziem z interfejsem graficznym. Służy do nagrywania scenariuszy testowych, które Gatling uruchamia jako skrypty testowe. Recorder pozwala na wygenerowanie skryptu scenariusza w języku Scala przez podpięcie się jako proxy pomiędzy przeglądarką a serwerem HTTP. Skrypt może zostać także wygenerowany przez wczytanie pliku HAR (Http ARchive), który został utworzony przez zapisanie sesji w przeglądarce.
Do uruchomienia narzędzia Recorder używamy plików z katalogu ”bin” w folderze domowym Gatlinga. W systemie Windows jest to „recorder.bat”, w systemach Linux/MacOS jest to „recorder.sh”.
Tu również najlepiej uruchamiać z poziomu wiersza poleceń, gdzie będąc w katalogu „bin” dla systemu Windows wykonujemy komendę:
> recorder.bat
a dla terminala systemu Linuksowego wykonujemy polecenie:
$ ./recorder.sh
co umożliwia obserwację ewentualnych błędów.
Jeśli nie będzie błędów i problemów, to uruchamiając narzędzie Recorder zobaczymy okno konfiguracji narzędzia. W oknie konsoli podobnie do uruchamiania skryptu „gatling.bat” pojawi się komunikat o ustawieniu zmiennej „GATLING_HOME”, ze wskazaniem na katalog domowy Gatlinga oraz zmienną „JAVA”’.
Zrzut ekranu 16. Uruchamianie narzędzia Recorder – konsola.
Otwarcie okna konfiguracyjnego „Gatling Recorder – Configuration” potwierdza fakt, że mamy poprawnie przygotowane środowisko do rozpoczęcia pracy z narzędziami Gatling i Recorder. Konfiguracją i nagrywaniem skryptów testowych zajmiemy się w następnych artykułach.
Zrzut ekranu 17. Uruchamianie narzędzia Recorder - okno konfiguracji.
Podsumowanie
W tym artykule przygotowaliśmy i skonfigurowaliśmy podstawowe środowisko do testów wydajnościowych z użyciem narzędzia Gatling. Wiemy już, jak uruchomić narzędzia oraz mamy pewność, że działają poprawnie w naszym środowisku. W następnych artykułach opiszemy dalsze kroki w pracy z tym narzędziem.
SPRAWDŹ TAKŻE |
---|
Gatling. Testy wydajności w innej formie. Część 1. |