2014-09-09 13 views
9

Ich habe überall gesucht, aber es sieht aus wie ich bin nur die Person fragt dies.halten Winkelmesser Browser-Sitzung lebendig

Wie Browser-Sitzung in Winkelmesser am Leben zu halten, nicht jedes Mal, wenn ich einen Test ausführen muss. Ich habe in onPrepare setzen Login Logiken Protokollierung für jede Testfunktion

onPrepare: function() { 
    var mymodule = require("./e2e/mymodule"); 
    mymodule.login(); 
    mymodule.switchToProject("someproject"); 
} 

Aber noch in dauert 3-4 Sekunden für jedes Mal, wenn ich Winkelmesser laufen Anmeldung zu vermeiden, die Ich mag würde überspringen. Irgendwelche Ideen ?

ziehe ich eine Lösung für chromeOnly: true Einstellung aber eine Lösung für separaten Selen-Server würde auch

+0

Ha! Meine e2e-Suiten sind Tausende von Tests und dauert ~ 30 Minuten, aber Sie beschweren sich für 3-4 Sekunden? Hehe, Nur Unit-Tests mit Karma können eine solche Geschwindigkeit erreichen, der Protractor e2e soll jedes Mal mit einem neuen Session-Browser & Session-Cache beginnen und sich mindestens einmal als e2e-Run einloggen. –

+0

Darüber hinaus müssen Sie nach einer Möglichkeit suchen, das Chrome-Profil bei jedem Lauf erneut zu verwenden. Mit demselben Profil kann der Browser Cookies beibehalten. –

+1

Danke Leo für deinen Tipp Ich werde im Internet nachsehen, wie ich ein bestimmtes Chrome-Profil wiederverwende. Inzwischen habe ich über eine andere gute Lösung nachgedacht, Login über einen API-Schlüssel zu implementieren, der nur eine Zeile browser.get() benötigt – papoola

Antwort

7

Protractor schafft ein ganz neues Chrome-Profil jedes Mal, es läuft gut. Bevor Sie sich damit beschäftigen, müssen Sie sich bewusst sein, dass dies für Ihre Tests Zuverlässigkeit bietet: Sie werden jedes Mal auf die gleiche Art und Weise ausgeführt, da sie von einem unbeschriebenen Blatt ausgehen. Wenn Sie sich dafür entscheiden, ein persistentes Profil zu verwenden, das bereits angemeldet ist, beginnen Ihre Protractor-Tests zu versagen, sobald die Anmeldung abläuft, das Profil gelöscht wird oder Sie versuchen, sie auf einem anderen Computer auszuführen.

Das heißt, es gibt eine Möglichkeit, Chrome zu bitten, dasselbe Profil (einschließlich Cookies und aller Einstellungen) für jeden Lauf von Progractor-Tests wiederzuverwenden. In Ihrem protractor.conf.js Sie etwas tun, werden wie folgt aus:

capabilities: { 
    'browserName': 'chrome', 
    'chromeOptions': { 
     'args': ['--user-data-dir=/a/random/path'] 
    } 
} 

Die 'args' hier ist der Tenor. Sie können Befehlszeilenargumente beim Starten an die Chrome-Version von Protractor übergeben (Sie könnten beispielsweise '--start-maximized' übergeben, um Chrome beim Start zu maximieren).

Ersetzen Sie mit einem beliebigen Dateipfad (ausgehend von root) auf Ihrem System. Stellen Sie nur sicher, dass die Ordner, auf die Sie verweisen, erstellt wurden. Sie müssen nicht Ihren eigenen Chrome-Profilpfad verwenden - das ist nur unnötiger Ärger. Erstelle irgendwo einen Ordner und benutze ihn.

Wenn der Winkelmesser Chrome startet, befindet sich das Profil an der von Ihnen angegebenen Position, und es wird weiterhin verwendet, solange der Pfad unverändert bleibt.

Denken Sie daran, dass dies eine Browser-Operation ist, überhaupt nicht verwandt mit was Selenium oder Winkelmesser tut. Ich weiß nicht, ob es einen Weg gibt, dies mit Firefox oder anderen Browsern zu tun, da jeder seine eigene Art hat, Benutzerprofile zu speichern.

+0

nette Antwort, gut geschrieben –

+0

Ja sehr gute Antwort. Ich weiß nicht, ob ich diese Antwort verwenden werde, aber ich stimme nur zu, um sie zu unterstützen. – scaryguy

Verwandte Themen