Selenium Grid-Tutorial: Hub und Knoten einrichten
⚡ Intelligente Zusammenfassung
Selenium Grid führt mithilfe einer Hub-Node-Architektur parallel mehrere Tests auf verschiedenen Browsern, Betriebssystemen und Rechnern aus. Der Hub lädt die Tests auf einem Rechner, während die Nodes sie auf anderen ausführen. Dies ermöglicht eine schnellere browserübergreifende Testabdeckung durch Konfiguration über die Kommandozeile oder JSON.

Was ist Selenium Netz?
Selenium Gitter Ist ein Teil der Selenium Suite, die darauf spezialisiert ist, mehrere Tests parallel über verschiedene Browser, Betriebssysteme und Rechner auszuführen. Dies wird erreicht, indem die Befehle von Remote-Browserinstanzen weitergeleitet werden, wobei ein Server als Hub fungiert. Ein Benutzer muss den Remote-Server konfigurieren, um die Tests ausführen zu können.
Selenium Grid hat zwei Versionen – die ältere Grid 2 und die neuere Grid 1. Wir werden uns nur auf Grid 2 konzentrieren, da Grid 2 nach und nach von der veraltet ist Selenium Mannschaft.
Selenium Gitter Architektur
Selenium Grid hat einen Hub und einen Knoten ArchiStruktur.

Hub
- Der Hub ist der zentrale Punkt, an dem Sie Ihre Tests laden.
- Es sollte nur einen Hub in einem Raster geben.
- Der Hub wird nur auf einer einzelnen Maschine gestartet, beispielsweise einem Computer, dessen Betriebssystem vorhanden ist Windows 7 und dessen Browser IE ist.
- Auf dem Computer, der den Hub enthält, werden die Tests ausgeführt. Sie werden jedoch sehen, wie der Browser auf dem Knoten automatisiert wird.
Nodes
- Knoten sind die Selenium Instanzen, die die Tests ausführen, die Sie auf den Hub geladen haben.
- In einem Raster können ein oder mehrere Knoten vorhanden sein.
- Knoten können auf mehreren Maschinen mit unterschiedlichen Plattformen und Browsern gestartet werden.
- Die Maschinen, auf denen die Knoten laufen, müssen nicht dieselbe Plattform haben wie die des Hubs.
Selenium Grid verwendet ein Hub-Knoten-Konzept, bei dem Sie den Test nur auf einer einzelnen Maschine namens a ausführen Nabe, aber die Ausführung erfolgt durch verschiedene aufgerufene Maschinen Fiber Node.
Wie stellt man das ein Selenium Netz?
In diesem Abschnitt verwenden Sie zwei Maschinen. Der erste Computer ist das System, auf dem der Hub ausgeführt wird, während auf dem anderen Computer ein Knoten ausgeführt wird. Der Einfachheit halber nennen wir die Maschine, auf der der Hub läuft, „Maschine A“, während die Maschine, auf der der Knoten läuft, „Maschine B“ ist. Es ist auch wichtig, ihre IP-Adressen zu notieren. Nehmen wir an, Maschine A hat die IP-Adresse 2, während Maschine B die IP-Adresse 192.168.1.3 hat.
Schritt 1) Laden Sie Selenium Server von werden auf dieser Seite erläutert.
Schritt 2) Sie können die platzieren Selenium Server-.jar-Datei irgendwo auf Ihrer Festplatte. Für dieses Tutorial legen Sie es jedoch auf dem Laufwerk C von Maschine A und Maschine B ab. Danach ist die Installation abgeschlossen Selenium Grid. Die folgenden Schritte starten den Hub und den Knoten.
Schritt 3)
- Wir werden jetzt einen Hub starten. Gehen Sie zu Maschine A. Navigieren Sie über die Eingabeaufforderung zum Stammverzeichnis von Maschine A – Laufwerk C, denn das ist das Verzeichnis, in dem wir die Datei abgelegt haben Selenium Server.
- Geben Sie an der Eingabeaufforderung Folgendes ein: java -jar selenium-server-standalone-2.30.0.jar -role hub
- Der Hub sollte erfolgreich gestartet werden. Ihre Eingabeaufforderung sollte etwa wie im Bild unten aussehen.
Schritt 4) Eine andere Möglichkeit, zu überprüfen, ob der Hub ausgeführt wird, ist die Verwendung eines Browsers. Selenium Grid verwendet standardmäßig den Port 4444 von Maschine A für seine Webschnittstelle. Öffnen Sie einfach einen Browser und gehen Sie zu http://localhost:4444/grid/console
Außerdem können Sie überprüfen, ob Maschine B auf die Weboberfläche des Hubs zugreifen kann, indem Sie dort einen Browser starten und zu „iporhostnameofmachineA“ gehen, wo die IP-Adresse oder der Hostname des Computers stehen sollte, auf dem der Hub läuft. Da die IP-Adresse von Maschine A 192.168.1.3 lautet, sollten Sie im Browser von Maschine B Folgendes eingeben: http://192.168.1.3:4444/grid/console
Schritt 5)
- Da der Hub nun bereits eingerichtet ist, werden wir einen Knoten starten. Gehen Sie zu Maschine B und starten Sie dort eine Eingabeaufforderung.
- Navigieren Sie zum Stammverzeichnis von Laufwerk C und geben Sie den folgenden Code ein. Wir haben die IP-Adresse 192.168.1.3 verwendet, da dort der Hub läuft. Wir haben auch Port 5566 verwendet, Sie können jedoch jede beliebige freie Portnummer wählen.
- HINWEIS: Bei Verwendung müssen Sie jetzt den Pfad zum Gecko-Treiber angeben Firefox. Hier ist aktualisierter Code, der verwendet werden muss
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
- Wenn Sie die Eingabetaste drücken, sollte Ihre Eingabeaufforderung der Abbildung unten ähneln.
Schritt 6) Gehen Sie zur Selenium Rastern Sie die Weboberfläche und aktualisieren Sie die Seite. Sie sollten so etwas sehen.
Zu diesem Zeitpunkt haben Sie bereits ein einfaches Raster konfiguriert. Sie sind jetzt bereit, einen Test remote auf Maschine B durchzuführen.
Wann zu verwenden Selenium Netz?
Du solltest benutzen Selenium Raster, wenn Sie eine oder beide der folgenden Aktionen ausführen möchten:
- Führen Sie Ihre Tests gleichzeitig mit verschiedenen Browsern, Betriebssystemen und Computern aus. Dadurch wird sichergestellt, dass die Anwendung, die Sie benötigen Tests ist vollständig kompatibel mit einer Vielzahl von Browser-Betriebssystem-Kombinationen.
- Sparen Sie Zeit bei der Ausführung Ihrer Testsuiten. Wenn Sie es einrichten Selenium Wenn Sie Grid beispielsweise vier Tests gleichzeitig ausführen lassen, könnten Sie die gesamte Suite etwa viermal schneller fertigstellen.
Grid 1.0 vs. Grid 2.0
Nachfolgend sind die Hauptunterschiede zwischen Selenium Gitter 1 und 2.
| Raster 1 | Raster 2 |
|---|---|
| Selenium Grid 1 verfügt über eine eigene Fernbedienung, die sich von der unterscheidet Selenium RC-Server. Es sind zwei verschiedene Programme. | Selenium Grid 2 ist jetzt im Lieferumfang enthalten Selenium Server-JAR-Datei |
| Sie müssen installieren und konfigurieren Apache Ant zuerst, bevor Sie Grid 1 verwenden können. | Sie müssen Apache Ant nicht in Grid 2 installieren. |
| Kann nur unterstützen Selenium RC-Befehle/Skripte. | Kann beides unterstützen Selenium RC- und WebDriver-Skripte. |
| Sie können nur einen Browser pro Fernbedienung automatisieren. | Eine Fernbedienung kann bis zu 5 Browser automatisieren. |
Selenium Das Raster kann auf zwei verschiedene Arten eingerichtet werden; eine über die Befehlszeile und die andere über die JSON-Konfigurationsdatei.
Entwerfen von Testskripten, die im Grid ausgeführt werden können
Um Testskripte zu entwerfen, die im Raster ausgeführt werden, müssen wir Folgendes verwenden Gewünschte Fähigkeiten und der RemoteWebDriver Objekte.
- Gewünschte Fähigkeiten wird verwendet, um den Typ festzulegen Browser und OS dass wir automatisieren werden.
- RemoteWebDriver wird verwendet, um festzulegen, auf welchem Knoten (oder welcher Maschine) unser Test ausgeführt wird.
So verwenden Sie die Gewünschte Fähigkeiten Um ein Objekt zu erstellen, müssen Sie dieses Paket zunächst importieren
So verwenden Sie die RemoteWebDriver Objekt, müssen Sie diese Pakete importieren.
Verwenden des DesiredCapabilites-Objekts
Gehen Sie zur Weboberfläche des Grids und bewegen Sie den Mauszeiger auf ein Bild des Browsers, den Sie automatisieren möchten. Beachten Sie die Plattform, und der Browsername wird im Tooltip angezeigt.
In diesem Fall ist die Plattform „XP“ und der Browsername ist „Firefox"
Wir verwenden die Plattform und den Browsernamen in unserem WebDriver wie unten gezeigt (natürlich müssen Sie zuerst die erforderlichen Pakete importieren).
Verwenden des RemoteWebDriver-Objekts
Importieren Sie die erforderlichen Pakete für RemoteWebDriver und übergeben Sie dann das DesiredCapabilities-Objekt, das wir oben erstellt haben, als Parameter für das RemoteWebDriver-Objekt.
Ausführen eines Beispieltestfalls im Grid
Unten ist ein einfacher WebDriver Testng Code, den Sie erstellen können Eclipse auf Maschine A. Sobald Sie es ausführen, wird die Automatisierung auf Maschine B durchgeführt.
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()); } }
Der Test sollte bestehen.
![]() |
![]() |
Selenium Rasterkonfiguration mithilfe einer JSON-Datei
JSON steht für Javascript Objektnotation. Dies ist ein Standardformat für den Datenaustausch zwischen Browser und Webserver. Selenium verfügt über eine integrierte JSON-Konfigurationsdatei, die zum Einrichten des Selenium-Grids verwendet werden kann.
Nachfolgend finden Sie die Schritte zum Konfigurieren des Selenium-Grids mithilfe einer JSON-Konfigurationsdatei.
Schritt 1) Laden Sie den Code für die JSON-Konfigurationsdatei über den folgenden Pfad herunter
Hier ist der Code
{
"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
}
Schritt 2) Kopieren Sie den Code und fügen Sie ihn mit der Erweiterung „.json“ in einen Texteditor wie Notepad ein.
Schritt 3) Starten Sie den Hub mit dem folgenden Befehl über die Eingabeaufforderung
java -jar selenium-server-standalone-2.53.1.jar -role hub -hubConfig hubconfig.json
Anmerkungen: Selenium Die eigenständige JAR-Datei und die JSON-Datei müssen im selben Verzeichnis vorhanden sein
Schritt 4) Der folgende Bildschirm wird angezeigt und zeigt an, dass der Hub erfolgreich eingerichtet wurde
Schritt 5) Öffnen Sie Ihren Webbrowser und versuchen Sie, eine Verbindung zu folgendem herzustellen: URL
http://192.168.43.223:4444/grid/console
Anmerkungen: Das URL kann von Maschine zu Maschine variieren. URL Anschließend muss auf dem obigen Bildschirm die Option „Knoten sollten sich registrieren“ verwendet werden.
Schritt 6) Der Bildschirm der Grid-Konsole wird angezeigt, der anzeigt, dass der Hub betriebsbereit ist
Konfigurieren Sie NODES mit JSON
Schritt 1) Laden Sie die Beispielknotenkonfigurationsdatei herunter, die von bereitgestellt wird Selenium unter Verwendung des untenstehenden URL
Anmerkungen: WENN SIE SELENIUM 3.0 ODER HÖHER VERWENDEN, MUSS DIE FOLGENDE JSON-DATEI VERWENDET WERDEN
Schritt 2) Kopieren Sie den Code, fügen Sie ihn in einen Texteditor wie Notepad ein und speichern Sie die Datei mit der Erweiterung „.json“.
Schritt 3)
Führen Sie den folgenden Befehl an der Eingabeaufforderung aus
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
Anmerkungen: Bevor Sie den Befehl ausführen, stellen Sie bitte sicher, dass die Treiber für jeden Browser in das lokale Maschinenverzeichnis heruntergeladen wurden
Schritt 4) Der folgende Bildschirm erscheint, wenn die Eingabetaste gedrückt wird
Schritt 5) Navigieren Sie zur Grid-Konsole, um zu überprüfen, ob die Knoten erfolgreich konfiguriert wurden
Die Browser werden auf der Grid-Konsole angezeigt. So können wir sicher sein, dass die Knoten erfolgreich konfiguriert wurden.
Beispieltestfälle ein Selenium Gitter:
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 = "https://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"); } } }
Der obige Code startet den Chrome-Browser und navigiert zu URL im 'Basisverzeichnis' angegebenURLDie Variable überprüfte, ob auf der Seite ein Link mit dem Namen „Mobile Testing“ angezeigt wird.
URL auf dem KnotenURLDie Variable kann so angepasst werden, dass sie die IP-Adresse des Remote-Rechners widerspiegelt. Das Testergebnis kann auf dem Standardrechner überprüft werden. TestNG Bericht erstellt







.png)






