2014-09-09 1 views
9

Ho cercato ovunque ma sembra che sia l'unica persona a chiedere questo.tenere viva la sessione del browser con il goniometro

Come mantenere attiva la sessione del browser in goniometro, per non dovere effettuare il login ogni volta che eseguo un test. Ho messo logiche accesso in onPrepare per evitare la registrazione per ogni funzione test

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

Ma ancora accedendo richiede 3-4 secondi ogni volta che viene eseguita goniometro che desidero ignorare. Qualche idea ?

Io preferisco una soluzione per chromeOnly: true impostazione, ma una soluzione per server di selenio separato sarebbe bene pure

+0

Ha! Le mie suite e2e sono migliaia di test e richiedono ~ 30 minuti ma ti lamenti per 3-4 secondi? Hehe, Solo le unità di test con Karma possono bersagliare una tale velocità, Protractor e2e è pensato per iniziare su un nuovo browser di sessione e cache di sessione ogni volta e riconnettersi ogni e2e eseguito almeno come primo passo. –

+0

Detto questo, è necessario cercare un modo per riutilizzare il profilo di Chrome ad ogni esecuzione, utilizzando lo stesso profilo consentirà al browser di conservare i cookie. –

+1

Grazie Leo per il tuo suggerimento cercherò sul Web come riutilizzare un profilo specifico per Chrome. Nel frattempo ho pensato ad un'altra buona soluzione, per implementare l'accesso tramite una chiave API che avrà bisogno di una sola riga browser.get() – papoola

risposta

7

goniometro crea un nuovo profilo di Chrome ogni volta che viene eseguito. Prima di scherzare con questo, è necessario essere consapevoli del fatto che questo fornisce affidabilità per i test: si eseguiranno allo stesso modo ogni volta perché iniziano da una lavagna vuota. Se si decide di utilizzare un profilo persistente che è già stato effettuato l'accesso, i test del goniometro inizieranno a non funzionare non appena il login scade, il profilo viene eliminato o si tenta di eseguirli su un altro computer.

Detto questo, c'è un modo per chiedere a Chrome di riutilizzare lo stesso profilo (inclusi i cookie e tutte le impostazioni) per ogni serie di test del goniometro. Nella tua protractor.conf.js qualcosa si farà in questo modo:

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

Il 'args' qui è la parte operativa. Ti consente di passare gli argomenti della riga di comando alla versione di Chrome di Protractor all'avvio (ad esempio, puoi passare in '--start-maximized' per ottimizzare Chrome all'avvio).

Sostituire /a/random/path con qualsiasi percorso di file (a partire dalla radice) sul proprio sistema. Assicurati solo che le cartelle a cui stai facendo riferimento siano state create. Non è necessario utilizzare il proprio percorso del profilo di Chrome, è solo una seccatura inutile. Crea una cartella da qualche parte e usala.

Quando il goniometro avvia Chrome, il suo profilo si troverà nella posizione specificata e continuerà a utilizzarlo finché il percorso rimane invariato.

Ricordare che questa operazione è del browser, non correlata a ciò che il selenio o il goniometro sta facendo. Non so se c'è un modo per farlo con Firefox o altri browser, dal momento che ognuno ha il proprio modo di memorizzare i profili utente.

+0

bella risposta, ben scritta –

+0

Sì, ottima risposta. Non so se userò questa risposta, ma ho votato per sostenere. – scaryguy