Utworzenie siatki selenu dla rozproszonych testów selenu



Ten blog pomoże Ci zrozumieć potrzebę Selenium Grid i jego zalety. Przeczytaj go, aby skonfigurować swój pierwszy Selenium Grid, konfigurując hub i węzły.

Inne blogi z tej serii samouczków Selenium mówią o tworzeniu przypadków testowych i ich wykonywaniu w kolejności i równolegle. Tak więc ostatnią techniką pozostawioną do dyskusji jest wykonanie przypadków testowych na zdalnych maszynach. Selenium Grid może być używany do wykonywania tych testów na zdalnych maszynach / hostach. Stąd jest to temat dyskusji na dzisiejszym blogu.

  1. Dlaczego i kiedy używać Selenium Grid?
  2. Co to jest siatka selenowa?
  3. Siatka selenu 1 vs. siatka selenu 2
  4. Architektura siatki selenowej
  5. Budowanie siatki selenowej

Dlaczego i kiedy używać siatki selenowej?

Obecnie w użyciu jest tak wiele przeglądarek internetowych. Użytkownicy mogą używać przeglądarki Chrome, Firefox, Safari lub Opera, a nawet Internet Explorera do czytania tego bloga. Mogą używać różnych wersji przeglądarek. Mogą również uruchamiać te przeglądarki w dowolnym systemie operacyjnym, czy to Windows, Mac, Ubuntu lub jakiejkolwiek innej dystrybucji Linuksa.





przekonwertować dane binarne na liczbę całkowitą java

A co by było, gdyby użytkownicy zobaczyli w internecie coś ważnego? Coś ważnego dla Twojej firmy. Czy nie chciałbyś pójść o krok dalej (przetestować aplikację internetową) tylko po to, aby zapewnić użytkownikom i / lub klientom jak najlepsze wrażenia? Mógłbyś, prawda?

Cóż, powinieneś!



Ale pytanie brzmi, jak to jest wykonalne? Czy będziesz mógł poświęcić czas na testowanie swojej aplikacji internetowej na każdym możliwym systemie operacyjnym i każdej dostępnej przeglądarce internetowej? Hmm, to brzmi jak wyzwanie. W tym przypadku Selenium Grid pasuje do rachunku i pomagaoszczędzaj czas i energię.

Oprócz tego pojawia się jeszcze jedno pytanie, czy opłacalne jest tworzenie infrastruktury sieciowej Selenium z wykorzystaniem lokalnych systemów? Utrzymanie siatki ze wszystkimi wymaganymi przeglądarkami i systemami operacyjnymi jest wyzwaniem. W tym celu istnieje wiele platform internetowych, które zapewniają internetową sieć Selenium Grid, do której można uzyskać dostęp, aby uruchamiać skrypty automatyzacji selenu. Na przykład możesz użyć LambdaTest . Ma ponad 2000 środowisk przeglądarek, w których można przeprowadzać testy i naprawdę automatycznie testować między przeglądarkami.

Co to jest siatka selenowa?

Selenium Grid to kolejne ważne narzędzie w zestawie narzędzi Selenium. Grid jest w stanie koordynować testy WebDriver / testy RC, które mogą być uruchamiane jednocześnie w wielu przeglądarkach internetowych lub mogą być inicjowane w różnych systemach operacyjnych lub nawet hostowane na różnych komputerach.



siatka robocza - siatka selenowaWięc jak to działa? Grid wykorzystuje architekturę Hub-Node, w której istnieje jeden Hub, który działa jako master i jeden lub więcej węzłów działających jako slave.

Oznacza to, że jeśli masz w sumie 100 zadań / testów do wykonania, testy mogą być wykonywane jednocześnie na 5 maszynach, z których każda będzie wykonywać 20 testów. W rzeczywistości testy te można wykonywać w różnych kombinacjach systemów operacyjnych i przeglądarek. Każda maszyna może mieć inny system operacyjny, a wewnątrz każdego systemu operacyjnego testy można przeprowadzać na różnych przeglądarkach.

Ta czynność z łatwością pozwoliłaby zaoszczędzić dużo czasu podczas wykonywania testów. Jeśli weźmiesz pod uwagę powyższy przykład, możemy skrócić czas wykonywania do około 1/5 całkowitego czasu potrzebnego na wykonanie testów na jednej maszynie.

Jeśli pamiętacie z moich poprzednich blogów, wspominałem niezliczoną ilość razy, że Grid był częścią projektu Selenium od jego powstania, czyli od czasu Selenium v1. Selenium Grid był również częścią Selenium v2, a obecnie jest częścią Selenium v3. Nie ma dużej różnicy między wersjami v2 i v3 siatki selenu. Jednak v1 ma wiele różnic w porównaniu. Więczrozumieć różnice między wersjami v1 i v2.

Siatka selenu 1 vs. siatka selenu 2

Podstawowa różnica między Grid v1.0 i v2.0 polega na tym, że RC był używany w Grid 1, a WebDriver był używany w Grid 2. Poniższa tabela szczegółowo wyjaśnia różnice.

Siatka 1 Siatka 2
Wymaga zainstalowania Apache AntInstalacja Apache Ant nie jest wymagana
Posiada własny pilot (różni się od serwera RC)W zestawie z plikiem jar Selenium Server
Obsługuje tylko polecenia Selenium RCObsługuje skrypty Selenium RC i WebDriver
Możesz zautomatyzować tylko jedną przeglądarkę na pilotaMożesz zautomatyzować do 5 przeglądarek na pilota


Teraz, gdy poznaliśmy podstawowe różnice między dwiema wersjami, zagłębmy się głęboko w Siatkę Selenową.

Architektura Siatki Selenowej

Jak wspomniałem wcześniej, Grid działa w oparciu o jeden Hub i wiele Węzłów. Ale czym są węzły i węzły i co robią?

Centrum

W każdej konfiguracji Grid może istnieć tylko jeden Hub i będzie to centralny punkt tej konfiguracji Grid. W tym miejscu należy wczytać wszystkie testy, które należy wykonać. Pomimo ładowanych tutaj testów, zostaną one wykonane tylko w węzłach. Możemy skonfigurować dowolną maszynę hosta, aby była naszym Hubem i będzie koordynować działania związane z wykonywaniem testów na innych hostach.

Aby tak się stało, musimy najpierw skonfigurować centrum, a następnie sprawić, by inne węzły zarejestrowały się w centrum. Zanim przejdę do zbyt wielu szczegółów, pozwól, że pokażę ci polecenie konfiguracji Hub.

Konfigurowanie koncentratora

Najpierw musisz pobrać plik JAR serwera Selenium ze strony internetowej Seleniumhq. Link jest tutaj . Musisz także upewnić się, że Java jest zainstalowana w systemie i że ustawione są zmienne środowiskowe.

Po pobraniu pliku jar należy umieścić go w odpowiednim katalogu. Dla mojej wygody pobrałem go i umieściłem w folderze Selenium na C Drive. Zaleca się również pobranie pliku jar i umieszczenie go w podobnym katalogu we wszystkich pozostałych węzłach.

Aby skonfigurować Hub, musisz uruchomić polecenie w wierszu poleceń systemu Windows. Polecenie znajduje się w poniższym fragmencie.

C: UsersVardhan> cd .. C: Users> cd .. C:> cd Selenium C: Selenium> java -jar selenium-server-standalone-3.4.0.jar -role hub

Plik selenium-server-standalone-3.4.0.jar to nazwa pobranego przeze mnie pliku jar.
Plik -rola Flaga służy do ustawiania tego konkretnego hosta jako koncentratora. Po naciśnięciu Enter na ekranie pojawi się poniższy wynik.

Jeśli nie zauważyłeś powyższego zrzutu ekranu, zobacz go ponownie. To mówi ' -Węzły powinny zarejestrować się pod adresem http://192.168.0.11:4444/grid/register „. Teraz, gdy Hub jest skonfigurowany, musimy skonfigurować węzły i połączyć je z tym Hubem.

192.168.0.11 to adres IP koncentratora i każdy węzeł powinien łączyć się z tym adresem IP. 4444 to domyślny numer portu, na którym jest hostowany Selenium Grid i nasłuchuje żądań. Jeśli jakaś inna usługa działa na porcie 4444 i chcesz, aby Selenium Grid był hostowany na innym porcie, możesz to zrobić, określając -Port flaga, po której następuje numer portu.

Węzły

Węzły to hosty, na których przeprowadzane są testy. Te testy zostaną uruchomione przez centrum. Hub może uruchomić jeden lub więcej węzłów na maszynach zdalnych lub na tej samej maszynie, na której znajduje się samo centrum. Na każdym z węzłów można uruchomić różne systemy operacyjne, a na różnych systemach operacyjnych można zainicjować różne wersje tej samej przeglądarki lub różnych przeglądarek.

Konfiguracja węzłów

Podobnie jak w przypadku Hub, musisz najpierw pobrać plik Jar na komputerach Node i umieścić go na dysku C lub innym wspólnym katalogu dla własnej wygody. Następnie możesz uruchomić poniższe polecenie w wierszu polecenia systemu Windows. Jeśli uruchamiasz nawet węzeł na tej samej maszynie, co twój Hub, musisz uruchomić polecenie, uruchamiając inny wiersz polecenia.

java -Dwebdriver.chrome.driver = E: chromedriver.exe -jar selenium-server-standalone-3.4.0.jar -role node -hub http://192.168.0.11:4444/grid/register

Jest tylko kilka różnic w tym poleceniu w porównaniu z poleceniem potrzebnym do uruchomienia koncentratora.
-Dwebdriver.chrome.driver = E: chromedriver.exe służy do ustawienia ścieżki sterownika przeglądarki. Podobnie jak w przypadku ustawiania ścieżki sterownika przeglądarki w kodzie WebDriver, określasz ją tutaj, aby umożliwić Węzełowi przeprowadzanie testów. Począwszy od Selenium v3, musisz pobrać sterownik przeglądarki Firefox. Sterownik przeglądarki Firefox to sterownik Gecko. Jednak w wersjach 1 i 2 musisz ustawić sterownik przeglądarki dla wszystkich przeglądarek innych niż Firefox.
-rola węzeł Flaga służy do ustawiania tego konkretnego hosta jako węzła.
-hub http://192.168.0.11:4444/grid/register informuje węzeł, aby połączyć się z centrum przy użyciu adresu IP koncentratora. Ważną kwestią, na którą należy zwrócić uwagę, jest to, że jeśli uruchamiasz dowolny węzeł na tej samej maszynie co Twoje centrum, możesz określić „ -hub http: // localhost: 4444 / grid / register „W poleceniu zamiast adresu IP koncentratora.

najlepszy java ide dla Windows

Po naciśnięciu klawisza Enter w wierszu polecenia otrzymasz poniższe dane wyjściowe.

Do tej pory węzeł byłby połączony z Hubem. Możesz to sprawdzić, wracając do wiersza poleceń używanego do uruchamiania centrum, a zobaczysz następujący komunikat: „ Zarejestrowano węzeł http://192.168.0.11:5555 „.

Adres IP i numer portu to adres Twojego węzła. Ponieważ mój węzeł jest na tej samej maszynie, co mój koncentrator, port używany przez węzeł to 5555. Kiedy zainicjujesz go na innej maszynie, zostanie użyty port domyślny.

Gdy uruchomisz następujący adres URL na komputerze swojego centrum, uzyskasz stan węzłów połączonych z Twoim centrum. Zobacz wyróżnioną część na zrzucie ekranu poniżej.

Teraz, gdy Twoja Siatka Selenium jest skonfigurowana, możesz przystąpić do wykonywania skryptów testowych na Węzłach. Pozwólcie, że jeszcze raz podkreślę, że musimy uruchamiać skrypty w naszym Hubie i będą one wykonywane w naszych węzłach. Skrypty używane do wykonywania testów są podobne do WebDrivertesty.

Budowanie siatki selenowej

Uruchomiłem mój skrypt w Eclipse IDE. Wykonanie tego skryptu zależy od dwóch ważnych pakietów bibliotek. Oni są DesiredCapabilities obiekt i RemoteWebDriver obiekt.

DesiredCapabilities służy do ustawiania typu przeglądarki i systemu operacyjnego naszego węzła. Aby zaimportować obiekt DesiredCapabilities, użyj poniższego kodu.

import org.openqa.selenium.remote.DesiredCapabilities

RemoteWebDriver służy do wyboru węzła, na którym chcemy wykonać test. Aby zaimportować obiekt RemoteWebDriver, użyj poniższych linii kodu.

import java.net.MalformedURLException import java.net.URL import org.openqa.selenium.remote.RemoteWebDriver

Zaimportowałem te dwa pakiety wraz z pakietem adnotacji TestNG dla mojego skryptu, jak pokazano w poniższym fragmencie kodu. Zaimportowałem adnotacje TestNG, ponieważ wykonałem to jako test TestNG, dla którego zostanie wygenerowany szczegółowy raport. Poleciłbym zaimportować ten sam zestaw pakietów dla swojego kodu.

Kiedy manewrujesz nad logo dowolnej przeglądarki obecnej w konsoli Selenium Hub, otrzymasz takie szczegóły, jak browserName i Platforma węzła, który chcesz zautomatyzować. Obraz wskazuje również, ile instancji przeglądarek mogę otworzyć w moim Node. Mogę skonfigurować maksymalnie 5 instancji Chrome, 5 Firefox i 1 Internet Explorer. Te szczegóły są obecne na poniższym zrzucie ekranu.

Możesz użyć kodu z poniższego fragmentu, aby skonfigurować swoją pierwszą siatkę.

pakiet GridTest import org.testng.annotations.AfterTest import org.testng.annotations.BeforeTest import org.testng.annotations.Test import java.net.MalformedURLException import java.net.URL import org.junit.Assert import org.openqa.selenium .Platform import org.openqa.selenium.WebDriver import org.openqa.selenium.remote.DesiredCapabilities import org.openqa.selenium.remote.RemoteWebDriver klasa publiczna TestGrid {statyczny sterownik WebDriver statyczny węzeł StringUrl @BeforeTest public void setup {URLEx throws Malformularz nodeUrl = 'http://192.168.0.11:5555/wd/hub' DesiredCapabilitiesabilities = DesiredCapabilities.chrome ()ability.setBrowserName ('chrome' )ability.setPlatform (Platform.WINDOWS) driver = new RemoteWebDriver (nowy adres URL (nodeUrl ), możliwości)} @Test public void simpleTest () Edureka ', driver.getTitle ()) @AfterTest public void afterTest () {driver.quit ()}}

Cały skrypt testowy podzieliłem na trzy adnotacje testowe. @BeforeTest, @Test i @AfterTest. W @BeforeTest użyłem obiektów DesiredCapablities i RemoteWebDriver do skonfigurowania mojego Node. W @Test poprosiłem Node o przejście do strony głównej Edureki i potwierdzenie tytułu strony. W @AfterTest poprosiłem Node o zamknięcie instancji przeglądarki.

Kiedy test przejdzie pomyślnie wykonanie, otrzymasz poniższe dane wyjściowe.

18 maja 2017 15:09:07 org.openqa.selenium.remote.ProtocolHandshake createSession INFO: Wykryty dialekt: OSS PASSED: simpleTest ===================== ========================== Test domyślny Uruchomione testy: 1, niepowodzenia: 0, pominięcia: 0 ========== ===================================== ============= ================================== Domyślny pakiet Liczba uruchomionych testów: 1, niepowodzenia: 0, pominięcia: 0 = ==============================================

Ponieważ jest to wykonywane jako test TestNG, otrzymasz szczegółowy raport z testu podobny do poniższego zrzutu ekranu.

Jeśli nie wiesz, co to jest TestNG i jak używać adnotacji testowych, przeczytaj mój blog o tym, jak używać Selenium WebDriver z TestNG z tej serii samouczków Selenium.

Możesz zobaczyć wideo poniżej, aby zobaczyć, jak zbudować siatkę selenu. Instruktor dostarczający wideo wyjaśnia te same pojęcia, które zostały wyjaśnione na tym blogu.

Samouczek Selenium Grid dla początkujących | Samouczek dotyczący selenu | Edureka

To prowadzi nas do końca tego bloga Selenium Grid. Jeśli masz jakiekolwiek wątpliwości lub problemy z kodem / treścią tej serii blogów, zostaw je w sekcji komentarzy poniżej, a ja rozwiążę Twój problem najwcześniej.

Jeśli chcesz nauczyć się Selenium i zbudować karierę w domenie testowej, sprawdź nasze interaktywne, online na żywo tutaj, który zapewnia wsparcie 24 * 7, które poprowadzi Cię przez cały okres nauki.

Masz do nas pytanie? Wspomnij o tym w sekcji komentarzy, a my skontaktujemy się z Tobą.