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.
fonte
2015-07-14 18:52:42
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. –
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. –
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