selenium grid tutorial
Wprowadzenie do siatki selenu i jak przeprowadzać testy w różnych przeglądarkach za pomocą siatki selenu:
Jesteśmy już blisko końca obszerna seria samouczków Selenium . W przyszłym tygodniu zakończymy tę internetową serię Szkoleń Selenium samouczkami „Ocena wysiłku projektów Selenium” oraz „Pytania i odpowiedzi Selenium Interview”.
Dziś w tym samouczku przedstawimy Ci Siatka selenowa - a rozproszone wykonywanie testów środowisko, aby przyspieszyć wykonanie testu. Dowiedz się, jak przeprowadzić testy w różnych przeglądarkach za pomocą Selenium Grid.
Czego się nauczysz:
- Jaka jest potrzeba siatki selenowej?
- Korzyści z siatki selenowej
- Zainstaluj Selenium GRID
- Przeglądarka i węzły
- maxInstances
- maxSession
- Przykładowy kod sieci
- Konfiguracja za pomocą pliku JSON
- Wniosek
- rekomendowane lektury
Jaka jest potrzeba siatki selenowej?
Kiedy przechodzisz przez cały Samouczki Selenium WebDriver dowiesz się, że WebDriver wykona Twoje przypadki testowe na jednej maszynie.
Oto kilka problemów z taką konfiguracją:
- A co, jeśli chcesz wykonywać przypadki testowe dla różnych systemów operacyjnych?
- Jak uruchomić przypadki testowe w różnych wersjach tej samej przeglądarki?
- Jak uruchomić przypadki testowe w wielu przeglądarkach?
- Dlaczego scenariusz miałby czekać na wykonanie innych przypadków testowych, nawet jeśli nie zależy od żadnych przypadków testowych?
Wszystkie te problemy rozwiązuje Selenium GRID.
Kontynuując kurs Selenium, dowiemy się, jak możemy przezwyciężyć te problemy. Zasadniczo architektura Grid jest oparta na architekturze master-slave. Maszyna główna rozdziela przypadki testowe do różnych maszyn podrzędnych.
Dostępne są 2 wersje Grid. Selenium Grid 2.0 to najnowszy produkt Selenium. Selenium 1.0 był wcześniejszą wersją. Większość ekspertów Selenium woli używać Selenium Grid 2.0, ponieważ jest on wyposażony w nowe funkcje. Selenium Grid 2.0 obsługuje zarówno skrypty Selenium RC, jak i Selenium WebDriver.
Zalecane narzędzie:
1) LambdaTest
Wykonuj testy automatyzacji Selenium na skalowalnej, bezpiecznej i niezawodnej sieci Selenium Grid opartej na chmurze. Przyspiesz automatyzację testów Selenium w tym samym czasie zwiększ zasięg testów, testując w infrastrukturze online 2000+ środowisk stacjonarnych i mobilnych.
Sugerowana lektura = >> Zautomatyzuj testowanie przeglądarki za pomocą LambdaTest
=> Odwiedź witrynę LambdaTest
Korzyści z siatki selenowej
- Selenium Grid zapewnia elastyczność dystrybucji przypadków testowych do wykonania.
- Skraca czas przetwarzania wsadowego.
- Potrafi przeprowadzać testy w wielu przeglądarkach.
- Potrafi przeprowadzać testy na wielu systemach operacyjnych.
Podstawowa terminologia siatki selenu:
Centrum : Hub to centralny punkt całej architektury GRID, do którego trafiają wszystkie żądania. W siatce selenu jest tylko jeden hub. Hub dystrybuuje przypadki testowe w każdym węźle.
Węzeł : W Grid może być wiele węzłów. Testy będą działać w węzłach. Każdy węzeł komunikuje się z koncentratorem i wykonuje przypisane do niego testy.
Zainstaluj Selenium GRID
Krok 1 : Pobierz plik jar Selenium Server z oficjalnej strony Selenium, która wcześniej była znana jako Selenium RC Server i zapisz go w dowolnym miejscu na dysku lokalnym.
Adres URL siedziby selenu: http://www.seleniumhq.org/download/
Krok 2 : Otwórz wiersz polecenia i przejdź do folderu, w którym znajduje się serwer. Uruchom serwer za pomocą poniższego polecenia
java -jar selenium-server-standalone-2.41.0.jar -role hub
Koncentrator będzie domyślnie używać portu 4444. Ten port można zmienić, przekazując inny numer portu w wierszu polecenia, pod warunkiem, że port jest otwarty i nie przypisano mu zadania.
Status można sprawdzić za pomocą interfejsu internetowego: http: // localhost: 4444 / grid / console
Krok 3 : Przejdź do innego komputera, na którym chcesz skonfigurować węzły. Otwórz wiersz polecenia i uruchom poniższą linię.
java -jar selenium-server-standalone-2.41.0.jar -role node -hub http://localhost:4444/grid/register -port 5556
Uruchom serwer selenium na innych maszynach, aby uruchomić węzły.
Przeglądarka i węzły
Po uruchomieniu koncentratora i węzłów na każdym komputerze, gdy przejdziesz do konsoli GRID
Znajdziesz 5 Chrome, 5 Firefox i 1 IE w sekcji Przeglądarka, jak poniżej.
Oznacza to, że domyślnie możesz używać 5 Chrome, 5 Firefox i 1 IE.
Na przykład, jeśli chcesz używać tylko IE, możesz uruchomić węzeł za pomocą poniższego polecenia:
java -jar selenium-server-standalone-2.41.0.jar -role webdriver -hub http://localhost:4444/grid/register -port 5556 -browser browserName=iexplore
Sprawdź typ przeglądarki i inne szczegóły w konsoli GRID, klikając zobacz konfigurację .
Podobnie dla przeglądarki Firefox:
java -jar selenium-server-standalone-2.41.0.jar -role webdriver -hub http://localhost:4444/grid/register -port 5556 -browser browserName=firefox
Chrome:
java -jar selenium-server-standalone-2.41.0.jar -role webdriver -hub http://localhost:4444/grid/register -port 5556 -browser browserName=chrome
Istnieje kilka scenariuszy, w których możesz potrzebować przeglądarki każdego typu, np .: IE, Chrome i Firefox.
Na przykład może być konieczne użycie 1 przeglądarki IE i 1 przeglądarki Firefox oraz 1 przeglądarki Chrome
java -jar selenium-server-standalone-2.41.0.jar -role webdriver -hub http://localhost:4444/grid/register -port 5556 -browser browserName=iexplore -browser browserName=firefox -browser browserName=chrome
maxInstances
maxInstance służy do ograniczenia liczby inicjalizacji przeglądarki w węźle.
Na przykład, jeśli chcesz pracować z 2 przeglądarkami Firefox i 2 IE, możesz uruchomić węzeł za pomocą maxInstance.
java -jar selenium-server-standalone-2.41.0.jar -role webdriver -hub http://localhost:4444/grid/register -port 5556 -browser browserName=firefox,maxInstance=3
Maksymalna instancja może zostać zweryfikowana w zakładce konfiguracji.
Podobnie inne instancje przeglądarki można skonfigurować za pomocą maxInstances.
maxSession
maxSession służy do konfigurowania liczby przeglądarek, które mogą być używane równolegle w systemie zdalnym.
java -jar selenium-server-standalone-2.41.0.jar -role webdriver -hub http://localhost:4444/grid/register -port 5556 -browser browserName=chrome,maxInstance=3 -browser browserName=firefox,maxInstance=3 –maxSession 3
Podobnie możesz uruchomić wiele węzłów, a konfigurację można zweryfikować w konsoli.
WĘZEŁ1:
WĘZEŁ 2:
Przykładowy kod sieci
Tutaj użyłem TestNG do uruchomienia przykładowego przypadku testowego GRID.
Warunek wstępny : Utwórz centrum i węzły, jak wyjaśniono wcześniej, a TestNG należy skonfigurować w zaćmieniu.
Tutaj zrobiłem przykładowy test, aby zalogować się do Gmaila i wprowadzić nazwę użytkownika i hasło
public class GridExample { @Test public void mailTest() throws MalformedURLException{ DesiredCapabilities dr=null; if(browserType.equals('firefox')){ dr=DesiredCapabilities.firefox(); dr.setBrowserName('firefox'); dr.setPlatform(Platform.WINDOWS); }else{ dr=DesiredCapabilities.internetExplorer(); dr.setBrowserName('iexplore'); dr.setPlatform(Platform.WINDOWS); } RemoteWebDriver driver=new RemoteWebDriver(new URL('http://localhost:4444/wd/hub'), dr); driver.navigate().to('http://gmail.com'); driver.findElement(By.xpath('//input(@id='Email')')) .sendKeys('username'); driver.findElement(By.xpath('//input(@id='Passwd')')) .sendKeys('password'); driver.close(); }
Tak jak w przykładzie, musisz użyć RemoteWebDriver, jeśli używasz GRID i musisz udostępnić możliwości przeglądarki. Musisz ustawić przeglądarkę i platformę jak powyżej.
prosty algorytm sortowania c ++
W tym przykładzie użyłem platformy jako WINDOWS. Możesz użyć dowolnej platformy zgodnie ze swoimi wymaganiami.
Wersję przeglądarki można również ustawić za pomocą dr.setVersion („wersja”)
Na przykład, musisz uruchamiać ten test szeregowo w wielu przeglądarkach, musisz skonfigurować swój testng.xml. Poniżej znajduje się zestaw testng.XML do powyższego testu, aby uruchamiać go seryjnie.
Aby uruchomić test równolegle, musisz zmienić plik testng.xml jak poniżej.
Tutaj w testng.XML musisz określić parametr jako parllel = „Testy” i ilość wątków = „3” opisuje maksymalną liczbę wątków, które mają być wykonywane równolegle.
Konfiguracja za pomocą pliku JSON
Siatkę można również uruchomić wraz z jej konfiguracją za pomocą pliku konfiguracyjnego JSON.
Utwórz plik JSON, aby mieć poniższą konfigurację. Tutaj utworzyłem plik JSON o nazwie grid_hub.json
{ 'host': null, 'port': 4444, 'newSessionWaitTimeout': -1, 'servlets' : (), 'prioritizer': null, 'capabilityMatcher': 'org.openqa.grid.internal.utils.DefaultCapabilityMatcher', 'throwOnCapabilityNotPresent': true, 'nodePolling': 5000, 'cleanUpCycle': 5000, 'timeout': 300000, 'maxSession': 5 }
Uruchom koncentrator za pomocą poniższego polecenia
java -jar selenium-server-standalone-2.41.0.jar -role hub –hubConfig grid_hub.json
Podobnie utwórz inny plik json dla różnych węzłów zgodnie z wymaganą konfiguracją.
Oto przykład pliku konfiguracyjnego JSON dla węzła o nazwie grid_node.json
{ 'capabilities': ( { 'browserName': 'chrome', 'maxInstances': 2 }, { 'browserName': 'firefox', 'maxInstances': 2 }, { 'browserName': 'internet explorer', 'maxInstances': 1 } ), 'configuration': { 'nodeTimeout':120, 'port':5555, 'hubPort':4444, 'hubHost':'localhost', 'nodePolling':2000, 'registerCycle':10000, 'register':true, 'cleanUpCycle':2000, 'timeout':30000, 'maxSession':5, } }
Aby uruchomić węzeł
java -jar selenium-server-standalone-2.41.0.jar -role rc –nodeConfig grid_node.json
Możesz zmienić całą konfigurację przeglądarki, maxInstances, port, maxSession itp. W pliku JSON.
Możesz podać wersję przeglądarki, platformę w pliku konfiguracyjnym JSON, jak poniżej:
{
„BrowserName”: „chrome”, „version”: ”8”, „platforma”: „Windows”
}
Wniosek
Wskazane jest, aby używaj Selenium Grid, gdy musisz przeprowadzić testy w wielu przeglądarkach i masz dużą liczbę przypadków testowych.
W tym module omówiliśmy, jak skonfigurować centrum Grid i węzły, a także jak uruchamiać przypadki testowe Grid przy użyciu pliku testng.XML i JSON.
Następny samouczek # 30 : Testowanie automatyczne za pomocą narzędzia Selenium and Cucumber . Ogórek to test BDD narzędzie i ramy. Poznamy funkcje narzędzia Cucumber i jego użycie w scenariuszach czasu rzeczywistego, w tym jak zintegrować Selenium WebDriver z Cucumber .
Prosimy o umieszczanie zapytań związanych z Selenium Grid w komentarzach poniżej.
rekomendowane lektury
- Samouczek Docker Selenium: Jak zintegrować Selenium Grid z Dockerem
- Testowanie automatyzacji przy użyciu narzędzia Cucumber i selenu - samouczek dotyczący selenu nr 30
- Cucumber Selenium Tutorial: Integracja Cucumber Java Selenium WebDriver
- Spock do integracji i testowania funkcjonalnego z selenem
- Dogłębne samouczki dotyczące Eclipse dla początkujących
- Wprowadzenie do Selenium WebDriver - samouczek Selenium # 8
- Geb Tutorial - Testowanie automatyzacji przeglądarki za pomocą narzędzia Geb
- Samouczek Parrot QA: Przegląd narzędzia do testowania funkcjonalnego w różnych przeglądarkach