In diesem Kapitel erhalten Sie eine Einführung in Protractor, in der Sie mehr über den Ursprung dieses Testframeworks erfahren und warum Sie dieses auswählen müssen, arbeiten und Einschränkungen dieses Tools.
Was ist Winkelmesser?
Protractor ist ein Open-Source-End-to-End-Testframework für Angular- und AngularJS-Anwendungen. Es wurde von Google auf der Oberseite des WebDriver gebaut. Es dient auch als Ersatz für das vorhandene AngularJS E2E-Testframework „Angular Scenario Runner“.
Es funktioniert auch als Lösungsintegrator, der leistungsstarke Technologien wie NodeJS, Selenium, Jasmine, WebDriver, Cucumber, Mocha usw. kombiniert. Neben dem Testen von AngularJS-Anwendungen werden auch automatisierte Regressionstests für normale Webanwendungen geschrieben. Es ermöglicht uns, unsere Anwendung wie ein echter Benutzer zu testen, da der Test mit einem tatsächlichen Browser ausgeführt wird.
Das folgende Diagramm gibt einen kurzen Überblick über den Winkelmesser –
Beachten Sie, dass wir im obigen Diagramm haben −
-
Winkelmesser − Wie bereits erwähnt, handelt es sich um einen Wrapper über WebDriver JS, der speziell für Angular-Apps entwickelt wurde.Jasmine – Es ist im Grunde ein verhaltensgesteuertes Entwicklungsframework zum Testen des JavaScript-Codes. Wir können die Tests einfach mit Jasmine schreiben.
-
WebDriver JS − Es ist eine Node JS Bindings Implementierung für Selenium 2.0/WebDriver.
-
Selenium – Es automatisiert einfach den Browser.
Origin
Wie bereits erwähnt, ist Protractor ein Ersatz für das vorhandene AngularJS E2E-Testframework namens „Angular Scenario Runner“. Grundsätzlich beginnt der Ursprung des Winkelmessers mit dem Ende des Szenarioläufers. Eine Frage, die sich hier stellt, ist, warum wir Winkelmesser bauen müssen? Um dies zu verstehen, müssen wir zuerst den Vorgänger Scenario Runner überprüfen.
Gründung von Protractor
Julie Ralph, die Hauptverantwortliche für die Entwicklung von Protractor, hatte die folgenden Erfahrungen mit Angular Scenario Runner bei anderen Projekten innerhalb von Google. Dies wurde weiter zur Motivation, Protractor zu bauen, speziell um die Lücken zu füllen −
„Wir haben versucht, Scenario Runner zu verwenden, und wir haben festgestellt, dass es wirklich nicht die Dinge tun konnte, die wir testen mussten. Wir mussten Dinge wie das Anmelden testen. Ihre Anmeldeseite ist keine eckige Seite, und der Szenario-Runner konnte damit nicht umgehen. Und es konnte nicht mit Dingen wie Popups und mehreren Fenstern umgehen, im Browserverlauf navigieren, solche Sachen.“
Der größte Vorteil des Winkelmessers war die Reife des Projekts und es fasst seine Methoden so zusammen, dass es leicht für Winkelprojekte verwendet werden kann. Das Design von Protractor ist so aufgebaut, dass alle Ebenen wie Web-Benutzeroberfläche, Backend-Dienste, Persistenzschicht usw. einer Anwendung getestet werden.
Warum Winkelmesser?
Wie wir wissen, verwenden fast alle Anwendungen JavaScript für die Entwicklung. Die Aufgabe von Testern wird schwierig, wenn JavaScript an Größe zunimmt und für Anwendungen aufgrund der zunehmenden Anzahl der Anwendungen selbst komplex wird. In den meisten Fällen wird es sehr schwierig, die Web-Elemente in AngularJS-Anwendungen zu erfassen, verwendet erweiterte HTML-Syntax, um Web-Anwendungskomponenten auszudrücken, mit JUnit oder Selenium WebDriver.
Die Frage hier ist, warum der Selenium-Webtreiber keine AngularJS-Webelemente finden kann? Der Grund dafür ist, dass AngularJS-Anwendungen einige erweiterte HTML-Attribute wie ng-Repeater, ng-controller und ng-model usw. haben. die nicht in Selenium Locators enthalten sind.
Hier kommt die Bedeutung von Protractor zum Tragen, da Protractor auf der Oberseite von Selenium diese erweiterten HTML-Elemente in AngularJS-Webanwendungen verarbeiten und steuern kann. Aus diesem Grund können wir sagen, dass sich die meisten Frameworks auf die Durchführung von Komponententests für AngularJS-Anwendungen konzentrieren.
Arbeiten mit Protractor
Protractor, das Testframework, bietet in Verbindung mit Selenium eine automatisierte Testinfrastruktur zur Simulation der Interaktion eines Benutzers mit einer AngularJS-Anwendung, die im Browser oder auf einem mobilen Gerät ausgeführt wird.
Die Arbeit des Winkelmessers kann mit Hilfe der folgenden Schritte verstanden werden −
-
Schritt 1 – Im ersten Schritt müssen wir die Tests schreiben. Es kann mit Hilfe von Jasmin oder Mokka oder Gurke gemacht werden.
-
Schritt 2 – Jetzt müssen wir den Test ausführen, der mit Hilfe des Winkelmessers durchgeführt werden kann. Es wird auch Test Runner genannt.
-
Schritt 3 – In diesem Schritt hilft Selenium Server bei der Verwaltung der Browser.
-
Schritt 4 – Schließlich werden die Browser-APIs mit Hilfe von Selenium WebDriver aufgerufen.
Vorteile
Dieses Open-Source-End−to-End-Testframework bietet die folgenden Vorteile –
-
Als Open-Source-Tool ist Protractor sehr einfach zu installieren und einzurichten.
-
Funktioniert gut mit Jasmine Framework, um den Test zu erstellen.
-
Unterstützt Test Driven Development (TDD).
-
Enthält automatische Wartezeiten, was bedeutet, dass wir unserem Test keine expliziten Wartezeiten und Schlafphasen hinzufügen müssen.
-
Bietet alle Vorteile von Selenium WebDriver.
-
Unterstützt parallele Tests über mehrere Browser.
-
Bietet den Vorteil der automatischen Synchronisation.
-
Hat ausgezeichnete prüfung geschwindigkeit.
Einschränkungen
Dieses Open-Source-End−to-End-Testframework weist die folgenden Einschränkungen auf:
-
Deckt keine vertikalen Bereiche in der Browserautomatisierung auf, da es sich um einen Wrapper für WebDriver JS handelt.
-
JavaScript-Kenntnisse sind für den Benutzer unerlässlich, da sie nur für JavaScript verfügbar sind.
-
Bietet nur Front-End-Tests an, da es sich um ein UI-gesteuertes Testwerkzeug handelt.