2014-05-08 12 views
7

Zum Beispiel möchte ich eine Chat-Funktion zwischen zwei angemeldeten Benutzern testen, die mit AngularJS implementiert wurden.Kann der Winkelmesser verwendet werden, um mehrere Browsersitzungen zu testen?

Der Test muss sicherstellen, dass zwei oder mehr separate Gruppen von Browseraktionen in der richtigen Reihenfolge ausgeführt werden. Beispiel: Benutzer A meldet sich an, Benutzer B meldet sich an, Benutzer A sieht, dass B angemeldet ist, Benutzer A sendet Benutzer-B-Chat-Text, Benutzer B empfängt Chat-Text. Benutzer B antwortet auf Benutzer A.

Ist das etwas, das mit Winkelmesser getan werden kann? Wenn nicht, gibt es eine andere Möglichkeit, mehrere Browsersitzungsworkflows automatisch zu testen?

+0

Dies kann Ihnen helfen http://stackoverflow.com/questions/20692008/protractor-run-multiple-tests-in-parallel-on-different-browser –

+0

Ich glaube nicht, nur eine oder mehrere Spezifikationen parallel ausgeführt werden wird diese Anforderung erfüllen. Ich habe der Frage einen Beispielworkflow hinzugefügt, um die Anforderungen zu verdeutlichen. – softweave

Antwort

10

UPDATE hat endlich Diese Funktion ist added sehen example usage and docs und tests here oder siehe unten Einrichtung:

browser.get('http://www.angularjs.org'); 

// To create a new browser with url as 'http://www.angularjs.org': 
var browser2 = browser.forkNewDriverInstance(true); 

// Interaction in the first browser 
element(by.model(...)).click(); 

// Interaction in the second browser 
browser2.$('.css').click(); 

Beachten Sie, dass IE und Safari wird Cookies oder Caches nicht isolieren, also erwarten Sie nicht, dass Sie sich gleichzeitig mit verschiedenen Benutzern anmelden können, es sei denn, Ihr Selen-Provider ist ein Grid, das immer eine saubere Sitzung wie SauceLabs oder BrowserStack verwendet.

+0

Die Funktion zur Unterstützung mehrerer Browser-Instanzen in einem einzigen Test ist Teil von Protractor 1.5.1. – softweave

+0

Danke für das Hinweisen! Antwort aktualisiert;) –

+1

Es gibt auch ein Winkelmesser-Plugin, das Screenshots für jede Browser-Instanz erstellt und schöne Visualisierungen der Ergebnisse bietet - https://github.com/azazar/protractor-screenshot-plugin. Disclaimer, ich bin der Autor davon. – Andrej

4

Sie können zusätzliche Fenster innerhalb eines Tests öffnen und Aktionen und Assertionen in diesen Fenstern ausführen. Sie tun dies mit Standard-Webdriverjs-APIs:

Dies funktioniert möglicherweise nicht für Sie, wenn Sie Session-Cookies verwenden. Beide Fenster können denselben Cookie erhalten. Wenn dies der Fall ist, melden Sie sich in beiden Fenstern als derselbe Benutzer an. Eine Umgehungsmöglichkeit besteht darin, auf die zweite Instanz der Anwendung in einer anderen Domäne zuzugreifen. Zum Beispiel mit der IP-Adresse oder eine neue Domäne in der Hosts-Datei ..

+0

Hey! Ich mag Ihre Idee für die Problemumgehung * "Verwenden der IP-Adresse oder Einrichten einer neuen Domäne in Ihrer Hosts-Datei" * sehr clever :) –

Verwandte Themen