selenium-grid - RIP Tutorial · Installation oder Setup Bevor Sie ein Selenium-Grid einrichten,...

17
selenium-grid #selenium- grid

Transcript of selenium-grid - RIP Tutorial · Installation oder Setup Bevor Sie ein Selenium-Grid einrichten,...

Page 1: selenium-grid - RIP Tutorial · Installation oder Setup Bevor Sie ein Selenium-Grid einrichten, müssen Sie sicherstellen, dass Java im Umgebungspfad Ihres Computers installiert und

selenium-grid

#selenium-

grid

Page 2: selenium-grid - RIP Tutorial · Installation oder Setup Bevor Sie ein Selenium-Grid einrichten, müssen Sie sicherstellen, dass Java im Umgebungspfad Ihres Computers installiert und

Inhaltsverzeichnis

Über 1

Kapitel 1: Erste Schritte mit Selen-Grid 2

Bemerkungen 2

Examples 2

Was ist Selengitter? 2

Was ist ein Hub & Node? 2

Kapitel 2: Selen-Gitterkonfiguration 4

Bemerkungen 4

Downloads 4

h11 4

Treiber 4

Browser 4

Examples 4

Installation oder Setup 4

Konfigurieren Sie den Hub 4

Konfigurieren Sie die Knoten 6

Zu beachtende Dinge 7

Json-Konfiguration 8

Konfiguration und Verwendung in C # 9

Aufbau 9

Microsoft Edge 9

Chrom 9

Feuerfuchs 10

Oper 10

Konfiguration Json und C # mehrere Browser 11

Aufbau 11

Microsoft Edge 11

Chrom 12

Feuerfuchs 12

Oper 12

Page 3: selenium-grid - RIP Tutorial · Installation oder Setup Bevor Sie ein Selenium-Grid einrichten, müssen Sie sicherstellen, dass Java im Umgebungspfad Ihres Computers installiert und

Credits 14

Page 4: selenium-grid - RIP Tutorial · Installation oder Setup Bevor Sie ein Selenium-Grid einrichten, müssen Sie sicherstellen, dass Java im Umgebungspfad Ihres Computers installiert und

Über

You can share this PDF with anyone you feel could benefit from it, downloaded the latest version from: selenium-grid

It is an unofficial and free selenium-grid ebook created for educational purposes. All the content is extracted from Stack Overflow Documentation, which is written by many hardworking individuals at Stack Overflow. It is neither affiliated with Stack Overflow nor official selenium-grid.

The content is released under Creative Commons BY-SA, and the list of contributors to each chapter are provided in the credits section at the end of this book. Images may be copyright of their respective owners unless otherwise specified. All trademarks and registered trademarks are the property of their respective company owners.

Use the content presented in this book at your own risk; it is not guaranteed to be correct nor accurate, please send your feedback and corrections to [email protected]

https://riptutorial.com/de/home 1

Page 5: selenium-grid - RIP Tutorial · Installation oder Setup Bevor Sie ein Selenium-Grid einrichten, müssen Sie sicherstellen, dass Java im Umgebungspfad Ihres Computers installiert und

Kapitel 1: Erste Schritte mit Selen-Grid

Bemerkungen

In diesem Abschnitt erhalten Sie einen Überblick darüber, was ein Selengitter ist und warum ein Entwickler es verwenden möchte.

Es sollte auch alle großen Themen innerhalb des Selen-Gitters erwähnen und auf die verwandten Themen verweisen. Da die Dokumentation für Selen-Grid neu ist, müssen Sie möglicherweise erste Versionen dieser verwandten Themen erstellen.

Examples

Was ist Selengitter?

Selenium-Grid ist eine Konfiguration von Hub & Node , mit der Sie Ihre Tests auf verschiedenen Computern mit verschiedenen Browserkombinationen parallel ausführen können. Das bedeutet, dass mehrere Tests gleichzeitig auf verschiedenen Computern ausgeführt werden, auf denen verschiedene Browser mit unterschiedlichen Betriebssystemen ausgeführt werden . Mit anderen Worten unterstützt Selenium Grid die Ausführung der Tests in einer verteilten Umgebung .

Wann verwenden?

Um Ihre Tests mit mehreren Browsern, mehreren Browser-Versionen und Browsern unter verschiedenen Betriebssystemen auszuführen. Dadurch wird sichergestellt, dass die von Ihnen getestete Anwendung mit einer Vielzahl von Browser-Betriebssystem-Kombinationen vollständig kompatibel ist.

Um die Zeit zu reduzieren, die die Testsuite benötigt, um einen Testdurchlauf abzuschließen. Angenommen, Sie haben Ihr Grid so eingerichtet, dass jeweils 8 Tests ausgeführt werden. Die Ausführung würde im Vergleich zum normalen Lauf 8-mal schneller abgeschlossen werden.

Selenium-Grid wird verwendet, um die Ausführung eines Tests zu beschleunigen, indem mehrere Maschinen verwendet werden, um Tests parallel auszuführen.

Was ist ein Hub & Node?

Die Nabe

Der Hub ist der Haupt-Engine / der zentrale Punkt der gesamten Konfiguration, der Punkt, an dem alle Knoten verbunden sind.

Hub sollte nur auf einer einzelnen Maschine laufen.•Es sollte nur ein Hub laufen, an dem alle Tests geladen sind.•Tests werden auf den Computern ausgeführt, auf denen der Hub ausgeführt wird. Sie können jedoch die Browser auf den Knotenmaschinen sehen.

https://riptutorial.com/de/home 2

Page 6: selenium-grid - RIP Tutorial · Installation oder Setup Bevor Sie ein Selenium-Grid einrichten, müssen Sie sicherstellen, dass Java im Umgebungspfad Ihres Computers installiert und

Die Knoten

Knoten sind die Instanzen (Maschinen), die die Tests ausführen, die in den Hub geladen werden.

Es gibt keine Einschränkungen für Knotenmaschinen, ein Benutzer kann eine Anzahl von Knoten einrichten.

Knoten können auf verschiedenen Maschinen mit unterschiedlichen Betriebssystem- und Browserkombinationen gestartet werden.

Maschinen, auf denen die Knoten ausgeführt werden, können unterschiedliche / gleiche Konfigurationen wie die Hub-Maschine haben.

Erste Schritte mit Selen-Grid online lesen: https://riptutorial.com/de/selenium-grid/topic/8701/erste-schritte-mit-selen-grid

https://riptutorial.com/de/home 3

Page 7: selenium-grid - RIP Tutorial · Installation oder Setup Bevor Sie ein Selenium-Grid einrichten, müssen Sie sicherstellen, dass Java im Umgebungspfad Ihres Computers installiert und

Kapitel 2: Selen-Gitterkonfiguration

Bemerkungen

Downloads

Dieses Kapitel enthält nützliche Downloads wie die Webtreiber und Links zu Browsern

Treiber

Platzieren Sie alle Treiber in Ihrer Pfadvariablen

Chrome-Treiber•FireFox-Treiber•Microsoft Edge-Treiber•Opernfahrer•

Browser

Chrom•Feuerfuchs•Microsoft Edge•Oper•

Examples

Installation oder Setup

Bevor Sie ein Selenium-Grid einrichten, müssen Sie sicherstellen, dass Java im Umgebungspfad Ihres Computers installiert und konfiguriert ist.

Konfigurieren Sie den Hub

Laden Sie die neueste stabile Version des Selenium Servers herunter.•Starten Sie die Eingabeaufforderung und navigieren Sie zu dem Speicherort, an dem Sie die JAR-Datei des Selenium-Servers platziert haben.

Geben Sie Folgendes ein: (FYI: Ihre Versionsnummer kann sich von meiner unterscheiden.) Java - jar Selenium-Server-Standalone-2.53.0.jar - Role Hub

Es sollte jetzt ungefähr so aussehen:•

https://riptutorial.com/de/home 4

Page 8: selenium-grid - RIP Tutorial · Installation oder Setup Bevor Sie ein Selenium-Grid einrichten, müssen Sie sicherstellen, dass Java im Umgebungspfad Ihres Computers installiert und

Grundsätzlich ist der Selen-Webserver gestartet und überwacht nun einen Port - in diesem Fall 4444 (FYI - Diese Portnummer kann geändert werden, indem der Parameter -port gefolgt von der Portnummer, auf der der Server ausgeführt werden soll) übergeben wird.

Öffnen Sie nun einen Browser und navigieren Sie zu http: // localhost: 4444 / grid / console•Wenn alles funktioniert, sollte der Server hochgefahren werden und Sie würden etwa Folgendes sehen:

Als nächstes müssen wir einige Knotenmaschinen einrichten.

https://riptutorial.com/de/home 5

Page 9: selenium-grid - RIP Tutorial · Installation oder Setup Bevor Sie ein Selenium-Grid einrichten, müssen Sie sicherstellen, dass Java im Umgebungspfad Ihres Computers installiert und

Konfigurieren Sie die Knoten

Genauso wie wir Selenium Server for Hub heruntergeladen haben, müssen wir ihn auch auf all unsere Node- Rechner herunterladen.

Sobald Sie die Selenium-Server-JAR-Datei auf dem Node-Computer haben, navigieren Sie zu dem Verzeichnis, in das jar heruntergeladen wird, und öffnen Sie die Eingabeaufforderung für cmd.

Geben Sie Folgendes ein: java –jar Selen-Server-Standalone-2.53.0.jar –Role-Knoten –hub http: // hubIP: 4444 / grid / register

hubIP : - falls der Hub und die Knoten auf einer anderen Maschine laufen○

localhost : - falls Hub und Knoten auf demselben Rechner laufen○

Wie Sie sehen, ist der Knoten jetzt im Hub registriert. Der Knoten beginnt standardmäßig mit -port 5555 , Sie können ihn jedoch auch ändern, indem Sie den Parameter -port gefolgt von der Portnummer verwenden.

Wenn alles wie erwartet funktioniert, sollten Sie jetzt die IP-Adresse des Knotens sehen, den Sie gerade gestartet und in der Hub-Konsolenansicht registriert haben:

https://riptutorial.com/de/home 6

Page 10: selenium-grid - RIP Tutorial · Installation oder Setup Bevor Sie ein Selenium-Grid einrichten, müssen Sie sicherstellen, dass Java im Umgebungspfad Ihres Computers installiert und

Zu beachtende Dinge

Wenn Sie das seleniumProtocol Protokoll nicht angeben, wird Node sowohl mit Remote Control (Legacy) als auch mit dem Webdriver-Protokoll registriert (siehe Abbildung oben).

Wenn der Browsertyp und die Anzahl der Instanzen nicht erwähnt werden, startet Node 5 •

https://riptutorial.com/de/home 7

Page 11: selenium-grid - RIP Tutorial · Installation oder Setup Bevor Sie ein Selenium-Grid einrichten, müssen Sie sicherstellen, dass Java im Umgebungspfad Ihres Computers installiert und

Instanzen von Firefox, 5 Instances von Chrome und 1 Instance des IE-Treibers.

Das ist alles, was Sie für ein lauffähiges Selenium Grid tun müssten.

Json-Konfiguration

Eine Beispielkonfiguration für einen Hub:

java -jar selenium-server-standalone-<version>.jar -role hub -hubConfig hubConfig.json

{ "_comment" : "Configuration for Hub - hubConfig.json", "host": ip, "maxSessions": 5, "port": 4444, "cleanupCycle": 5000, "timeout": 300000, "newSessionWaitTimeout": -1, "servlets": [], "prioritizer": null, "capabilityMatcher": "org.openqa.grid.internal.utils.DefaultCapabilityMatcher", "throwOnCapabilityNotPresent": true, "nodePolling": 180000, "platform": "WINDOWS" }

Eine Beispielkonfiguration für einen Knoten

java -jar selenium-server-standalone-<version>.jar -role node -nodeConfig nodeConfig.json

{ "capabilities": [ { "browserName": "opera", "platform": "WINDOWS", "maxInstances": 5, "seleniumProtocol": "WebDriver", "webdriver.opera.driver": "C:/Selenium/drivers/operadriver.exe", "binary":"C:/Program Files/Opera/44.0.2510.1159/opera.exe" }, { "browserName": "chrome", "platform": "WINDOWS", "maxInstances": 5, "seleniumProtocol": "WebDriver", "webdriver.chrome.driver": "C:/Selenium/drivers/chromedriver.exe", "binary":"C:/Program Files/Google/Chrome/Application/chrome.exe" }, { "browserName": "firefox", "platform": "WINDOWS", "maxInstances": 5, "seleniumProtocol": "WebDriver", "webdriver.gecko.driver": "C:/Selenium/drivers/geckodriver.exe", "binary":"C:/Program Files/Mozilla Firefox/firefox.exe" } ],

https://riptutorial.com/de/home 8

Page 12: selenium-grid - RIP Tutorial · Installation oder Setup Bevor Sie ein Selenium-Grid einrichten, müssen Sie sicherstellen, dass Java im Umgebungspfad Ihres Computers installiert und

"proxy": "org.openqa.grid.selenium.proxy.DefaultRemoteProxy", "maxSession": 5, "port": 5555, "register": true, "registerCycle": 5000, "hub": "http://localhost:4444", "nodeStatusCheckTimeout": 5000, "nodePolling": 5000, "role": "node", "unregisterIfStillDownAfter": 60000, "downPollingLimit": 2, "debug": false, "servlets" : [], "withoutServlets": [], "custom": {} }

Konfiguration und Verwendung in C #

Aufbau

In den folgenden Absätzen finden Sie pro Browser ein Beispiel für die Konfiguration in Json und für das Setup in C #.

In diesem Beispiel werden alle Treiber in Ihrer Pfadvariablen und Ihren Browsern installiert.

Microsoft Edge

C # -Code zum Erstellen eines Remote-Webtreibers

// Defining webdriver variable RemoteWebDriver _webDriver; // Creating Capabilities and chosing browser capabiliteiten = DesiredCapabilities.Edge(); // Setting platform capabiliteiten.Platform = new Platform(PlatformType.Windows); // Requesting remote webdriver _webDriver = new RemoteWebDriver(_gridServerUri, capabiliteiten);

Knotenkonfiguration in Json

{ "browserName":"MicrosoftEdge", "platform": "WINDOWS", "maxIstances": 1, "seleniumProtocol": "WebDriver" }

Chrom

C # -Code zum Erstellen eines Remote-Webtreibers

https://riptutorial.com/de/home 9

Page 13: selenium-grid - RIP Tutorial · Installation oder Setup Bevor Sie ein Selenium-Grid einrichten, müssen Sie sicherstellen, dass Java im Umgebungspfad Ihres Computers installiert und

// Defining webdriver variable RemoteWebDriver _webDriver; // Creating Capabilities and chosing browser capabiliteiten = DesiredCapabilities.Chrome(); // Setting platform capabiliteiten.Platform = new Platform(PlatformType.Windows); // Requesting remote webdriver _webDriver = new RemoteWebDriver(_gridServerUri, capabiliteiten);

Knotenkonfiguration in Json

{ "browserName": "chrome", "platform": "WINDOWS", "maxInstances": 5, "seleniumProtocol": "WebDriver" }

Feuerfuchs

C # -Code zum Erstellen eines Remote-Webtreibers

// Defining webdriver variable RemoteWebDriver _webDriver; // Creating Capabilities and chosing browser capabiliteiten = DesiredCapabilities.Firefox(); // Setting platform capabiliteiten.Platform = new Platform(PlatformType.Windows); // Requesting remote webdriver _webDriver = new RemoteWebDriver(_gridServerUri, capabiliteiten);

Knotenkonfiguration in Json

{ "browserName": "firefox", "platform": "WINDOWS", "maxInstances": 5, "seleniumProtocol": "WebDriver" }

Oper

C # -Code zum Erstellen eines Remote-Web-Treibers Dies gilt für OperaChromium

// Defining webdriver variable RemoteWebDriver _webDriver; // Creating Capabilities capabiliteiten = new DesiredCapabilities(); // Setting platform capabiliteiten.Platform = new Platform(PlatformType.Windows); // Chosing browser capabiliteiten.SetCapability(CapabilityType.BrowserName, "operablink"); // Requesting remote webdriver _webDriver = new RemoteWebDriver(_gridServerUri, capabiliteiten);

https://riptutorial.com/de/home 10

Page 14: selenium-grid - RIP Tutorial · Installation oder Setup Bevor Sie ein Selenium-Grid einrichten, müssen Sie sicherstellen, dass Java im Umgebungspfad Ihres Computers installiert und

Knotenkonfiguration in Json

{ "browserName": "operablink", "platform": "WINDOWS", "maxInstances": 5, "seleniumProtocol": "WebDriver" }

Der Plattformtyp kann einer der folgenden sein:

PlatformType.Android;•PlatformType.Any;•PlatformType.Linux;•PlatformType.Mac;•PlatformType.Unix;•PlatformType.Vista;•PlatformType.Windows;•PlatformType.WinNT;•PlatformType.XP;•

Konfiguration Json und C # mehrere Browser

Aufbau

In den folgenden Absätzen finden Sie pro Browser ein Beispiel für die Konfiguration in Json und für das Setup in C #.

In diesem Beispiel werden alle Browser und die Treiber in Ihrer Pfadvariablen installiert

Microsoft Edge

C # -Code zum Erstellen eines Remote-Webtreibers

// Defining webdriver variable RemoteWebDriver _webDriver; // Creating Capabilities and chosing browser capabiliteiten = DesiredCapabilities.Edge(); // Setting platform capabiliteiten.Platform = new Platform(PlatformType.Windows); // Requesting remote webdriver _webDriver = new RemoteWebDriver(_gridServerUri, capabiliteiten);

Knotenkonfiguration in Json

{ "browserName":"MicrosoftEdge", "platform": "WINDOWS", "maxIstances": 1, "seleniumProtocol": "WebDriver" }

https://riptutorial.com/de/home 11

Page 15: selenium-grid - RIP Tutorial · Installation oder Setup Bevor Sie ein Selenium-Grid einrichten, müssen Sie sicherstellen, dass Java im Umgebungspfad Ihres Computers installiert und

Chrom

C # -Code zum Erstellen eines Remote-Webtreibers

// Defining webdriver variable RemoteWebDriver _webDriver; // Creating Capabilities and chosing browser capabiliteiten = DesiredCapabilities.Chrome(); // Setting platform capabiliteiten.Platform = new Platform(PlatformType.Windows); // Requesting remote webdriver _webDriver = new RemoteWebDriver(_gridServerUri, capabiliteiten);

Knotenkonfiguration in Json

{ "browserName": "chrome", "platform": "WINDOWS", "maxInstances": 5, "seleniumProtocol": "WebDriver" }

Feuerfuchs

C # -Code zum Erstellen eines Remote-Webtreibers

// Defining webdriver variable RemoteWebDriver _webDriver; // Creating Capabilities and chosing browser capabiliteiten = DesiredCapabilities.Firefox(); // Setting platform capabiliteiten.Platform = new Platform(PlatformType.Windows); // Requesting remote webdriver _webDriver = new RemoteWebDriver(_gridServerUri, capabiliteiten);

Knotenkonfiguration in Json

{ "browserName": "firefox", "platform": "WINDOWS", "maxInstances": 5, "seleniumProtocol": "WebDriver" }

Oper

C # -Code zum Erstellen eines Remote-Webtreibers

// Defining webdriver variable RemoteWebDriver _webDriver; // Creating Capabilities capabiliteiten = new DesiredCapabilities(); // Setting platform

https://riptutorial.com/de/home 12

Page 16: selenium-grid - RIP Tutorial · Installation oder Setup Bevor Sie ein Selenium-Grid einrichten, müssen Sie sicherstellen, dass Java im Umgebungspfad Ihres Computers installiert und

capabiliteiten.Platform = new Platform(PlatformType.Windows); // Chosing browser capabiliteiten.SetCapability(CapabilityType.BrowserName, "operablink"); // Requesting remote webdriver _webDriver = new RemoteWebDriver(_gridServerUri, capabiliteiten);

Knotenkonfiguration in Json

{ "browserName": "operablink", "platform": "WINDOWS", "maxInstances": 5, "seleniumProtocol": "WebDriver" }

Der Plattformtyp kann einer der folgenden sein:

PlatformType.Android; PlatformType.Any; PlatformType.Linux; PlatformType.Mac; PlatformType.Unix; PlatformType.Vista; PlatformType.Windows; PlatformType.WinNT; PlatformType.XP;

Selen-Gitterkonfiguration online lesen: https://riptutorial.com/de/selenium-grid/topic/8702/selen-gitterkonfiguration

https://riptutorial.com/de/home 13

Page 17: selenium-grid - RIP Tutorial · Installation oder Setup Bevor Sie ein Selenium-Grid einrichten, müssen Sie sicherstellen, dass Java im Umgebungspfad Ihres Computers installiert und

Credits

S. No

Kapitel Contributors

1Erste Schritte mit Selen-Grid

Community, Paras

2Selen-Gitterkonfiguration

Paras, Thomas

https://riptutorial.com/de/home 14