selenium grid tutorial
Einführung in Selenium Grid und Durchführen von Cross-Browser-Tests mit Selenium Grid:
Wir sind jetzt kurz vor dem Ende umfassende Selenium-Tutorials . Nächste Woche werden wir diese Online-Selenium-Schulungsreihe mit den Tutorials „Aufwandsschätzung der Selenprojekte“ und „Fragen und Antworten zum Selenium-Interview“ abschließen.
In diesem Tutorial stellen wir Ihnen heute vor Selengitter - a verteilte Testausführung Umgebung, um die Ausführung eines Testdurchlaufs zu beschleunigen. Erfahren Sie, wie Sie Cross-Browser-Tests mit Selenium Grid durchführen.
Was du lernen wirst:
- Was braucht das Selengitter?
- Vorteile des Selengitters
- Installieren Sie Selenium GRID
- Browser und Knoten
- maxInstances
- maxSession
- Beispiel-Grid-Code
- Konfiguration mit JSON-Datei
- Fazit
- Literatur-Empfehlungen
Was braucht das Selengitter?
Da gehst du ganz durch Selenium WebDriver Tutorials Sie werden feststellen, dass WebDriver Ihre Testfälle auf einem einzelnen Computer ausführt.
Hier sind einige Probleme mit einem solchen Setup:
- Was ist, wenn Sie Ihre Testfälle für verschiedene Betriebssysteme ausführen möchten?
- Wie können Sie Ihre Testfälle in einer anderen Version desselben Browsers ausführen?
- Wie können Sie Ihre Testfälle in mehreren Browsern ausführen?
- Warum sollte ein Szenario auf die Ausführung anderer Testfälle warten, auch wenn es nicht von Testfällen abhängt?
All diese Probleme werden in Selenium GRID behandelt.
Während wir mit dem Selenium-Kurs fortfahren, werden wir eine Vorstellung davon bekommen, wie wir diese Probleme überwinden können. Grundsätzlich basiert die Grid-Architektur auf der Master-Slave-Architektur. Die Master-Maschine verteilt Testfälle an verschiedene Slave-Maschinen.
Es sind 2 Versionen von Grid verfügbar. Selenium Grid 2.0 ist das neueste Produkt von Selenium. Selen 1.0 war die frühere Version. Die meisten Selenium-Experten bevorzugen die Verwendung von Selenium Grid 2.0, da es viele neue Funktionen bietet. Selenium Grid 2.0 unterstützt sowohl Selenium RC- als auch Selenium WebDriver-Skripte.
Empfohlenes Tool:
# 1) LambdaTest
Führen Sie Selenium-Automatisierungstests auf einem skalierbaren, sicheren und zuverlässigen Cloud-basierten Selenium Grid online durch. Beschleunigen Sie Ihre Selenium-Testautomatisierung und erhöhen Sie gleichzeitig Ihre Testabdeckung, indem Sie in einer Online-Infrastruktur mit mehr als 2000 Desktop- und mobilen Browserumgebungen testen.
Empfohlene Lektüre = >> Automatisieren Sie Browsertests mit LambdaTest
=> Besuchen Sie die LambdaTest-Website
Vorteile des Selengitters
- Selenium Grid bietet die Flexibilität, Ihre Testfälle zur Ausführung zu verteilen.
- Reduziert die Stapelverarbeitungszeit.
- Kann Tests mit mehreren Browsern durchführen.
- Kann Multi-OS-Tests durchführen.
Grundlegende Terminologie des Selengitters:
Nabe : Hub ist der zentrale Punkt für die gesamte GRID-Architektur, die alle Anforderungen empfängt. Es gibt nur einen Hub im Selengitter. Hub verteilt die Testfälle auf jeden Knoten.
Knoten : Das Raster kann mehrere Knoten enthalten. Tests werden in Knoten ausgeführt. Jeder Knoten kommuniziert mit dem Hub und führt einen ihm zugewiesenen Test durch.
Installieren Sie Selenium GRID
Schritt 1 : Laden Sie die Selenium Server-JAR-Datei von der offiziellen Selenium-Website herunter, die früher als Selenium RC Server bekannt war, und speichern Sie sie an einem beliebigen Ort auf der lokalen Festplatte.
URL des Selen-Hauptquartiers: http://www.seleniumhq.org/download/
Schritt 2 : Öffnen Sie die Eingabeaufforderung und navigieren Sie zu einem Ordner, in dem sich der Server befindet. Führen Sie den Server mit dem folgenden Befehl aus
Java-Jar Selen-Server-Standalone-2.41.0.jar-Rolle Hub
Der Hub verwendet standardmäßig den Port 4444. Dieser Port kann geändert werden, indem die unterschiedliche Portnummer an der Eingabeaufforderung übergeben wird, sofern der Port geöffnet ist und keine Aufgabe zugewiesen wurde.
Der Status kann über die Weboberfläche überprüft werden: http: // localhost: 4444 / grid / console
Schritt 3 : Wechseln Sie zu dem anderen Computer, auf dem Sie Knoten einrichten möchten. Öffnen Sie die Eingabeaufforderung und führen Sie die folgende Zeile aus.
java -jar selenium-server-standalone-2.41.0.jar -role node -hub http://localhost:4444/grid/register -port 5556
Führen Sie den Selenserver auf anderen Computern aus, um Knoten zu starten.
Browser und Knoten
Nach dem Starten von Hub und Knoten auf jedem Computer navigieren Sie zur GRID-Konsole
Sie finden 5 Chrome-, 5 Firefox- und 1 IE-Browser im Browser-Bereich wie unten.
Dies zeigt an, dass Sie standardmäßig 5 Chrome-, 5 Firefox- und 1 IE-Browser verwenden können.
Wenn Sie beispielsweise nur den IE verwenden möchten, können Sie den Knoten mit dem folgenden Befehl starten:
java -jar selenium-server-standalone-2.41.0.jar -role webdriver -hub http://localhost:4444/grid/register -port 5556 -browser browserName=iexplore
Überprüfen Sie den Browsertyp zusammen mit anderen Details in der GRID-Konsole, indem Sie auf klicken Konfiguration anzeigen .
Ähnliches gilt für Firefox:
java -jar selenium-server-standalone-2.41.0.jar -role webdriver -hub http://localhost:4444/grid/register -port 5556 -browser browserName=firefox
Für Chrome:
java -jar selenium-server-standalone-2.41.0.jar -role webdriver -hub http://localhost:4444/grid/register -port 5556 -browser browserName=chrome
Es gibt nur wenige Szenarien, in denen Sie möglicherweise den Browser für jeden Typ benötigen, z. B.: IE, Chrome und Firefox.
Beispielsweise müssen Sie möglicherweise 1 IE und 1 Firefox- und 1 Chrome-Browser verwenden
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
Mit maxInstance wird die Anzahl der Browserinitialisierungen in einem Knoten begrenzt.
Wenn Sie beispielsweise mit 2 Firefox und 2 IE arbeiten möchten, können Sie den Knoten mit maxInstance starten.
java -jar selenium-server-standalone-2.41.0.jar -role webdriver -hub http://localhost:4444/grid/register -port 5556 -browser browserName=firefox,maxInstance=3
Die maximale Instanz kann auf der Registerkarte Konfiguration überprüft werden.
Ebenso können andere Browserinstanzen mit maxInstances konfiguriert werden.
maxSession
Mit maxSession wird konfiguriert, wie viele Browser im Remote-System parallel verwendet werden können.
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
Ebenso können Sie mehrere Knoten starten und die Konfiguration in der Konsole überprüfen.
NODE1:
NODE2:
Beispiel-Grid-Code
Hier habe ich TestNG verwendet, um einen Beispiel-GRID-Testfall auszuführen.
Voraussetzung : Erstellen Sie Hub und Knoten wie zuvor erläutert, und TestNG sollte in Eclipse konfiguriert werden.
Hier habe ich einen Beispieltest durchgeführt, um mich bei Google Mail anzumelden und Benutzername und Passwort einzugeben
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(); }
Wie im Beispiel müssen Sie RemoteWebDriver verwenden, wenn Sie das GRID verwenden, und Sie müssen dem Browser Funktionen bereitstellen. Sie müssen den Browser und die Plattform wie oben einstellen.
pl sql Interview Fragen und Antworten pdf
In diesem Beispiel habe ich die Plattform als WINDOWS verwendet. Sie können jede Plattform gemäß Ihren Anforderungen verwenden.
Eine Version des Browsers kann auch mit dr.setVersion („Version“) festgelegt werden.
Zum Beispiel müssen Sie diesen Test seriell in mehreren Browsern ausführen. Sie müssen Ihre testng.xml konfigurieren. Nachfolgend finden Sie die testng.XML-Suite für den obigen Test, um Ihren Test seriell auszuführen.
Um den Test parallel auszuführen, müssen Sie Ihre testng.xml wie folgt ändern.
Hier in der testng.XML müssen Sie den Parameter als angeben parllel = 'Tests' und Fadenzahl = '3' beschreibt die maximale Anzahl von Threads, die parallel ausgeführt werden sollen.
Konfiguration mit JSON-Datei
Das Grid kann auch zusammen mit seiner Konfiguration mithilfe einer JSON-Konfigurationsdatei gestartet werden.
Erstellen Sie eine JSON-Datei für die folgende Konfiguration. Hier habe ich eine JSON-Datei mit dem Namen grid_hub.json erstellt
{ '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 }
Starten Sie den Hub mit dem folgenden Befehl
java -jar selenium-server-standalone-2.41.0.jar -role hub –hubConfig grid_hub.json
Erstellen Sie auf ähnliche Weise je nach erforderlicher Konfiguration unterschiedliche JSON-Dateien für unterschiedliche Knoten.
Hier ist ein Beispiel für eine JSON-Konfigurationsdatei für einen Knoten mit dem Namen 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, } }
So starten Sie den Knoten
java -jar selenium-server-standalone-2.41.0.jar -role rc –nodeConfig grid_node.json
Sie können die gesamte Konfiguration eines Browsers, von maxInstances, port, maxSession usw. in der JSON-Datei ändern.
Sie können die Browserversion der Plattform in der JSON-Konfigurationsdatei wie folgt bereitstellen:
{
'Browsername': 'Chrome', 'Version': '8', 'Plattform': 'Windows'
}}
Fazit
Es ist ratsam zu Verwenden Sie Selenium Grid, wenn Sie Tests mit mehreren Browsern durchführen müssen und eine große Anzahl von Testfällen haben.
In diesem Modul wurde erläutert, wie Sie einen Grid-Hub und -Knoten einrichten und wie Sie Grid-Testfälle mit den Dateien testng.XML und JSON ausführen.
Nächstes Tutorial Nr. 30 :: Automatisierungstests mit Selen- und Gurkenwerkzeug . Gurke ist ein BDD-Test Werkzeug und Framework. Wir werden die Funktionen des Gurken-Tools und seine Verwendung in Echtzeitszenarien kennenlernen, einschließlich So integrieren Sie Selenium WebDriver in Cucumber .
Bitte posten Sie Ihre Fragen zu Selenium Grid in den Kommentaren unten.
Literatur-Empfehlungen
- Docker Selenium Tutorial: So integrieren Sie Selenium Grid in Docker
- Automatisierungstests mit Gurkenwerkzeug und Selen - Selen-Tutorial Nr. 30
- Cucumber Selenium Tutorial: Integration von Cucumber Java Selenium WebDriver
- Spock für Integration und Funktionstests mit Selen
- Ausführliche Eclipse-Tutorials für Anfänger
- Einführung in Selenium WebDriver - Selenium Tutorial # 8
- Geb Tutorial - Browser Automation Testing Using Geb Tool
- Parrot QA Tutorial: Überprüfung des Cross-Browser-Funktionstests