Als Tester oder erfahrener Web-Entwickler müssen Sie Ihre Anwendungen auf Bugs und Leistung in allen verfügbaren Browsern und Betriebssystemen testen. Aber mit so vielen Abhängigkeiten in der Hand, und zwar nicht nur verschiedene Browser, sondern auch verschiedene Versionen, wird das sicherlich eine große Aufgabe.
Am wichtigsten ist, dass alle diese Prozesse automatisiert werden müssen, um das Maximum zu erreichen, denn in großen Unternehmen wäre es kostspielig, Testfälle und Pipelines individuell zu erstellen, und das würde die eindeutig am unerwünschtestenste Art und Weise sein. Jetzt kommt hier Selenium Grid ins Spiel, ein breit verwendetes serverbasierte Testautomatisierungswerkzeug.
Was ist Selenium Grid?
Selenium Grid ist ein Werkzeug, das für parallel und kontinuierliches Testing über mehr als einen Browser und Umgebung verwendet wird. Es ermöglicht es Ihnen, Tests gleichzeitig auf verschiedenen Maschinen gegen verschiedene Browser und Betriebssysteme auszuführen. Der Zweck von Selenium Grid besteht darin, die Testausführungslast auf mehrere Maschinen auszuteilen, was die Ausführung einer großen Anzahl von Tests schneller macht.
Die Architektur von Selenium Grid betrifft hauptsächlich einen Hub und viele Knoten. Der Hub agiert als zentraler Punkt, an dem Testanfragen gesendet werden müssen. Knoten sind die Maschinen (physisch oder virtuell), wo die Tests ausgeführt werden. Der Hub weiterleitet die Testausführungsanfragen an die entsprechenden Knoten basierend auf den in den Testskripten angegebenen gewünschten Browser- und Plattformkonfigurationen.
Selenium Grid unterstützt verschiedene Konfigurationen und verteilte Tests, einschließlich paralleler Ausführung und selektiver Browser-Fähigkeitsprüfungen. Es wird häufig in automatisierten Tests verwendet, um Kompatibilität und Funktionalität über verschiedene Browser und Plattformen hinweg zu gewährleisten.
Warum ist Selenium Grid notwendig?
Sie könnten sehr interessiert sein, zu verstehen, warum wir es überhaupt brauchen. Wenn wir es speziell anschauen, gehört es zur Selenium-Suite, die auch andere Software und Features wie Selenium WebDriver und Selenium IDE beinhaltet, und wir haben gesehen, wie es Browser wie Chrome, Microsoft Edge, Opera, Safari und alle ihre verschiedenen Versionen unterstützt. Außerhalb dessen kann es diese Browser auch auf mehreren Betriebssystemen ausführen, um eine End-to-End-Testumgebung zu schaffen. being open-source, it is also freely available and gets the fastest updates and developments with complete accessibility to all the information.
Selenium Grid Architektur
Lassen Sie uns die Architektur von Selenium Grid verstehen. Selenium Grid arbeitet im Hub- und Knotenmodell, wo ein Hub mit mehreren Knoten verbunden ist und auf verschiedenen Maschinen, Browser und verschiedenen Versionen ihrer Browser ausgeführt werden kann.
Der Hub agiert als zentraler Punkt innerhalb des Selenium-Grids und leitet Testbefehle an die Knoten weiter. Er empfängt auch Testanfragen vom Client und leitet sie an die benötigten Knoten weiter. Der Hub wird auf einer einzigen Maschine mit einer bestimmten Betriebssystemversion und einem Browser mit den vollständigen Test-Browsern und ihren Versionen gestartet und verfügt auch über die Möglichkeit, auf mehreren Geräten mit kompatiblen Betriebssystemen zu installiert werden.
Selenium hat auch andere Komponenten in der Architektur definiert, die detailliert auf seiner Webseite erklärt werden, was nützlich ist, um Selenium in dessen vollständig verteilten Modus mit Routen, Sitzungen und Verteilersystemen korrekt zu betreiben. Angesichts des nun verfügbaren Hintergrundwissens über SeleniumGrid können wir
vier einfache Schritte durchführen, um Selenium Grid zu installieren und zu verwenden:
Schritt 1
In Schritt 1 laden wir schnell die Voraussetzungen ein.
Zunächst müssen wir sicherstellen, dass wir die neueste Version von Java oder Java 11 und höher ausführen. Dies kann von der offiziellen Webseite heruntergeladen werden.
Anschließend müssen wir alle erforderlichen Browser installieren, die wir testen möchten. Wir werden ein Chrome-Browser-Treiber mit der Version 123 verwenden, um auf dem Chrome-Browser zuzugreifen. Vergessen wir nicht, dass die Versionen von Browser und Treiber gleich sein müssen, um die Selenium-Server zu betreiben. Und schließlich werde ich Eclipse IDE verwenden, da diese Demo auf Java basiert. Diese IDE kann von der offiziellen Eclipse-Webseite heruntergeladen werden.
Für die letzte Voraussetzung müssten wir den neusten Selenium Grid Server von der offiziellen Selenium-Webseite
Schritt 2
Nun beginnen wir mit Schritt 2. Für Schritt 2 habe ich einen neuen Ordner erstellt und meinen Selenium-Server und den Chrome-Driver, den ich für diese Demo verwenden werde, hineingepast.
package Selenium_test1 ;
import java.net.MalformedURLException;
public class test1{
String hubUrl ="https://10.20.31.20";
String url ="https://www.world.co/search";
WebDriver driver;
public void setupGrid()
{
DesiredCapabilities ds= new DesiredCapabilities();
ds.setCapability("browserName", "Chrome");
try{
driver = new RemoteWebDriver( new URL(hubUrl),ds);
} catch (malformedURLException e){
e.printSTackTrace();
}
driver.get(url);
}
public void pageTitleValidation(){
String title = driver.getTitle();
System.out.println("page title :" +title);
}
public static void main(String[] args)
{
test1 obj = new test1();
obj.setupGrid();
obj.pageTitleValidation();
}
}
Schritt 3
Jetzt geht es zu Schritt 3. Ich habe meinen Eclipse IDE geöffnet und mit Hilfe des WebDrivers habe ich meinen Testfall geschrieben. Wir werden einen neuen Maven-Projekt von anderen ausprobieren. Darüber hinaus müssen wir den Chrome-Driver in einem bestimmten Ordner hier einfügen. Die Version des Selenium-Servers, die verwendet wird, muss durch die Schritte, die ich nun folgen werde, in den Pfad dieses Projekts versetzt werden. Ich kann zu meinem Projektnamen gehen, rechts klicken und zu „build path“ gehen. Von hier kann ich zu „add external jaws“ gehen, wo ich den Selenium-Server, den ich verwende, hinzufügen kann.
Klicken Sie auf anwenden und schließen. Nun gehen wir zum Schritt 4.
Schritt 4
Jetzt geht es zu Schritt 4. Ich gehe zu dem Ordner, den ich beim Schritt 2 erstellt habe. Hier verwende ich die Befehlszeile.
Dadurch ist es sehr einfach, den Ordner zu finden und es ist ein einfacher Prozess. Da es nur eine Maschine und ein Browser gibt, verwende ich Selenium Edge Sandaland Modus.
Der Server startet nun und fügt die erforderlichen Abhängigkeiten einzeln hinzu, der Prozess wird fortgeschritten. Es wurde uns eine bestimmte Adresse angegeben, die wir aufsuchen können. Nun werde ich diese Adresse kopieren und zu Schritt 3 zurückgehen. Hier, im Hub-URL, werde ich diese Adresse einfügen und nach Fertigstellung meines Codes gehe ich zu dem Datei und führe diese als Anwendung aus.
Na, nun dass ich sehe, dass die Anwendung läuft, gehe ich zu meinem Chrome-Browser und füge die Adresse ein, die ich von der Befehlszeile erhalten habe. Dies ist meine Selenium-Adresse und ich sehe, dass die Sitzungen läuft. In der Übersicht kann ich sehen, dass die vollständigen Stereotype für Chrome erstellt wurden. Und in den Sitzungen läuft mein Standard-Testfall aktiv. Du kannst auch die Webseite sehen.
Grid-Rollen
Das Grid besteht aus sechs verschiedenen Komponenten, die Ihnen Flexibilität bieten, Ihre Testautomatisierung auf verschiedene Weise zu deployieren. Sie können sie eigenständig starten sowie als Hub gruppieren oder sie auf einer einzigen Maschine ausführen.
1. Standalone
Durch die integrierte Grid-Komponenten arbeitet standalone
als eine Einheit. Durch Initiierung des standalone
-Modus kannst du mit einem einzigen Befehl eine vollständig funktionierende Grid mit einem einzigen Prozess einfach部署. Es ist wichtig zu beachten, dass standalone
nur auf einer einzigen Maschine ausgeführt werden kann.
java -jar selenium-server-<version>.jar standalone
2. Hub and Node
Hub and node sind die beliebtesten und am weitesten verwendeten Komponenten. Sie ermöglichen es den Benutzern, verschiedene Maschinen mit unterschiedlichen Betriebssystemen und Browserversionen zu kombinieren. Aufgrund dieser Eigenschaft können Sie mit einem einzigen Eingang auf verschiedene Umgebungen Webdriver-Tests ausführen.
Hub
besteht aus Router
, Verteiler
, Ereignisbus
und Sitzungsqueue
:
java -jar selenium-server-<version>.jar hub
Knoten
erkennt mehrere verfügbare Treiber aus dem Systempfad.
java -jar selenium-server-<version>.jar node
Zusammenfassung
Schließlich, um zu zusammenfassen, vereinfacht Selenium Grid die Parallelausführung von mehreren Tests über mehrere Browser und Plattformen, indem das hub-knoten-Architektur verwendet wird. Der Hub dient als zentrale Datenbank für die Tests aufbewahren, während die Knoten als Selenium-Instanzen agieren, die diese Tests gemäß den Anweisungen des Hub ausführen. Die Installation von Selenium Grid umfasst das Herunterladen der Selenium Server JAR-Datei, die gleiche Datei, die für die Ausführung von Selenium RC-Tests verwendet wird. Um zu überprüfen, ob der Hub funktioniert oder nicht, kann dies über die Befehlszeile oder einen Webbrowser erreicht werden. Um die Testskripte auf dem Grid auszuführen, ist es erforderlich, die ErwartetenFähigkeiten
und RemoteWebDriver
-Objekte zu verwenden. ErwartetenFähigkeiten
konfiguriert den Browsertyp und das Betriebssystem für die Automatisierung, während RemoteWebDriver
den Knoten oder die Maschine für die Ausführung unserer Tests festlegt.