geb tutorial browser automation testing using geb tool
Geb (wymawiane jako „jeb”) to odpowiedź na wyzwania związane z automatyzacją przeglądarek. Jest to bardzo skuteczne narzędzie do przeprowadzania testów automatyzacji przez Internet.
Geb zrodził się z potrzeby uczynienia automatyzacji przeglądarki (początkowo do testowania stron internetowych) mniej skomplikowaną, bezproblemową i wydajniejszą. Może być używany do programowania, wydobywania danych z sieci i automatyzacji ręcznych zadań sieciowych. Ponadto Geb jest wiele przeglądarek narzędzie do testowania automatyzacji.
Geb działa jako narzędzie programistyczne do automatyzacji współpracy między przeglądarkami internetowymi a treściami internetowymi. Uruchamia WebDriver w języku Groovy.
Piękno narzędzia testowego Geb polega na tym, że łączy w sobie najlepsze cechy języka programowania Groovy, jQuery, WebDriver oraz modelowanie obiektów strony, aby zapewnić potężną, solidną i dynamiczną kontrolę treści, selekcję i interakcję w sieci.
Co sprawia, że Geb jest wyjątkowy na tle innych narzędzia do testowania automatyzacji na rynku dostępna jest jego składnia. Jest podobny do jQuery, który jest normalnie używany do łatwego odpytywania stron HTML. Po drugie, ma zintegrowaną obsługę wzorca Page Object.
Geb zapewnia dużą pomoc w funkcjonalnym testowaniu sieciowym poprzez integrację z niektórymi szeroko używanymi i popularnymi platformami testowymi, w tym Spock Grails, JUnit , Cucumber-JVM , TestNG, itp. W dalszej części artykułu zobaczymy, jak można zintegrować Geb z frameworkiem Grails.
Czego się nauczysz:
- Praktyczne zastosowania
- Zalety
- Wymagania wstępne
- Pierwsze kroki
- Ucz się na przykładzie
- Testowanie poprawności bazy danych za pomocą skryptu Geb:
- Kilka przydatnych metod w Geb
- Wady tego narzędzia
- Więcej zasobów:
- Wniosek
- rekomendowane lektury
Praktyczne zastosowania
Jak już wspomniano we wstępie do tego samouczka Geb, można go użyć:
- Jako narzędzie do testowania w wielu przeglądarkach, takich jak Chrome, Firefox, Internet Explorer itp. (Ten sam skrypt automatyzacji można uruchomić w różnych przeglądarkach, aby przeprowadzić testowanie aplikacji w sieci).
- Aby zautomatyzować akceptację użytkowników i funkcjonalne przypadki testowe.
- Aby zautomatyzować scenariusze testowe stworzone do testowania funkcjonalnego lub internetowego dowolnej aplikacji.
- Obejmuje testy od końca do końca, w tym walidację interfejsu użytkownika (interfejsu użytkownika) i walidację bazy danych (DB).
- Jako narzędzie programisty do automatyzacji interakcji między przeglądarką internetową a treścią internetową.
Zalety
- Geb to darmowe narzędzie o otwartym kodzie źródłowym. Jest licencjonowany w ramach licencji Apache w wersji 2.0.
- Łatwe i proste do zautomatyzowania testów internetowych.
- Geb's Page Objects i Groovy DSL sprawiają, że testy są czytelne do tego stopnia, że wyglądają prawie jak zwykły angielski.
- Szybko przeprowadza testy, oszczędzając w ten sposób czas i koszty testowania.
- Kompatybilny z różnymi przeglądarkami, takimi jak IE, Firefox, Chrome i HTMLUnit.
- Wykonuje testy w prawdziwej przeglądarce. To tak, jakby testować w prawdziwym środowisku - takim, jakie zobaczy użytkownik.
- Ułatwia to testowanie regresji. Możesz uruchomić automatyczne przypadki testowe Geb, aby sprawdzić, czy jakakolwiek istniejąca funkcjonalność nie działa po poprawce lub zmianie w aplikacji.
- Podczas korzystania z Geb do testowania automatyzacji wymagane są minimalne zmiany kodu testowego, jeśli istnieją jakiekolwiek zmiany interfejsu użytkownika w aplikacji. W ten sposób zmniejsza wysiłek i powielanie kodu.
- Pomaga w zakresie 360 stopni (lub maksymalnego) pokrycia testów w ramach jednego skryptu.
Wymagania wstępne
Przed rozpoczęciem musimy pobrać i zainstalować oprogramowanie. W centralnym repozytorium Maven Geb jest dostępny jako pojedynczy jar Geb-core. Kliknij tutaj aby zainstalować go na swoim komputerze.
Będziesz potrzebował powyższego słoika Geb-core, implementacji sterownika sieciowego i słoika wsparcia selenu, aby Geb działał na twoim komputerze.
Zapoznaj się z poniższą sekcją dotyczącą instalacji i użytkowania w książce Geb, aby zainstalować narzędzie i uruchomić je => Instrukcja instalacji i użytkowania Geb .
Pierwsze kroki
Jak już wspomniano, Geb można zintegrować z różnymi frameworkami testowymi.
W zależności od wybranego frameworka będziesz musiał zainstalować odpowiednią wtyczkę.
Na przykład : Grails ( Grails to bardzo znany framework dla aplikacji internetowych) do pisania skryptów testów automatyzacji i automatyzacji scenariuszy testowych. Jeśli chcesz używać Geb do testów funkcjonalnych Grails, możesz zainstalować odpowiednią wtyczkę z tego miejsca wtyczka grails-geb . Ta wtyczka obsługuje rozszerzenie baseUrl i raportyDir elementy konfiguracji.
Ucz się na przykładzie
Pokażę teraz, jak napisać skrypt Geb, aby zautomatyzować scenariusz testowy.
Spójrz na poniższy scenariusz testowy:
Identyfikator scenariusza testowego | Softwaretestinghelp-1 | Identyfikator przypadku testowego | Softwaretestinghelp -1A |
Wyjście | |||
Opis przypadku testowego | Sprawdź stronę Softwaretestinghelp.com za pomocą wyszukiwarki | Stan skryptu automatyzacji | W trakcie |
Warunek wstępny | 1 Przeglądarka 2. wyszukiwarka 3. strona internetowa - powinno istnieć Softwaretestinghelp.com | Wymagany skrypt | NA |
Etapy wykonania to:
Uruchom wyszukiwarkę Google |
Sprawdź, czy wyszukiwarka została pomyślnie załadowana |
Wpisz softwaretestinghelp.com w polu wyszukiwania |
Poczekaj na załadowanie wyników |
Sprawdź, czy pierwszy link w wynikach prowadzi do softwaretestinghelp.com |
Jeśli tak, otwórz łącze. |
Poczekaj, aż witryna się otworzy. |
Oto skrypt narzędzia do automatyzacji Geb dla powyższego scenariusza:
import geb.Browser Browser.drive { go 'http://google.com/' //verify if we are on the correct page assert title=='Google' //enter softwaretestinghelp.com into the search field $('input',name:'q').value('softwaretestinghelp.com') //wait for the change to results page to happen //(google updates the page dynamically without a new request) waitFor{ title.endsWith('Google Serach')} //is the first link to softwaretestinghelp.com? def firstLink = $('li.g,0).find('a.l') assert firstLink.text()= ='Software Testing Help - A Must Visit Software Testing Portal' //click the link firstLink.click() //wait for Google's javascript waitFor { title = ='Software Testing Help - A Must Visit Software Testing Portal' } }
Możesz teraz spróbować samodzielnie napisać prosty skrypt GEB, odwołując się do powyższego przykładu.
Testowanie poprawności bazy danych za pomocą skryptu Geb:
Każde testowanie automatyzacji sieci jest podzielone na trzy części:
- Weryfikacja UI - Weryfikacja danych odzwierciedlonych w interfejsie użytkownika (interfejsie użytkownika) przed i po uruchomieniu scenariusza testów automatyzacji.
- Walidacja DB - Walidacja danych odzwierciedlonych w bazie danych (zapleczu) przed i po uruchomieniu scenariusza testów automatyzacji.
- Rzeczywisty przepływ testu / przepływ skryptów.
Skrypt Geb napisany w celu zautomatyzowania scenariusza testowego może zawierać kod dla wszystkich trzech powyższych sekcji.
Skrypt Geb w powyższej sekcji przykładowej służył do automatyzacji przepływu testów i walidacji interfejsu użytkownika. Podobnie możesz napisać skrypt testowy do walidacji bazy danych.
W przypadku każdego testu weryfikacji bazy danych zawsze możesz użyć poniższego szablonu jako konspektu dla swojego kodu:
def validateDB(/*define all variables here*/) { def errorMessages = '' try { Configuration conf = (new ConfigurationLoader()).getConf() def sql = Sql.newInstance(conf.readValue('dbPath', ''), conf.readValue('dbUserName', ''), conf.readValue('dbPassword', ''), conf.readValue('dbDriverName', '')) /* Populate any required variables */ } /* Give print commands here to print required values */ def qry = /* select statement to pull all required values from database */ println 'SQL=$qry' sql.eachRow(qry) { row -> /* ‘if’ block to perform validation and returning error in case of any variations */ } catch(Exception e) { println 'EEEE=$e' } return errorMessages }
Kilka przydatnych metod w Geb
- Jeśli Twój scenariusz testowy obejmuje wiele kart i okien: Za każdym razem, gdy natkniesz się na aplikację, która otwiera nowe okna lub karty, Na przykład po kliknięciu łącza z ustawionym atrybutem docelowym możesz skorzystać z withWindow () i withNewWindow () metody wykonywania kodu w kontekście innych okien.
- Metoda napędu: Klasa przeglądarki zawiera metodę statyczną - napęd() . Ta metoda zapewnia dodatkową wygodę skryptom Geb. Zakłada się, że wszystkie wywołania metod najwyższego poziomu i dostęp do właściwości są skierowane przeciwko przeglądarce.
- Składanie wniosków: Instancje przeglądarki obsługują plik baseUrl właściwość używana do rozwiązywania wszystkich względnych adresów URL. Zwykle najlepiej jest zdefiniować podstawowe adresy URL za pomocą końcowych ukośników i nie używać początkowych ukośników w względnych adresach URL.
- Zmiana strony: Z pomocą przydatnych strona() metody, można zmienić instancję strony bez wysyłania nowego żądania.
- Zamykanie przeglądarki: Obiekt przeglądarki zapewnia porzucić() i blisko() metody (które po prostu przekazują zadanie sterownikowi bazowemu).
Wady tego narzędzia
- Urodzony wykonuje WebDriver w języku Groovy. Cała idea polega na wykorzystaniu WebDriver łatwiejsze i prostsze. Tak więc, gdy używasz Webdriver za pośrednictwem Geb, obsługiwany będzie tylko język programowania Groovy. Ale jeśli używasz bezpośrednio WebDriver , obsługuje wiele języków, takich jak Ruby, C #, Python, Java.
- Nie sugerowałbym używania Geb do małych projektów - działa świetnie w przypadku ogromnych zadań, ale sprawdza się w przypadku małych czynności. Jeśli aplikacja internetowa nie zawiera wielu stron i formularzy, przez które muszą przepływać informacje, może się okazać, że Geb naprawdę kosztuje więcej czasu niż oszczędza.
- Bardzo ważne jest, z jakiego środowiska korzysta Twoja aplikacja internetowa. Geb musi być dobrze zintegrowany z określonym środowiskiem, aby działał dobrze.
Więcej zasobów:
- Sprawdź Book of Geb tutaj aby uzyskać szczegółową dokumentację i przykłady.
- Oto przykładowy projekt przedstawiający integracja Geba z Graalami .
Wniosek
Geb jest bardzo przydatny w automatyzacji scenariuszy przypadków testowych. Przydaje się do zautomatyzowania testów internetowych, funkcjonalnych i akceptacyjnych przez użytkowników. Obsługuje wiele przeglądarek i może być zintegrowany z różnymi platformami. Łączy w sobie moc WebDriver, elegancję jQuery Selection, solidność Page Object Modeling i wyrazistość Groovy.
Skrypty Geb są przyjazne zarówno dla programistów, jak i użytkowników, zapewniając lepsze pokrycie testów i przyspieszone testowanie, a jednocześnie zwiększając ich wydajność.
O autorze: To jest post gościnny autorstwa Priyi K. Ma ponad 4-letnie doświadczenie w usługach IT z doświadczeniem w testowaniu i wsparciu dla różnych aplikacji.
Zapraszam do publikowania zapytań dotyczących testów automatyzacji Geb w komentarzach.
rekomendowane lektury
- Samouczek dotyczący narzędzia do testowania dostępności WAVE
- Samouczek Ranorex: Potężne narzędzie do testowania automatyzacji komputerów stacjonarnych, sieci Web i urządzeń mobilnych
- Sikuli GUI Automation Testing Tool - Przewodnik dla początkujących, część # 2
- Samouczek Parrot QA: Przegląd narzędzia do testowania funkcjonalnego w różnych przeglądarkach
- Najlepsze narzędzia do testowania oprogramowania 2021 (Narzędzia do automatyzacji testów QA)
- Dogłębne samouczki dotyczące Eclipse dla początkujących
- Co to jest automatyzacja testów (kompletny przewodnik po rozpoczęciu automatyzacji testów)
- Parasoft SOAtest Tutorial: Bezskryptowe narzędzie do testowania API