Selenium Webdriver Architecture: Die meisten Anfänger wissen es nicht

Wir werden mit beginnen Selen Tutorial Schwarzes Buch In diesem ersten Abschnitt des Selenium-Tutorials werden wir darüber diskutierenSelenium Webdriver-Architektur, Was ist Selenium Webdriver, Selenium Webdriver Übersicht, Kurze Geschichte von Selen, Vorteile von Selen, Einschränkungen von Selen, Selen-Komponenten und einige häufig gestellte Fragen.

Was ist Selenium Webdriver?

Selenium ist eine Open-Source-Technologie oder ein Framework durch die wir webbasierte Anwendungen automatisieren können. Selenium unterstützt Multi-Browser-Tests, mehrere Sprachen wie Java, Ruby, Perl, Python werden ebenfalls unterstützt. Es unterstützt verschiedene mehrere Plattformen wie Windows, Linux, macOS usw. als Teil der Plattform.

Kurze Geschichte über Selen:

Selen wurde ursprünglich aus einem internen Tool von Jason Huggins im Jahr 2004 bei entwickelt Thought.

Später im Jahr 2007 trat Huggins der Organisation Google bei und setzte mit anderen wie Jennifer Bevan das Design und die Entwicklung einer der ersten Varianten von Selenium fort Selen RC. In einem ähnlichen Zeitraum entwickelte eine andere Person namens Simon Stewart von ThoughtWorks ein fortschrittliches Automatisierungswerkzeug für Webbrowser als WebDriver. 

Im Jahr 2008 entwickelte eine Person namens Philippe Hanrigou von ThoughtWorks Konzepte für die Fernautomatisierung, die als „Selenium Grid“ bekannt sind.

Im Jahr 2009 wurde auf der Google Test Automation Conference beschlossen, die beiden Projekte zusammenzuführen und den Namen Selenium WebDriver oder Selenium 2.0 zu erhalten.

Vorteile von Selenium Webdriver:

A. Open Source:

Selen ist eine Open-Source-Technologie / ein Open-Source-Framework. Daher steht eine enorme Community-Unterstützung zur Verfügung, bei der der Entwicklungs- und Verbesserungsumfang schnell und umfassend ist. Als Open-Source-Version können Sie alle spezifischen Funktionen implementieren, die Sie im Rahmen Ihrer Arbeit benötigen, und einen Beitrag zum Open leisten Quellgemeinschaft. 

B. Unterstützte Multi-Programmiersprache:

Selen wird von weit verbreiteten Sprachen unterstützt; Es werden verschiedene Programmiersprachenbindungen verwendet, sodass Sie Ihre bevorzugte Sprache für die Arbeit mit Selen entsprechend Ihren Anforderungen und Ihrem Fachwissen auswählen können.

Selenium unterstützt die folgenden Programmiersprachen: 

  • Javac 
  • C#
  • Perl
  • python
  • Ruby  
  • Javascript

C. Plattformunabhängig:

Selenium ist plattformunabhängig, sodass Sie Ihre Webanwendungen über jede Plattform und jedes Betriebssystem automatisieren können, z. B. Windows, Linux, MacOS usw.

D. Browserübergreifende Testfunktion

Selenium unterstützt browserübergreifende Testfunktionen für Ihre Webanwendungen. Sie können Ihre mit Selenium geschriebene Testsuite in mehreren Browsern wie Firefox, Chrome, IE, Safari usw. ausführen.

E. Geräteübergreifende Testfähigkeit

Selenium Test Automation wird für die Testautomatisierung mobiler Webanwendungen auf verschiedenen Geräten wie Android und IOS verwendet. 

F. Remote- oder Cloud-Ausführung:

Selenium GRID bietet Ihnen die Funktion, das Automatisierungstestskript Ihrer Webanwendung in der Cloud auszuführen und zu steuern, indem Sie ein System als Masterknoten und ein anderes System als Slaveknoten festlegen, Slaveknoten mit einem Masterknoten verbinden und Masterknoten den Slave überwachen Ihre Tests befinden sich also in verschiedenen Slave-Knoten mit unterschiedlichem Betriebssystem und verschiedenen Browsern wie Chrome, Firefox, Internet Explorer usw.

G. Parallele Testfähigkeit:

Mit Selenium können Sie Funktionen für automatisierte parallele Tests erreichen, dh Sie können Ihr Testskript oder Ihre Automatisierungstestfälle parallel in einem anderen oder demselben Browser und einem anderen oder demselben Betriebssystem ausführen. Mit dieser Funktion können Sie die Ausführungszeit für die gesamte vorhandene Automatisierungstestsuite verkürzen und die Machbarkeit und Kompatibilität Ihrer Webanwendung mit mehreren Betriebssystemen und mehreren Browsern gleichzeitig testen.   

H. Kompatibilität mit mehreren Frameworks und Tools und Technologien von Drittanbietern

Das Selenium-Framework kann problemlos in mehrere verschiedene Technologien und Frameworks von Drittanbietern integriert werden, z. B. in verschiedene Unit-Test-Frameworks, z TestNg, JUnit, MbUnit, Nunit etc. etc., verschiedene Build Tools wie Ant, Maven, Gradle etc., Continuous Integration Tools, zB Jenkins, verschiedene Test Management Tools wie Jira, testlink etc., diverse Reporting Tools wie Allure, Extent Bericht usw.

I. Headless Browser-Ausführung: 

Selenium Webdriver unterstützt Headless-Browser-Treiber für die Automatisierung Testfallausführung, bei der alle Ihre Automatisierungstestfälle im Headless-Browser-Modus ausgeführt werden, dh es wird kein Browser geöffnet und die Ausführung erfolgt blitzschnell, sodass Sie Ihre Testskripte und die Funktionalität im Falle dringender Freigaben und Validierungen schnell fertigstellen können.

Sie können grundsätzlich verwenden htmlEinheitentreiber or Geisterfahrer für die kopflose Hinrichtung mit Selen.  

Nachteile von Selen:

  • Native/Windows-basierte App-Unterstützung, nicht vorhanden: 
    • Selen wird zur Automatisierung von Web Bade-Anwendungen verwendet, bietet jedoch keine Unterstützung für native Anwendungen oder Windows-basierte Anwendungen.
  • Umfassende bildbasierte Automatisierung: 
    • Selen bietet keine umfassende Unterstützung für die Automatisierung bildbasierter Probleme oder Anwendungen, obwohl wir einige Tools von Drittanbietern wie Sikuli verwenden können, Tesseract OCR-basierte Lösungen, die in Selenium integriert werden können, um die mit den Bildvalidierungen / -vorgängen oder -vorgängen verbundenen Aufgaben zu erledigen Bei der Extraktion und Validierung von Bilddaten gibt es auch einige Einschränkungen, z. B. können Probleme beim parallelen Testen, Identifizieren handgeschriebener Dokumente und Validieren von Dokumenten auftreten, die bei der Automatisierung Ihrer Anwendung auftreten, wenn solche Anwendungsfälle vorliegen.
  • Integration mit Tools von Drittanbietern: 
    • Ein Nachteil der Integration mit mehreren Tools von Drittanbietern mit Selen ist, dass Ihr Automatisierungsskript manchmal langsamer wird.
  • Selen-Framework Entwicklung:
    • Das Entwerfen und Entwickeln eines fortschrittlichen Testautomatisierungs-Frameworks mit Selen erfordert viel Fachwissen in Bezug auf Selen und ist nicht allzu einfach, um ein Automatisierungs-Framework mit mehreren Tools zusammen mit Selen zu erstellen.
  • Browserspezifische Probleme: 
    • Während der Arbeit mit Selenium treten möglicherweise einige browserspezifische Probleme auf, insbesondere mit dem Internet Explorer. Manchmal sind Sie möglicherweise nicht in der Lage, Webaktionen wie Klicks, Sendeschlüssel usw. zu verarbeiten, und der Browser ist möglicherweise tot. Daher benötigen Sie Vorkenntnisse, um diese Bereiche zu behandeln, während Sie die auf Bootstrap JS basierende Anwendung automatisieren und im IE-Browser ausführen.
    • Außerdem können Probleme mit der Browserkompatibilität mit den Selenium Webdriver-Versionen auftreten. Sie müssen sicherstellen, dass Sie den kompatiblen Firefox, Chrome oder einen anderen Browser verwenden, mit dem Sie mit der Version von Selenium Webdriver arbeiten.
  • Keine offizielle Unterstützung: 
    • Wie jedes andere Open Source-Tool ist auch Selenium ein Open Source-Tool. Dies bedeutet, dass Sie keinen offiziellen Support für Ihre Probleme haben, wie bei allen kostenpflichtigen Tools, obwohl ein sehr großer Community-Support verfügbar ist, können Sie mit Ihrer Problemstellung mit ihnen arbeiten , aber das kann sehr zeitaufwändig sein.

Selenkomponenten: 

Selen als Werkzeug hat die folgenden Komponenten: 

Selen-IDE:

  • Die Selenium IDE- oder Selenium Integrated Development-Umgebung ist die erste Version von Selenium für die Automatisierung von Webanwendungen.
  • Selenium IDE ist eine Art Aufzeichnungs- und Wiedergabetool, das Sie als Plugin des Browsers verwenden und Ihre Webanwendung für Ihre Anwendungen aufzeichnen können. Es kann als Skript gespeichert werden und später können Sie dasselbe aufgezeichnete Skript ausführen, um es auszuführen und auszuführen Validierungen.
  • Es gibt jedoch nur wenige Einschränkungen wie:
    • Sie müssen das aufgezeichnete Skript ausführen, das Ändern des Skripts ist nicht so flexibel, oder Sie können Ihren Anwendungsfall und Ihre Skripte nicht in Ihrem eigenen unabhängigen Ansatz entwerfen.
    • Die Ausführung ist von Natur aus sehr langsam.
    • Unterstützt hauptsächlich Firefox, obwohl Sie einige Optimierungen vornehmen können, um das aufgezeichnete Skript in anderen Browsern wie Google Chrome auszuführen.
    • parallele Ausführung wird nicht unterstützt.
    • Mobiles Testen wird nicht unterstützt.
    • Die Berichterstellung ist nicht gut.
  • Es ist eine sehr vorläufige Version von Selenium. Mit dieser Version können Sie eine sehr eingeschränkte Testautomatisierung für Ihre Webanwendungen durchführen.

Selen RC

  • Selenium Remote Control ist die nächste Version von Selenium und wird sehr oft als Selenium 1.0 bezeichnet.

Wie Selenium RC intern funktioniert:

Selenium RC besteht aus zwei Hauptkomponenten, wie Selenium Server, Selenium Client.

Der Selenium Server startet die Browser und führt die Selenium-Befehle aus, die Sie als Testautomatisierungsskript geschrieben haben, indem Sie Selenium-Client-Bibliotheken verwenden, die in verschiedenen Sprachen verfügbar sind.

Selenium Server konvertiert die Befehle / Testskripte in sogenannte Selenese-Befehle und fungiert als HTTP-Proxy.

Selenium Server interagiert mit der Webbrowser-Engine und führt den Webvorgang aus, den Sie im Rahmen von Testfällen für die zu testende Anwendung automatisieren möchten.

Schritte zur Verwendung von Selenium RC: 

  • Installieren Sie den Selenium-RC-Server.
    • Erstellen Sie ein Projekt mit der von Ihnen gewählten Programmiersprache und der für den Browsertreiber spezifischen Sprache.
  • Installieren Sie den Selen-Server
    • Sie können Selenium Server einrichten, indem Sie einfach die Datei selenium-server.jar herunterladen und mit dem folgenden Befehl auf Ihrem System ausführen: 
    • java -jar selen-server.jar
  • Schreiben Sie das Skript mithilfe von Selenium-Clientbibliotheken und dasselbe mithilfe des Selenium-Servers.

Einschränkungen von Selen RC:

  • In der Selenium-Fernbedienung werden Automatisierungstreiber und Browser etwas langsamer, da die Browser-Engine nicht direkt interagiert, sondern Selenium RC Javascript in die Browser-Engine einfügt, die auch als Selenium Core bezeichnet wird.
  • Der Server, der vor und während der Ausführung des Testskripts betriebsbereit sein muss.
  • Erweiterte Webaktionen können im Gegensatz zu Selenium Webdriver nicht mit Selenium RC wie Mausbewegung, Doppelklick, Eingabe von Tastaturen usw. usw. automatisiert und ausgeführt werden.
  • Selenium RC unterstützt keine mobilen App-Tests.
  • Selenium RC ist zum Ausführen des Automatisierungstestskripts vom tatsächlichen Browser abhängig und unterstützt im Gegensatz zu Selenium Webdriver keinen kopflosen Browser wie HTMLUnitDriver oder GHostDriver usw.

Selenium WebTreiber:

Selenium Webdriver ist die erweiterte Version unter den Selenium-Komponenten, die sehr robust ist und auch die erweiterte Version von Webinteraktionen unterstützt. Im Gegensatz zu Selenium RC interagiert sie nicht über Javascript mit dem Browser und bietet auch Unterstützung für das Testen mobiler Anwendungen. Es wird sehr oft als Teil von Selenium 2.0 bezeichnet.

WebDriver kann dynamische Elemente verarbeiten und unterstützt auch die parallele Ausführung mit mehreren verschiedenen Browsern.

Wir werden in den kommenden Segmenten eine ausführliche Diskussion führen.

Selengitter: 

Selenium GRID ist eine weitere Komponente von Selenium, über die Sie die Remote-Ausführung Ihres Automatisierungstestskripts durchführen können, indem Sie Master-Slave-Knoten erstellen. Selenium GRID unterstützt parallele Tests im selben Browser sowie in mehreren Browsern. 

Wir werden in den kommenden Abschnitten weitere Diskussionen über Selenium GRID führen.

WebDriver 3.0

Selenium 3.0 ist die neueste Version der Selenium-Komponenten, die im Grunde die Kombination aus WebDriver 2.0 und der Weiterentwicklung von GRID 3 ist.

In diesem nächsten Abschnitt werden wir das besprechen Selenium WebDriver-Architektur im Detailund schließlich zeigt es wie Selen intern funktioniert,.

Selenium Webdriver-Architektur  :

Es gibt fünf Hauptattribute oder -komponenten als Teil der Selenium Webdriver-Architektur: 

    

  • Selenium Client Library oder Selenium-Programming Sprachbindungen
  • WebDriver-Protokoll oder JSON Wire-Protokoll über HTTP
  • Browser-Treiber
  • Browser-Engine
  • Browser-Rendering-Engine
Selenium Webdriver-Architektur
Selenium Tutorial-Selenium Webdriver Architektur

Selenium Client Libraries oder Programmiersprachenbindungen: 

Selenium bietet verschiedene Sprachbindungen, dh die Clientbibliotheken unterstützen mehrere verschiedene Sprachen als Teil Ihres Testskripts für die Automatisierungsentwicklung und -automatisierung. Zum Beispiel Selen mit C #, Selen mit Java, Selen mit Python usw.

WebDriver Protocol oder JSON WIRE PROTOCOL:

JSON, das im Grunde für JavaScript Object Notation steht. Dieses Protokoll wird auch als WebDriver-Protokoll bezeichnet, das für die Server-Client-Datenübertragung über das Web verwendet wird. Jeder Browsertreiber (z. B. FirefoxDriver, ChromeDriver usw.) verfügt über einen eigenen HTTP-Server und verwendet dieses Protokoll, um Daten über Rest Webservices in Form der HTTP-Anforderung und der HTTP-Antwort zu übertragen.

 Browsertreiber:

Jeder Browser hat einen eigenen Browsertreiber. Die Browsertreiber stellen über die Browser-Engine die Kommunikation mit dem jeweiligen Browser her. 

Wenn das Automatisierungsskript ausgeführt wird, kommuniziert es direkt mit den Browsertreibern und schließlich mit dem jeweiligen Browser. Die Anforderung und Antwort werden über eine HTTP-Anforderung und eine HTTP-Antwort übertragen.

Browser-Engine:

Jeder Browser hat eine eigene Browser-Engine. Die Browser-Engine fungiert im Wesentlichen als Zwischenschicht zwischen der Benutzeroberfläche und der Rendering-Engine.

Browser-Rendering-Engine: 

Die Browser-Rendering-Engine ist für die Anzeige des angeforderten Dokuments verantwortlich, indem sie die spezifischen Elemente rendert, die für die Anforderungsantwort und die Daten erforderlich sind.

Selenium Webdriver Architektur und Arbeitsfunktionalität auf den Punkt gebracht :

Selenium-WebDriver ruft den Browser direkt auf und verwendet dabei die native Unterstützung jedes Browsers für die Automatisierung und seine JavaScript-Engine. Wie diese Anrufe getätigt werden und welche Funktionen sie unterstützen, hängt vom verwendeten Browser ab.

Beim Laden des Browsers wird kein JavaScript wie Selenium-RC eingefügt.

Beim Ausführen des Webdriver-Skripts tritt Folgendes auf:

  •  Wir machen das Automation Scripting mit jeder Sprachbindung (Java/C# etc.) und Es löst die WebDriver-API aus während das Skript ausgeführt wird.
  •   Das Skript und ggf. Befehle (z. B. driver.findElement (By.id („idName“))) sind intern in JavaScript konvertiert werden.
  •   Mit Browser Engine ist es wieder zurück in JSON konvertiertDies ist eine Art Schlüssel-Wert-Paar.
  •   Nachdem Sie den jeweiligen Wert des jeweiligen Schlüssels erhalten haben, Es identifiziert die jeweiligen WebElements und führt die jeweiligen Benutzeraktionen aus (wie Klicken, Senden von Schlüsseln usw.).
  •   Die gesamte Kommunikation erfolgt über a JSON-Wire- oder Webdriver-ProtokollaufrufDie Kommunikation erfolgt über HTTP in Form einer Rest-API als HTTP-Anforderung und HTTP-Antwort.

Selen häufig gestellte Fragen: 

Welche Arten von WebDriver-APIs sind in Selenium verfügbar?

Selenium Webdriver ist eine Schnittstelle und verfügt über verschiedene Sprachbindungen für verschiedene Programmiersprachen wie Java, C #, Python usw. 

Selenium Webdriver hat hauptsächlich zwei verschiedene Varianten wie: 

  • Selenium Web-Treiber lokal.
  • Selenium Web-Treiber Remote. 

Der Selenium-Webtreiber Local verwendet die API, um mit der spezifischen Sprachbindung zu arbeiten, und Sie können mit dieser mit Ihrer lokalen Ausführung arbeiten. Wenn Sie andererseits Ihre Automatisierungstestskripte in Remote ausführen möchten, müssen Sie die verwenden Remote-Selenium-Webtreiber-APIs.

Erklären Welche Szenarien können wir mit Selenium nicht automatisieren?

Selen bietet keine Möglichkeit, die folgenden Bereiche von Aspekten der Anwendung zu automatisieren: 

  • Leistungstest der Anwendung
  • Sicherheitstests der Anwendungen.
  • Bildbasierte Verarbeitung und Automatisierung
  • Captcha-basierte Automatisierung.
  • Video-Streaming-Szenarien.
  • Native Anwendung oder fensterbasierte Anwendungen.
  • Streaming-Anwendungen

Unterschied zwischen Selen 2.0 und Selen 3.0?

  • Für Selenium 2.0 ist die Mindestanforderung Java 1.7, für Selenium 3.0 hingegen ist die mindestens erforderliche Java-Version 1.8
  • Selenium 3.0 erfordert GeckOdriver für Firefox Version über 47, aber das ist nicht der Fall für Selenium 2.0 
  • Selenium 3.0 unterstützt moderne Browser wie Edge, Safari etc., aber andererseits für Selenium 2.0, Browsertreiber für Mozilla, Chromedriver, IE, der von Selenium-Entwicklern entwickelt wird.
  • In Selenium 3 wurde die Unterstützung für mobile Automatisierungstests entfernt, dh AndroidDriver und iPhoneDriver, und Sie müssen Tools wie verwenden Appium für mobile Automatisierungstests, was bei Selenium 2.0 nicht der Fall ist.
  • Selenium 3.0 unterstützt den Headless-Treiber, dh HTMLUnitWebDriver, nicht, aber Selenium 2.0 hat die Unterstützung für die Headless-Ausführung, dh mit HTMLUnitDriver oder Ghostdriver.
  • Innerhalb von Selenium 3 ist der Selenium WebDriver zum W3C-Standard geworden; Andererseits gehört Selenium Webdriver in Selenium 2.0 nicht zum W3C-Standard.

Zusammenfassung : Damit vervollständigen wir das erste Segment von Selen Tutorial Blackbook Abdeckung Was ist Selenium, Selenium Webdriver Architektur, Überblick über Selen, Vor- und Nachteile von Selen, Im kommenden Segment von Selen Tutorial In Modul 2 werden wir über die Selenium-Installation, dh Setup, Selenium-Befehle und andere grundlegende, mittlere und fortgeschrittene Themen von Selenium diskutieren

Hinterlasse einen Kommentar