Selenium Samouczek dotyczący siatki: konfiguracja koncentratora i węzła (przykład)
Co to jest Selenium Siatka?
Selenium Krata jest częścią Selenium Pakiet specjalizujący się w uruchamianiu wielu testów w różnych przeglądarkach, systemach operacyjnych i maszynach równolegle. Osiąga się to poprzez kierowanie poleceń zdalnych instancji przeglądarki, gdzie serwer działa jako hub. Użytkownik musi skonfigurować zdalny serwer, aby wykonać testy.
Selenium Grid ma 2 wersje – starszą Grid 1 i nowszą Grid 2. Skupimy się tylko na Grid 2, ponieważ Grid 1 jest stopniowo wycofywany przez Selenium Zespół.
Selenium Krata Architektura
Selenium Grid ma koncentrator i węzeł Architektura.
Piasta
- Koncentrator to centralny punkt, do którego ładujesz testy.
- W siatce powinien znajdować się tylko jeden koncentrator.
- Koncentrator jest uruchamiany tylko na jednym komputerze, powiedzmy, komputerze z systemem operacyjnym Windows 7 i którego przeglądarką jest IE.
- Na komputerze zawierającym koncentrator zostaną uruchomione testy, ale zobaczysz, że przeglądarka w węźle jest zautomatyzowana.
Węzły
- Węzły to Selenium instancje, które wykonają testy załadowane do koncentratora.
- W siatce może znajdować się jeden lub więcej węzłów.
- Węzły można uruchamiać na wielu komputerach z różnymi platformami i przeglądarkami.
- Maszyny obsługujące węzły nie muszą być tą samą platformą, co komputer koncentrujący.
Selenium Grid wykorzystuje koncepcję węzła koncentrującego, w której test uruchamia się tylko na jednej maszynie zwanej a piasta, ale wykonanie zostanie wykonane przez różne maszyny zwane węzły.
Jak skonfigurować Selenium Siatka?
W tej sekcji będziesz używać 2 maszyn. Pierwsza maszyna będzie systemem, na którym będzie działać koncentrator, a druga maszyna będzie uruchamiać węzeł. Dla uproszczenia nazwijmy maszynę, na której działa koncentrator, „Maszyną A”, podczas gdy maszynę, na której działa węzeł, nazwiemy „Maszyną B”. Ważne jest również zanotowanie ich adresów IP. Załóżmy, że Maszyna A ma adres IP 192.168.1.3, podczas gdy Maszyna B ma adres IP 192.168.1.4.
Krok 1) Pobierz Selenium Serwer od tutaj.
Krok 2) Możesz umieścić Selenium Plik .jar serwera w dowolnym miejscu na dysku twardym. Ale na potrzeby tego samouczka umieść go na dysku C zarówno komputera A, jak i komputera B. Po wykonaniu tej czynności instalacja została zakończona Selenium Siatka. Następujące kroki uruchomią hub i węzeł.
Krok 3)
- Teraz uruchomimy hub. Przejdź do komputera A. Korzystając z wiersza poleceń, przejdź do katalogu głównego dysku komputera A – C, ponieważ jest to katalog, w którym umieściliśmy Selenium Serwer.
- W wierszu polecenia wpisz java -jar selenium-server-standalone-2.30.0.jar -role hub
- Koncentrator powinien zostać pomyślnie uruchomiony. Wiersz poleceń powinien wyglądać podobnie do poniższego obrazka.
Krok 4) Innym sposobem sprawdzenia, czy koncentrator działa, jest użycie przeglądarki. Selenium Grid domyślnie używa portu 4444 Maszyny A jako swojego interfejsu sieciowego. Po prostu otwórz przeglądarkę i przejdź do http://localhost:4444/grid/console
Możesz także sprawdzić, czy Maszyna B może uzyskać dostęp do interfejsu internetowego koncentratora, uruchamiając tam przeglądarkę i przechodząc do miejsca, w którym „iporhostnameofmachineA” powinien być adresem IP lub nazwą hosta komputera, na którym działa koncentrator. Ponieważ adres IP maszyny A to 192.168.1.3, w przeglądarce na maszynie B powinieneś wpisać http://192.168.1.3:4444/grid/console
Krok 5)
- Teraz, gdy koncentrator jest już skonfigurowany, uruchomimy węzeł. Przejdź do komputera B i uruchom tam wiersz poleceń.
- Przejdź do katalogu głównego dysku C i wpisz poniższy kod. Użyliśmy adresu IP 192.168.1.3, ponieważ tam działa koncentrator. Użyliśmy również portu 5566, chociaż możesz wybrać dowolny bezpłatny numer portu.
- UWAGA: Jeśli używasz, musisz teraz podać ścieżkę do sterownika Gecko Firefox. Oto zaktualizowany kod, którego należy użyć
java -Dwebdriver.gecko.driver="C:\geckodriver.exe" -jar selenium-server-standalone-3.4.0.jar -role webdriver -hub http://192.168.1.3:4444/grid/register -port 5566
- Po naciśnięciu klawisza Enter wiersz poleceń powinien wyglądać podobnie do poniższego obrazka.
Krok 6) Idź do Selenium Interfejs sieciowy Grid i odśwież stronę. Powinieneś zobaczyć coś takiego.
W tym momencie skonfigurowałeś już prostą siatkę. Jesteś teraz gotowy do zdalnego uruchomienia testu na komputerze B.
Kiedy użyć Selenium Siatka?
Powinieneś użyć Selenium Siatka, gdy chcesz wykonać jedną lub obie z poniższych czynności:
- Możesz przeprowadzać testy w różnych przeglądarkach, systemach operacyjnych i na różnych komputerach jednocześnie. Zapewni to, że aplikacja, którą jesteś Testowanie jest w pełni kompatybilny z szeroką gamą kombinacji przeglądarek i systemów operacyjnych.
- Oszczędzaj czas podczas wykonywania zestawów testów. Jeśli skonfigurujesz Selenium Grid do uruchomienia, powiedzmy, 4 testów na raz, wtedy będziesz w stanie ukończyć cały pakiet około 4 razy szybciej.
Siatka 1.0 kontra siatka 2.0
Poniżej przedstawiono główne różnice między Selenium Siatka 1 i 2.
Siatka 1 | Siatka 2 |
---|---|
Selenium Grid 1 ma swój własny pilot, który różni się od Selenium Serwer RC. To dwa różne programy. | Selenium Grid 2 jest teraz dołączony do Selenium Plik jar serwera |
Musisz zainstalować i skonfigurować Apache Najpierw mrówkuj, zanim będziesz mógł użyć siatki 1. | Nie musisz instalować Apache Ant w Grid 2. |
Może tylko wspierać Selenium Polecenia/skrypty RC. | Może wspierać oba Selenium Skrypty RC i WebDriver. |
Na jednego pilota można zautomatyzować tylko jedną przeglądarkę. | Jeden pilot może zautomatyzować do 5 przeglądarek. |
Selenium siatkę można skonfigurować na dwa różne sposoby; jeden za pomocą wiersza poleceń, a drugi za pomocą pliku konfiguracyjnego JSON.
Projektowanie skryptów testowych, które można uruchomić w sieci Grid
Aby zaprojektować skrypty testowe, które będą działać na siatce, musimy użyć Pożądane możliwości i RemoteWebDriver obiekty.
- Pożądane możliwości służy do ustawiania typu przeglądarka i OS że zautomatyzujemy.
- RemoteWebDriver służy do ustawienia węzła (lub maszyny), na którym będzie wykonywany nasz test.
Aby użyć Pożądane możliwości obiekt, musisz najpierw zaimportować ten pakiet
Aby użyć RemoteWebDriver obiekt, musisz zaimportować te pakiety.
Korzystanie z obiektu DesiredCapabilites
Przejdź do interfejsu sieciowego Grid i najedź kursorem na obraz przeglądarki, którą chcesz zautomatyzować. Zwróć uwagę na Platforma, i nazwa przeglądarki pokazane w podpowiedzi.
W tym przypadku platforma to „XP”, a nazwa przeglądarki to „Firefox".
Będziemy używać platformy i nazwy przeglądarki w naszym WebDriverze, jak pokazano poniżej (oczywiście musisz najpierw zaimportować niezbędne pakiety).
Korzystanie z obiektu RemoteWebDriver
Zaimportuj niezbędne pakiety dla RemoteWebDriver, a następnie przekaż obiekt DesiredCapabilities, który utworzyliśmy powyżej, jako parametr dla obiektu RemoteWebDriver.
Uruchamianie przykładowego przypadku testowego w siatce
Poniżej znajduje się prosty WebDriver Testowanie kod, w którym możesz utworzyć Eclipse na maszynie A. Po uruchomieniu automatyzacja zostanie przeprowadzona na maszynie B.
import org.openqa.selenium.*; import org.openqa.selenium.remote.DesiredCapabilities; import java.net.MalformedURLException; import java.net.URL; import org.openqa.selenium.remote.RemoteWebDriver; import org.testng.Assert; import org.testng.annotations.*; public class Grid_2 { WebDriver driver; String baseUrl, nodeURL; @BeforeTest public void setUpWthrows MalformedURLException { baseUrl = "http://newtours.demoaut.com/"; nodeURL = "http://192.168.1.4:5566/wd/hub"; DesiredCapabilities capability = DesiredCapabilities.firefox(); capability. setBrowserName("firefox"); capability. setPlatform(Platform.XP); driver = new RemoteWebDriver(new URL(nodeURL), capability); } @AfterTest public void afterTest() { driver.quit(); } @Test public void simpleTest() { driver.get(baseUr1); Assert.assertEquas("Welcome: Mercury Tours", driver.getTitle()); } }
Test powinien przejść.
Selenium konfiguracja siatki przy użyciu pliku JSON
JSON oznacza Javascript Notacja obiektu. Jest to standardowy format używany do wymiany danych pomiędzy przeglądarką a serwerem WWW. Selenium ma wbudowany plik konfiguracyjny JSON, który można wykorzystać do skonfigurowania siatki Selenium.
Poniżej przedstawiono kroki konfiguracji siatki Selenium przy użyciu pliku konfiguracyjnego JSON.
Krok 1) Pobierz kod pliku konfiguracyjnego JSON, korzystając z poniższej ścieżki
Oto kod
{ "port": 4444, "newSessionWaitTimeout": -1, "servlets" : [], "withoutServlets": [], "custom": {}, "capabilityMatcher": "org.openqa.grid.internal.utils.DefaultCapabilityMatcher", "registryClass": "org.openqa.grid.internal.DefaultGridRegistry", "throwOnCapabilityNotPresent": true, "cleanUpCycle": 5000, "role": "hub", "debug": false, "browserTimeout": 0, "timeout": 1800 }
Krok 2) Skopiuj i wklej kod do edytora tekstu, takiego jak Notatnik, z rozszerzeniem „.json”
Krok 3)Uruchom koncentrator za pomocą poniższego polecenia w wierszu poleceń
java -jar selenium-server-standalone-2.53.1.jar -role hub -hubConfig hubconfig.json
UWAGA: Selenium samodzielny plik jar i plik json muszą znajdować się w tym samym katalogu
Krok 4) Pojawi się poniższy ekran wskazujący, że koncentrator został pomyślnie skonfigurowany
Krok 5) Otwórz przeglądarkę internetową i spróbuj połączyć się z poniższym adresem URL
http://192.168.43.223:4444/grid/console
UWAGA: Adres URL może się różnić w zależności od komputera. Należy użyć adresu URL, po którym następuje informacja „Węzły powinny się zarejestrować” na powyższym ekranie.
Krok 6) Pojawi się ekran konsoli Grid, który wskazuje, że koncentrator jest uruchomiony
Skonfiguruj WĘZŁY za pomocą JSON
Krok 1) Pobierz przykładowy plik konfiguracyjny węzła dostarczony przez Selenium korzystając z poniższego adresu URL
UWAGA: JEŚLI UŻYWASZ SELENIUM 3.0 LUB WYŻSZEJ WERSJI, MUSISZ UŻYĆ PONIŻSZEGO PLIKU JSON
Krok 2) Skopiuj i wklej kod do edytora tekstu, takiego jak Notatnik, i zapisz plik z rozszerzeniem „.json”
Krok 3)
Uruchom poniższe polecenie w wierszu poleceń
Java-Dwebdriver.chrome.driver="chromedriver.exe" -Dwebdriver.ie.driver="IEDriverServer.exe" -Dwebdriver.gecko.driver="geckodriver.exe" -jar selenium-server-standalone-2.53.1.jar -role node -nodeConfig node1.json
UWAGA: Przed uruchomieniem polecenia upewnij się, że sterowniki dla każdej przeglądarki zostały pobrane do katalogu komputera lokalnego
Krok 4) Poniższy ekran pojawi się po naciśnięciu klawisza Enter
Krok 5) Przejdź do konsoli grid, aby sprawdzić, czy węzły zostały pomyślnie skonfigurowane
Przeglądarki są wyświetlane na konsoli siatki. Stąd możemy być pewni, że węzły są skonfigurowane pomyślnie.
Przykładowe przypadki testowe włączone Selenium Krata:
package com.objectrepository.demo; import org.openqa.selenium.*; import org.openqa.selenium.remote.DesiredCapabilities; import java.net.MalformedURLException; import java.net.URL; import org.openqa.selenium.remote.RemoteWebDriver; import org.testng.Assert; import org.testng.annotations.*; public class SeleniumGrid { WebDriver driver; String baseURL, nodeURL; @BeforeTest public void setUp() throws MalformedURLException { baseURL = "http://demo.guru99.com/test/guru99home/"; nodeURL = "http://192.168.43.223:5566/wd/hub"; DesiredCapabilities capability = DesiredCapabilities.chrome(); capability.setBrowserName("chrome"); capability.setPlatform(Platform.WIN10); driver = new RemoteWebDriver(new URL(nodeURL), capability); } @AfterTest public void afterTest() { driver.quit(); } @Test public void sampleTest() { driver.get(baseURL); if (driver.getPageSource().contains("MOBILE TESTING")) { Assert.assertTrue(true, "Mobile Testing Link Found"); } else { Assert.assertTrue(false, "Failed: Link not found"); } } }
Powyższy kod uruchamia przeglądarkę Chrome i przechodzi do adresu URL określonego w zmiennej „baseURL”. Zweryfikowano, że nazwa łącza „Mobile Testing” jest wyświetlana na stronie
Adres URL w zmiennej „nodeURL” można zmodyfikować, aby odzwierciedlał adres IP komputera zdalnego. Wynik testu można zweryfikować domyślnie TestNG wygenerowany raport
Podsumowanie
- Selenium Grid służy do jednoczesnego uruchamiania wielu testów w różnych przeglądarkach i na różnych platformach.
- Grid wykorzystuje koncepcję węzła-centratora.
- Koncentrator to centralny punkt, w którym ładujesz swoje testy.
- Węzły to Selenium instancje, które wykonają testy załadowane do koncentratora.
- Aby zainstalować Selenium Grid, wystarczy pobrać plik Selenium Plik jar serwera – ten sam plik, który jest używany podczas uruchamiania Selenium Testy RC.
- Istnieją dwa sposoby sprawdzenia, czy koncentrator działa: jeden za pomocą wiersza poleceń, a drugi za pomocą przeglądarki.
- Aby uruchomić skrypty testowe w sieci Grid, należy użyć obiektów DesiredCapabilities i RemoteWebDriver.
- DesiredCapabilites służy do ustawienia typu przeglądarki i systemu operacyjnego, które będziemy automatyzować.
- RemoteWebDriver służy do ustawiania węzła (lub maszyny), na którym będzie uruchamiany nasz test.