protractor testing tool
Was ist Winkelmesser?
Der Winkelmesser ist ein Automatisierungstestwerkzeug zum Testen von Webanwendungen. Kombination leistungsstarker Technologien wie Jasmine, Selenium Webdriver, Node.js usw.
Das Winkelmesser-Testtool ist ein durchgängiges verhaltensgesteuertes Testframework, das unter Berücksichtigung von Angular JS-Anwendungen entwickelt wurde. Auch wenn dies so klingt, als würde Protractor mit nicht eckigen JS-Anwendungen nicht funktionieren, ist dies der Fall.
Es funktioniert sowohl mit Angular- als auch mit Nicht-Angular-JS-Anwendungen gleich gut.
Fühlen Sie sich frei, die zu erkunden gesamte AngularJS-Reihe von Tutorials . In unserem vorherigen Tutorial der Unterschied zwischen Winkelversionen wurde im Detail erklärt.
Was du lernen wirst:
- Winkelmesser gegen Selen WebDriver
- Eigenschaften
- Wie kann Winkelmesser mir helfen?
- Welches Framework soll verwendet werden?
- Herunterladen und Einrichten von Winkelmesser
- Bereit, Ihren ersten Testfall zu erstellen?
- Wie führe ich meine Testfälle aus?
- Einige weitere coole Funktionen von Winkelmesser
- Fazit
- Literatur-Empfehlungen
Winkelmesser gegen Selen WebDriver
Was unterscheidet Winkelmesser von traditionellen Selenium WebDriver ?
Nehmen Sie sich eine Minute Zeit, um diese Fragen zu beantworten:
- Ist es schwierig festzustellen, wann genau die Webseite endgültig geladen wird (alle asynchronen Elemente sind bereit und werden verarbeitet)?
- Sind Sie es leid, Ihrem Code Wartezeiten und Schlafmöglichkeiten hinzuzufügen?
- Möchten Sie die mühsame Anstrengung, die eckigen Elemente zu lokalisieren, loswerden?
- Frustriert davon, Elemente mit sich ändernden IDs zu finden?
- Möchten Sie Ihren eigenen Locator erstellen?
- Schreiben Sie langwierigen Code, selbst für die einfachsten Aussagen?
- Sind Sie ein JavaScript-Enthusiast / Fan?
Wenn Sie diese Fragen mit Ja beantwortet haben, Winkelmesser kann helfen.
Es ist ein Wrapper, der auf Selenium Webdriver basiert und somit alle Funktionen von Selenium sowie viele nützliche Ergänzungen bietet. Es bietet:
Eigenschaften
Es bietet:
1) WaitForAngular
beste kostenlose DVD zu AVI Konverter
Aus der Dokumentation:
'' Weisen Sie WebDriver an, zu warten, bis Angular das Rendern beendet hat und keine ausstehenden $ http- oder $ timeout-Aufrufe mehr vorliegen, bevor Sie fortfahren. Beachten Sie, dass Protractor diesen Befehl vor jeder WebDriver-Aktion automatisch anwendet. ''
Dies bedeutet, dass Sie Ihrem Skript keine manuellen Wartezeiten hinzufügen müssen und Protractor automatisch auf das Laden der Webelemente wartet und erst dann die nächsten Schritte ausführt.
zwei) Es kann eine globale Funktion exportieren Element , der einen Locator nimmt und einen ElementFinder zurückgibt. Dieser ElementFinder verfügt über eine Reihe von Aktionsmethoden wie click (), getText (), sendKeys () usw. Dies ist der Kern der Interaktion mit dem Element und des Abrufs von Informationen.
Diese globale Funktion hilft, die Syntax für die Elementlokalisierung zu reduzieren. Sehen Sie sich die folgende Anweisung an, um das Element in Selenium WebDriver und Protractor zu finden:
Selenium Webdriver ::
driver.findElement(By.cssSelector('css selector'));
Winkelmesser ::
element(by.css('some-css'));
Die Syntax sieht kompakt aus, nicht wahr?
3) Einige neue Locator-Strategien und -Funktionen zur Lokalisierung der Winkelelemente sind: By.binding, By.repeater, By.textarea, By.model, WebElement.all, WebElement.evaluate , usw.
Wie kann Winkelmesser mir helfen?
Schauen Sie sich die folgenden herausragenden Merkmale an:
- Einfache Syntax zum Schreiben von Testfällen
- Die Möglichkeit, mehrere Browser gleichzeitig mit Selenium Grid auszuführen
- Winkelspezifische Ortungsgeräte
- Unterstützung für verhaltensorientierte Entwicklung wie Jasmine / Mocha
- Keine Notwendigkeit, Schlaf / Wartezeiten hinzuzufügen
- Unterstützte Integration mit Jenkins / Browser Stack / Grunt etc.
- Beheben Sie das Problem der Synchronisierung auf Angular JS-Websites
- Unterstützung mehrerer Browser (Firefox, Chrome, Safari, Internet Explorer)
- Möglichkeit, dieselben Skripte auch in mobilen Browsern auszuführen, ohne den Code ändern zu müssen
Welches Framework soll verwendet werden?
Es unterstützt zwei sofort einsatzbereite BDD-Test-Frameworks (Behavior-Driven Development):
- Jasmin: Jasmin ist das Standardtest-Framework, wenn Protractor installiert ist. Wir werden Jasmin in diesem Artikel verwenden.
- Mokka: Mokka ist ein JavaScript-Testframework, das auf Node.js ausgeführt wird. Wenn Sie Mocha als Testframework verwenden möchten, müssen Sie es mit Ihrem Winkelmesser einrichten und außerdem die verhaltensgesteuerte Entwicklungsschnittstelle und Chai-Zusicherungen mit Chai wie versprochen verwenden (siehe) dieser Link für mehr Details ).
Herunterladen und Einrichten von Winkelmesser
Da es sich um ein Programm von node.js handelt, müssen Sie node.js installieren, damit es ausgeführt wird. Node.js kann von dieser URL heruntergeladen werden, indem Sie das Betriebssystem auswählen: Node.js herunterladen
Mit node.js erhalten Sie auch Winkelmesser über dem Meeresspiegel Paket, mit dem jetzt Protractor installiert werden kann.
Nachdem node.js auf Ihrem Computer installiert ist, öffnen Sie die Eingabeaufforderung (cmd) und drücken Sie den folgenden Befehl, um es global zu installieren:
npm install -g protractor
'-G' wird verwendet, um dieses Tool global zu installieren. Entfernen Sie es, wenn Sie es nicht global installieren möchten. Dieser Befehl installiert auch die Protractor-API zusammen mit einem Standard-Selenserver. Dies bedeutet, dass Sie nicht unbedingt einen eigenständigen Server starten müssen.
Jetzt müssen wir den Selenserver und ChromeDriver installieren. Verwenden Sie den folgenden Befehl (wird auch mit Winkelmesser geliefert) in cmd:
webdriver-manager update
Dies ist alles, was wir brauchen, um mit unserem ersten Testfallschreiben unter Verwendung dieses Frameworks zu beginnen. Wenn Sie möchten, können Sie eine beliebige IDE / einen beliebigen Editor installieren, um Ihren Code zu schreiben. Eclipse IDE ist die beliebteste, aber es gibt auch einige weitere coole Editoren, die berücksichtigt werden müssen. Persönlich bevorzuge ich den Atom-Editor für das Schreiben von Winkelmessern.
Bereit, Ihren ersten Testfall zu erstellen?
Zum Ausführen werden 2 Dateien benötigt:
- Konfigurationsdatei
- Spezifikationsdatei.
Das Konfigurationsdatei ist derjenige, der Protractor mitteilt, wo sich die Testdateien (Spezifikationen) befinden / welcher Browser ausgewählt werden soll / welches Framework verwendet werden soll (Jasmine / Mocha) / wo mit Ihrem Selenium-Browser und anderen Konfigurationen gesprochen werden soll. Wenn in Konfigurationsdateien keine Konfiguration definiert ist, werden die Standardeinstellungen verwendet.
In der Spezifikationsdatei schreiben wir unseren eigentlichen Testcode. Alle unsere Testfunktionsabläufe / Zusicherungen befinden sich in dieser spezifischen Datei. Abhängig von der Anzahl der Testfälle gibt es möglicherweise mehrere Spezifikationsdateien, aber nur eine Spezifikationsdatei kann die gesamte Testsuite mit mehreren Spezifikationen ausführen.
Beispiel TESTFALL:
Jetzt schreiben wir einen einfachen Testfall, in dem wir zu einer URL navigieren und nach dem Seitentitel suchen.
Hier sind die Schritte:
- Erstellen Sie einen neuen Ordner für Ihre Testsuite.
- Erstellen Sie eine neue Datei mit dem Namen ' js (Jeder Name reicht aus) Alle Spezifikations- / Konfigurationsdateien haben die Erweiterung '.js'.
- Erstellen Sie eine neue Datei mit dem Namen ' js '.
//CheckTitleSpec.js describe('Protractor Demo', function() { it('to check the page title', function() { browser.ignoreSynchronization = true; browser.get('https://www.softwaretestinghelp.com/'); browser.driver.getTitle().then(function(pageTitle) { expect(pageTitle).toEqual('Software Testing Help - A Must Visit Software Testing Portal'); }); }); });
Jetzt können wir alle mit unserer Codierung beginnen. Siehe den folgenden Code der Datei 'testCaseNameSpec.js'.
So sieht die Konfigurationsdatei aus:
// conf.js exports.config = { framework: 'jasmine', capabilities: { browserName: 'chrome', }, specs: ('simpleTestSpec.js') };
Lassen Sie uns nun diese beiden Dateien aufteilen und sehen, wie es funktioniert.
# 1) Spec.js
- Alle Befehle auf Browserebene werden von ‘ Browser ’, Ein von Protractor erstelltes Global.
- Da wir dem Jasmine-Framework folgen, beschreiben ' und ' es Sind die Syntaxen von Jasmine. Die Beschreibung enthält den gesamten Ablauf Ihres Testfalls, während 'es' einige Testschritte / -szenarien usw. enthalten kann. Sie können mehrere ' es Blockiert in Ihrem Programm, wenn Sie dies wünschen.
- browser.get ist eine einfache Selenium-Syntax, die Protractor anweist, eine bestimmte URL im Browser zu treffen.
- Da es sich bei der Website, auf die wir zugreifen möchten, um eine nicht eckige Website handelt, legen wir die fest ignoreSynchronization Tag zu ‘ wahr ’Wie in Zeile 4 angezeigt. Wenn Sie dieses Tag nicht wahr machen, schlägt Ihr Test mit dem Fehler' Angular konnte nicht auf der Seite gefunden werden 'fehl. Der Grund dafür ist, dass Protractor standardmäßig mit eckigen Websites arbeiten möchte. Wenn wir Protractor zur Validierung der nicht eckigen Website verwenden, müssen wir dies Protractor ausdrücklich mitteilen. Wenn Sie jedoch an eckigen Websites arbeiten, müssen Sie diese Anweisung nicht verwenden, da Winkelmesser die Webseite standardmäßig als eckig betrachtet.
- 'Erwarten' ist nichts anderes als die Behauptung, dass wir den Titel der Webseite vergleichen, um einigen vordefinierten Daten zu entsprechen. Wir werden weitere Aussagen im Detail diskutieren.
#zwei) conf.js
- Wie bereits erwähnt, ist die Konfigurationsdatei diejenige, die Protractor die Kerndetails mitteilt. Wie im Code angezeigt, lautet das Framework 'Jasmine'.
- Im Abschnitt Funktionen werden Browserkonfigurationen festgelegt. Sie können den Browsernamen wie Firefox / Chrome usw. definieren. Sie können auch die maximale Anzahl von Instanzen der Browser festlegen, sodass Sie mehrere Testfälle gleichzeitig in verschiedenen verfügbaren Browserfenstern ausführen können.
- In dem ' Spezifikationen Im Abschnitt 'geben wir den Pfad der Spezifikationsdatei an, d. H. Genau dort, wo sich die Spezifikationsdatei in Bezug auf die Konfigurationsdatei befindet.
- Es gibt auch viele andere coole Funktionen, die Sie an Ihre Konfigurationsdatei anhängen können, z. B. Berichterstellung / onPrepare-Funktion / Zeitlimit für Schwellenwerte usw. Einige davon werden in diesem Lernprogramm behandelt.
Wie führe ich meine Testfälle aus?
Wir haben den Code geschrieben und jetzt brauchen wir nur noch einen kleinen Druck, um unseren Code zum Laufen zu bringen. Drücken Sie den folgenden Befehl in cmd, um Ihr Programm auszuführen:
protractor conf.js
Dieser Befehl startet den Selenium-Server und anschließend das Testskript. Sie können die Protokolle in cmd selbst anzeigen oder auf Wunsch auch in einer TXT-Datei erfassen (nur füge >> textFileName.txt hinzu Nach dem obigen Befehl werden die Protokolle in der Textdatei gespeichert, die sich im selben Verzeichnis wie die Konfigurationsdatei befindet.
Wo öffnet sich ein Chromfenster SoftwareTestingHelp.com Website sollte geöffnet werden. Die Ausgabe wäre '1 Spezifikation, 0 Fehler', wenn Sie den Code ausführen. Dies bedeutet, dass wir 1 'it' -Blöcke hatten, die mit 0 Fehlern ausgeführt wurden.
Betrachten Sie nun die folgende Spezifikationsdatei, in der wir einige Aktionen auf einer auf AngularJS basierenden Webseite ausführen, damit Sie sehen können, wie Winkelmesser Selenium beim Testen der Angular-Website übernehmen:
beste Seite, um YouTube in MP3 umzuwandeln
// spec.js describe('Code to interact with Angular JS elements', function() { it('should multiply two integers', function() { browser.get('http://juliemr.github.io/protractor-demo/'); element(by.model('first')).sendKeys(5); element(by.model('second')).sendKeys(5); element(by.model('operator')).click(); element(by.xpath('.//option(@value= 'MULTIPLICATION')')).click(); element(by.id('gobutton')).click(); expect(element(by.binding('latest')) .getText()).toEqual('10'); //Incorrect expectation expect(element(by.binding('latest')) .getText()).toEqual('25'); //Correct expectation }); });
Sie können dieselbe conf.js auch zum Ausführen dieser Spezifikation verwenden. Stellen Sie einfach sicher, dass Sie den Namen der Spezifikationsdatei aktualisieren.
In dieser Spezifikationsdatei spielen wir jetzt mit einer eckigen JS-Website, damit Sie sehen können, wozu Protractor genau in der Lage ist.
Wenn Sie diese Datei wie zuvor ausführen, wird eine Webseite mit zwei Textfeldern, einem Dropdown-Menü, einer Schaltfläche und einigen anderen Webelementen geöffnet. Wie Sie vielleicht bereits vermutet haben, handelt es sich um eine Rechnerseite. Wir geben 2 ganze Zahlen als Eingabe und führen eine Multiplikationsoperation durch.
Wie bereits erwähnt, besteht einer der größten Vorteile der Verwendung dieses Werkzeugs in seinen einzigartigen Techniken zum Lokalisieren der Winkelelemente. ‘By.model’ ist eine solche Möglichkeit, Elemente zu lokalisieren. ‘.SendKeys ()’ ist übliche Selenium-Syntax zum Senden von Werten in Textfeldern und '.klicken()' wird verwendet, um auf Schaltflächen zu klicken.
Wie vorhin besprochen, 'erwarten von' ist eine Behauptung, die den Winkelmesser auffordert, das Ergebnis der Multiplikation von Zahlen zu erfassen und es nacheinander mit „10“ und „25“ zu vergleichen. Einfache Mathematik sagt uns, dass die Ausgabe '25' sein sollte und daher die erste Behauptung fehlschlägt und die zweite durchläuft.
Als Ergebnis erhalten Sie 1 Spezifikation, 1 Fehler ’In den Protokollen, wenn Sie den erwarteten Code ausführen.
Einige weitere coole Funktionen von Winkelmesser
# 1) Behauptungen und Anmerkungen
Behauptungen sind ein wichtiger Bestandteil der Automatisierungsskripte. Anmerkungen sind auch sehr nützlich, um bestimmte Methoden in einer Klasse effektiv mit einer besonderen Bedeutung zu versehen.
Es bietet eine Vielzahl von Zusicherungen und Anmerkungen und darüber hinaus die Möglichkeit, eigene Zusicherungen zu erstellen.
Betrachten Sie das folgende Beispiel:
describe('Code to understand assertions/annotations', function() { beforeEach(function() { browser.get('http://juliemr.github.io/protractor-demo/'); }); afterEach(function() { browser.get('https://www.madewithangular.com/#/'); }); var multiplyNumbers = function(a, b) { element(by.model('first')).sendKeys(a); element(by.model('second')).sendKeys(b); element(by.model('operator')).click(); element(by.id('gobutton')).click(); }; it('should multiply two integers', function() { multiplyNumbers(2, 2); expect(element.all(by.repeater('result in memory')).count()).toEqual(2); multiplyNumbers(3, 3); expect(element.all(by.repeater('result in memory')).count()).toEqual(2); }); });
Im obigen Beispiel verwenden wir 2 Anmerkungen. 'Vor jedem' und 'nach jedem' . Diese Anmerkungen sind auch in TestNG (traditionelles Selen) verfügbar. Diese Anmerkungen stellen sicher, dass ein bestimmter Code vor / nach bzw. nach der Ausführung des verbleibenden Codes ausgeführt wird.
Hier ist also, wie die Ausführung des Codes stattfinden wird:
- Der Winkelmesser greift in das vor jedem ’Block zuerst und es wird’ http://juliemr.github.io/protractor-demo/ ’URL im Browser.
- Jetzt bewegt sich der Fluss zum 'it'-Block und zur Funktion' multipllyNumbers ’ wird aufgerufen, wodurch wiederum die darin angegebenen Aktionen ausgeführt werden und das Steuerelement an den Ort zurückgeschickt wird, an dem die Funktion aufgerufen wurde.
- Endlich wird die Behauptung ihren Job machen. Wenn wir jetzt mehrere Elemente gleichzeitig angehen möchten, können Sie die Funktion 'element.all' dieses Tools verwenden. Es identifiziert alle verfügbaren Elemente mit dem angegebenen Locator (in diesem Fall by.repeater). Es liegt an Ihnen, was Sie mit den identifizierten Elementen tun möchten. In diesem Fall vergleichen wir den Berechnungsverlauf mit einer bestimmten Zahl.
- Da wir in der ersten Behauptung die Anzahl der Berechnungshistorien mit '2' vergleichen, obwohl wir die Berechnung nur einmal durchgeführt haben, schlägt die Behauptung fehl. Die zweite Behauptung wird jedoch bestanden, da nach der zweiten Berechnung die Anzahl der Historien „2“ wäre.
Es gibt viel mehr verfügbare Arten von Behauptungen. Einige davon sind unten angegeben:
a) Holen Sie sich Text aus einem Webelement und vergleichen Sie ihn mit einem bestimmten Wert:
element(by.locator('someLocator')).getText(text) .then(function() { expect(text).toEqual('someData'); expect(text).not.toEqual('someData'); expect(text).toContain('someOtherData'); });
b) Überprüfen Sie, ob ein Webelement auf der Seite angezeigt wird oder nicht:
expect(browser.driver.findElement(by.locator(someLocator)) .isDisplayed()).toBe(true);
# 2) Umgang mit mehreren Browsern / Fenstern / Registerkarten
Es kann mehrere Fälle geben, wenn es um die Handhabung des Browsers geht. Einige dieser Fälle sind nachstehend aufgeführt:
a) Eine neue Registerkarte wird geöffnet, indem Sie auf einen beliebigen Link klicken
Wenn Sie auf einen Link klicken, wird manchmal eine neue Registerkarte geöffnet, und die restlichen Aktionen müssen im neu geöffneten Fenster ausgeführt werden. In diesem Fall müssen Sie den Window Handler auf folgende Weise implementieren, wenn Sie den Code so schreiben, dass eine neue Registerkarte geöffnet wird:
//Get all of the opened windows and store the count in handles browser.getAllWindowHandles().then(function(handles) { //Now switch the control to the newly opened window browser.switchTo().window(handles(1)).then(function() { //Write the code which needs to be executed in the new tab }); });
Ermitteln Sie zuerst alle verfügbaren Fenster und wechseln Sie dann mithilfe der Indizierung die Steuerung zwischen den Fenstern. Das ursprüngliche Fenster, das das neue Fenster initiiert hat, hat den Index 0, während die nachfolgenden Fenster zunehmende Indizes haben.
b) Öffnen eines völlig neuen Browsers mit neuer Sitzung
Wenn Sie einige Aktionen in einem Browser ausführen und weitere Aktionen in einer anderen Sitzung des Browsers ausführen müssen, müssen Sie die verwenden forkNewDriverInstance . In diesem Fall erstellen wir eine neue Browserinstanz mit einem neuen Browsernamen auf folgende Weise:
describe('Code to understand assertions/annotations', function() { //Create a new browser instance var newBrowser = browser.forkNewDriverInstance(); it('should should open multiple browsers instances', function() { //Opens a URL in the 1st browser instance browser.get('http://juliemr.github.io/protractor-demo/'); //Opens a URL in the 2nd browser instance newBrowser.get('https://www.madewithangular.com/#/'); newBrowser.driver.quit(); }); });
c) Ausführen Ihres Testfalls in mehreren Browsern:
Das Ausführen Ihres Testfalls in zwei Browsern gleichzeitig kann eine Konfigurationsdatei für Sie tun. Fügen Sie einfach den folgenden Code in Ihre Konfigurationsdatei ein:
Sobald Sie diese Konfigurationsdatei ausführen, werden Tests angezeigt, die sowohl in Firefox als auch in Chrome gleichzeitig ausgeführt werden, und Ausführungsprotokolle werden separat in der Eingabeaufforderung angezeigt.
// conf.js exports.config = { framework: 'jasmine', specs: ('SomeSpec.js'), multiCapabilities: ({ browserName: 'firefox' }, { browserName: 'chrome' }) }
# 3) Verwenden Sie Seitenobjekte, um Ihr Framework noch besser zu machen
Dieses Tool ist für sich genommen gut, aber in Kombination mit dem Page Object Model (POM) unbesiegbar. Die meisten seiner Mängel (falls vorhanden) werden mit dem Seitenobjektmodell behoben. Darüber hinaus hilft POM dabei, Ihr Projekt strukturierter zu pflegen.
Wenn Sie nicht wissen, was POM ist, keine Sorge. POM ist eine Möglichkeit, Ihren Testfall anhand der Seiten zu trennen.
Nehmen Sie dieses Beispiel:
Es gibt eine Shopping-Website. Ihr Testfall besteht darin, ein Produkt auszuwählen, es in den Warenkorb zu legen und es dann zu kaufen.
Hierfür gibt es zwei Möglichkeiten, Ihren Testskriptcode zu verwalten:
- Schreiben Sie einen einfachen Testfall mit allen Locatoren auf derselben Seite, auf der Ihre Logik geschrieben ist.
- Schreiben Sie Ihren gesamten Testfallfluss, Ihre Logik in Ihre Spezifikationsdatei und trennen Sie Ihre Locators und Testdaten in verschiedene Dateien. Jede Webseite verfügt über eine entsprechende JS-Auslagerungsdatei. Auf diese Weise wird Ihr Code strukturiert. Wenn es einen anderen Testfall gibt, für den derselbe Locator erforderlich ist, müssen Sie diese Locators nicht erneut schreiben. Importieren Sie einfach diese Locator-Datei und verwenden Sie sie gemäß Ihren Anforderungen.
Die Pflege Ihrer Testfälle kann ein echtes Problem sein. Wenn Sie POM verwenden, ist Ihr Code viel strukturierter.
c ++ Zeichen in int konvertieren
Hier ist ein Beispiel für die Verwendung des Seitenobjektmodells:
Dies ist der Ablauf im obigen Schnappschuss:
- Es gibt einen Testfall, der Laptop kauft. Der Code für den Ablauf und die Logik befindet sich in der Datei purchaseLaptopSpec.js.
- Alle Seiten, auf die beim Kauf des Laptops gestoßen wird, enthalten 1 '.js' -Datei mit einem richtigen Titel. Alle Elemente, die für den Kauf des Laptops erforderlich sind, befinden sich in der jeweiligen Auslagerungsdatei.
- Die für diesen Testfall erforderlichen Daten können im TestData-Ordner entweder im Format '.json' oder im Excel-Format gespeichert werden.
- Wenn Sie mit den Seiten und Locators fertig sind, importieren Sie diese Dateien einfach in Ihre Spezifikationsdatei, um die Locator- / Testdaten zu verwenden, und schon sind Sie mit Ihrem Testfall fertig.
# 4) Berichterstattung
NPM (Node Package Manager) bietet verschiedene Berichtspakete, mit denen ein Screenshot jedes Testschritts erfasst werden kann. Nach Abschluss des Testlaufs wird ein HTML-Bericht für Sie erstellt. Alles, was Sie tun müssen, ist, diese Pakete zu installieren, indem Sie eine Eingabeaufforderung öffnen und die folgenden Befehle ausführen:
npm install -g protractor-jasmine2-html-reporter
npm install protractor-jasmine2-screenshot-reporter --save-dev
Sobald diese Pakete installiert sind, werden jedes Mal, wenn Sie Ihre Konfigurationsdatei ausführen, alle Screenshots Ihrer Testfälle gespeichert und es wird ein HTML-Bericht erstellt, der das Ergebnis des Bestehens / Nichtbestehens des Testfalls anzeigt.
# 5) Integrieren Sie in andere leistungsstarke Tools wie Git / Jenkins / Browserstack / Grunt
Auf dem Markt sind mehrere Tools verfügbar, mit denen Sie Ihre Testfälle noch besser machen können. Git / Jenkins / BrowserStack / Grunt sind einige dieser Tools, die Ihren normalen Protractor-Testskripten einen erheblichen Mehrwert verleihen. Und das Beste daran ist, dass Sie Ihre Spezifikationsdatei nicht berühren müssen, um Ihren Winkelmesser in eines dieser Tools zu integrieren. Es ist Ihre Konfigurationsdatei, die all diese Dinge für Sie übernimmt.
Gehen ist ein sehr leistungsfähiges Tool zur Versionskontrolle. Es ist immer eine bewährte Methode, Ihren Code in Git zu behalten, wenn mehrere Entwickler beteiligt sind.
Jenkins ist ein kontinuierliches Integrationstool, mit dem Sie Ihre Testfälle planen und nach Bedarf ausführen können. Winkelmesser-Skripte können auch mit Jenkins konfiguriert werden. Die beste Möglichkeit, Ihre Testfälle auf Jenkins auszuführen, besteht darin, dass sie sehr schnell ausgeführt werden und Sie mehrere Testfälle gleichzeitig ausführen können.
BrowserStack ist ein browserübergreifendes Testtool, mit dem Sie Ihre Anwendungen auch in verschiedenen Browsern testen können. Es kann auch in Protractor integriert werden, indem die browserStack-Anmeldeinformationen in Ihre Konfigurationsdatei eingefügt werden.
Boden ist ein JavaScript-Task-Runner. Es bietet Ihnen die Möglichkeit, mehrere Aufgaben für Sie auszuführen. Das Besondere ist, dass es mehr als 4000 Aufgaben gibt und Sie je nach Anforderung noch mehr Aufgaben erstellen können. Im Folgenden sind einige der wichtigen Aufgaben des täglichen Gebrauchs aufgeführt, für die wir Grunt verwenden können:
- Listen Sie alle Best Practices für die Codierung auf und informieren Sie sofort, wenn Sie gegen eine dieser Methoden verstoßen.
- So erstellen Sie mehrere Spezifikationsdateien zur Laufzeit. Zum Beispiel , wenn es einen Testfall gibt, den Sie mehrmals ausführen möchten (von 1 bis zu einer beliebigen Anzahl). Dies mag zu diesem Zeitpunkt unnötig erscheinen, aber denken Sie daran, einen Checkout-Flow für Einkaufswebsites auszuführen, der in jedem verfügbaren Land ausgeführt werden soll. Es wäre mühsam, mehrere Spezifikationen manuell zu erstellen. Also, lass Grunt das für dich tun.
- Die Uhrfunktion. Sie schreiben einen Testfall und jedes Mal, wenn Sie Ihren Code speichern, nachdem Sie Änderungen daran vorgenommen haben, möchten Sie, dass Ihr Testfall ausgeführt wird, hat Grunt ihn.
- Mehrere Dateien verketten.
Probieren Sie es einfach aus und Sie werden es lieben.
Fazit
Sie können Selen wie einen Winkelmesser arbeiten lassen, aber warum das Rad neu erfinden? Wenn Google sich so viel Mühe gegeben hat, damit Winkelmesser wie ein Zauber wirken, lassen Sie es in vollen Zügen nutzen. Zumindest für die AngularJS-Websites wird dies Ihr Leben viel einfacher machen.
In diesem Artikel geht es auch nicht nur um Winkelmesser. Es gibt eine große Welt von Winkelmessern und es gibt Hunderte von Paketen auf dem Markt, die von NPM angeboten werden, um Ihrem Test neben einfachen Testszenarien weitere Funktionen hinzuzufügen. Fühlen Sie sich frei, diese Pakete zu verwenden und es noch besser zu machen.
Über den Autor: Dies ist ein Gastbeitrag von Deshansh. Er arbeitet als Software Development Engineer in Test bei einem der führenden MNCs. Er verfügt über umfangreiche Erfahrung in der Prüfung von Selen- und Winkelmessern.
Unser bevorstehendes Tutorial hilft Ihnen dabei, jedes AngularJS-Interview erfolgreich zu beenden.
PREV Tutorial | NÄCHSTES Tutorial
Literatur-Empfehlungen
- Beste Software-Test-Tools 2021 (QA Test Automation Tools)
- Testen von Primer eBook Download
- Automatisierungstests mit Gurkenwerkzeug und Selen - Selen-Tutorial Nr. 30
- Anwendungen installieren und für Appium-Tests vorbereiten
- Lasttests mit LoadUI - Ein kostenloses und Open Source-Lasttest-Tool
- Integration von Selen mit JMeter
- Lasttests mit HP LoadRunner-Tutorials
- Tutorial zum WAVE Accessibility Testing Tool