Articles

Was ist ein Winkelmesser?

Winkelmesser

Gemäß der allerersten und grundlegendsten Web-App-Architektur interagiert ein Server aufgrund des ständigen Neuladens von Inhalten und des enormen Datenaustauschs häufiger für statische Websites als für tatsächliche Web-Apps, die aus einer Logik zur Erstellung von Webseiten und einer Geschäftslogik bestehen, mit einem Client, indem eine vollständige HTML-Seite gesendet wird. Um ein Update zu sehen, muss der Benutzer die Seite vollständig neu laden oder mit anderen Worten, der Client muss eine Anforderung für eine HTML-Seite an den Server senden und den gesamten Code erneut laden. Schauen Sie sich das Diagramm der Webanwendungsarchitektur dieses Typs an.

Legacy CSA

Heutzutage wechseln viele Unternehmen von der traditionellen Client-Server-Architektur zur modernen, bei der nach dem Laden der ersten Seite die gesamte Interaktion mit dem Server über AJAX-Aufrufe erfolgt. Diese AJAX-Aufrufe geben Daten — kein Markup — normalerweise im JSON-Format zurück. Die App verwendet die JSON-Daten, um die Seite dynamisch zu aktualisieren, ohne die Seite neu zu laden.

Bei diesem Typ wird die Logik zum Erstellen von Webseiten durch Webdienste ersetzt, und jede Seite auf dem Client verfügt über separate Entitäten, die als Widgets bezeichnet werden. Durch das Senden von AJAX-Abfragen an Webdienste können Widgets Datenblöcke in HTML oder JSON empfangen und anzeigen, ohne die gesamte Seite neu zu laden. Mit Echtzeit-Widget-Updates ist dieser Typ dynamischer, mobilfreundlicher und fast so beliebt wie der nächste Typ.

Neueste CSA

Angular ist eines der Frameworks, mit denen solche Anwendungen erstellt werden können. Angular verfügt über eigene Funktionen, sodass die herkömmliche Locater-Strategie für Automatisierungstests zeitaufwändig ist.

Was ist Winkelmesser?

Protractor ist ein End-to-End-Testframework für AngularJS-Anwendungen und arbeitet als Lösungsintegrator, der leistungsstarke Tools und Technologien wie NodeJS, Selenium WebDriver, Jasmine, Cucumber und Mocha kombiniert. Es wurde ursprünglich von Google-Entwicklern zur Unterstützung von Angular-Anwendungen entwickelt und später als Open-Source-Framework veröffentlicht. Jetzt winkelmesser unterstützt sowohl winkel und Nicht-Winkel anwendungen. Der Winkelmesser ist ein Wrapper, der auf Webdriver geschrieben ist.js, alle Funktionen, die in Selenium Webdriver unterstützt werden, werden von ihm unterstützt, zusätzlich zu winkelspezifischen Funktionen.

WebDriverJs ist die offizielle Javascript-Implementierung von Selenium. Es verwendet das Selenium JSON-Wire-Protokoll, um wie Selenium Java mit dem Browser zu interagieren. Protractor hängt von WebdriverJs ab, um mit dem Browser zu interagieren.

Warum sind Angular JS-Webelemente schwer zu identifizieren?

Angular JS-Anwendungen haben einige zusätzliche HTML-Attribute wie ng-repeater, ng-controller, ng-model .., etc. die nicht in Selenium Locators enthalten sind. Selenium ist nicht in der Lage, diese Webelemente mithilfe von Selenium-Code zu identifizieren. Der Winkelmesser oben in Selenium kann diese Attribute in Webanwendungen verarbeiten und steuern.

Was ist Winkelmesser?

Winkelmesserfunktionen

Unterstützt winkelspezifische Lokatoren: Die Angular-Anwendung enthält Angular-spezifische Locators wie ng-model , ng-bind, ng-repeat usw. protractor hat also die Unterstützung für diese Ortungsgeräte erweitert. Sie müssen keinen komplexen XPath für Winkellokatoren erstellen, in Protractor sind diese Lokatoren für Sie bereit, sodass Sie sie einfach verwenden können.modell, durch.verstärker, etc.

Unterstützt sowohl nicht-eckige als auch eckige Anwendungen: Protractor hat die Unterstützung für Angular erweitert, unterstützt aber auch nicht-eckige Anwendungen. Das heißt, wenn Ihr Teil der Anwendung nicht eckig ist und ein Teil davon eckig ist, können Sie immer noch das Protractor Framework auswählen und eine vollständige End-to-End-Automatisierungstestautomatisierung durchführen.

Unterstützt Cross-Browser-Tests: Wir können unsere Skripte in mehreren Browsern wie Chrome, Firefox, Safari, IE11, Edge ausführen. Die Konfiguration für browserübergreifende Tests ist einfach und nimmt nicht viel Zeit in Anspruch. Wir werden dieses Thema in unseren kommenden Tutorials ausführlich behandeln.

Unterstützt parallele Ausführung: Bedenken Sie, dass wir eine große Anzahl von Testfällen haben, wenn alle Testfälle nacheinander ausgeführt werden müssen.e nacheinander verbraucht es viel Zeit. Parallele Ausführung hilft in diesem Fall. Wenn Sie beispielsweise 4 Testfälle haben, werden bei einem Lauf in zwei Instanzen des Browsers jeweils zwei Testfälle zu einem einzigen Zeitpunkt ausgeführt, sodass in kürzerer Zeit mehr Testfälle ausgeführt werden Fälle werden ausgeführt.

Unterstützt Headless Browser: Ein Headless Browser ist ein Browser ohne Benutzeroberfläche. Protractor unterstützt auch den Headless Browser.

Unterstützt Erweiterbarkeit: Da protractor ein Knoten ist.js-Anwendung kann die Vielzahl von Paketen verwenden, die im Knoten verfügbar sind. So kann man sein Framework erweitern oder zusätzliche Funktionen hinzufügen, indem man Knotenpakete installiert. Zum Beispiel, wenn Sie HTML-Bericht benötigen, können Sie einfach Jasmine HTML Reporter verwenden, für den sauberen Code können Sie eslint oder tslint installieren. Ebenso können Sie Knotenpakete Ihrer Wahl installieren.

Unterstützt Reporting-Plugins: Im Vergleich zu Nicht-Knoten.js-basiertes Open-Source-Automatisierungsframework Es ist einfach, den Bericht in Protractor zu konfigurieren. Jasmine HTML Reporter ist eines der Frameworks zur Berichterstellung. Das erzeugt HTML-Berichte für Ihre Spezifikationen. Unten ist der Beispielbericht

Unterstützt Cloud-Testplattformen: Cloud-basierte Testplattformen ermöglichen es uns, unsere Spezifikationen in mehreren Browsern (Chrome, Firefox, Safari usw.) auszuführen.), mehrere plattformen (Windows, Mac, Linux, Mobile, etc.). Protractor wird von großen Cloud-Testplattformen wie SauceLabs und CrossBrowserTesting.com .

Unterstützt mehrere Assertionsbibliotheken: Protractor unterstützt mehrere Assertionsbibliotheken wie Jasmine, Mocha oder Sie können sogar Ihre benutzerdefinierten Bibliotheken verwenden. Standardmäßig verwendet protractor Jasmine Framework für Zusicherungen.

Unterstützt Kontrollfluss: API basiert auf Versprechen, die von einem Kontrollfluss verwaltet und für Jasmine angepasst werden. Winkelmesser-APIs sind vollständig asynchron. Alle Funktionen geben Versprechen zurück. Es verwaltet eine Warteschlange ausstehender Versprechen, den so genannten Kontrollfluss, um die Ausführung organisiert zu halten. (Wir werden in den kommenden Tutorial-Abschnitten mehr über Versprechen erfahren).

Unterstützt verschiedene IDEs & Editoren: Es gibt Unmengen von IDEs auf dem Markt, aus denen Sie auswählen können. Die beliebtesten Editoren sind Visual Studio Code, WebStorm, Visual Studio Professional, Atom und Sublime. (Wir werden in unseren kommenden Tutorials ausführlich darauf eingehen)

Unterstützt CI / CD: Sobald Automatisierungsskripte vorhanden sind, müssen wir sie nicht mehr manuell ausführen und überwachen. Jedes Mal, wenn neuer Code an das Repository gesendet wird, sollten die Winkelmessertests automatisch ausgeführt werden und Sie erhalten den Bericht. Das heißt, wir müssen den Prozess automatisieren, wir können dies erreichen, indem wir den Protractor-Test integrieren, um Tools wie Jenkins, TFS oder Azure DevOps zu erstellen. Protractor unterstützt die Integration von Build-Tools. (Wir werden Schritt für Schritt Konfigurationsdetails in unseren kommenden Tutorials behandeln).

Wie funktioniert der Winkelmesser?

framework

Protractor ist ein End-to-End-Testframework, Protractor basiert auf WebdriverJS, WebdriverJS ist Selenium Webdriver API Javascript Bindings. Das bedeutet, dass die WebdriverJS-API APIs für Tests bereitstellt, die in Javascript geschrieben sind. Der Winkelmesser ist ein Selen-basiertes Testframework, dh der Winkelmesser interagiert mit Selenium-Servern und Webtreibern wie ChromeDriver, GeckoDriver, SafariDriver usw. um die Benutzeraktionen zu simulieren.

Wenn Ihre Testskripte Befehle an den Selenium-Server senden, der wiederum mit dem Browsertreiber kommuniziert und die Befehle ausführt (Aktionen ausführen). Protractor unterstützt verschiedene Assertions-Frameworks wie Jasmine, Mocha usw. Dieses Assertion Framework hilft uns, die Werte zu validieren oder zu verifizieren, Ihr Test wird wiederum als bestanden oder nicht bestanden markiert. Kurz gesagt, Protractor, WebdriverJS, Selenium Server, Browser Driver und Assertion Framework bieten die Infrastruktur zum Schreiben und Ausführen unserer End-to-End-Tests.