2015-02-19 8 views
5

Allora sto scrivendo alcuni test E2E per la creazione di un account su un sito web. Dopo aver creato un account web, il sito mi invierà un'e-mail per verificare il mio account, così posso effettuare il login. La mia domanda è: fino a che punto è il test E2E? andrei nella direzione sbagliata se uso il goniometro per andare su google, trovare l'email e fare clic sul link per verificare me stesso. Quindi torna al sito web e accedi? La mia altra opzione possibile sarebbe in qualche modo ottenere il mio ID utente e quindi inviare una richiesta di verifica?goniometro E2E test: la verifica e-mail dopo aver creato un account

Solo che non sono sicuro quale direzione sarebbe meglio. Qualche idea?

+0

Nella mia situazione personale ho avuto lo stesso dilemma. Il mio percorso per risolverlo era (come hai detto) utilizzare l'ID utente per eseguire il processo di verifica tramite HTTP. – Aaron

+0

Oggi stavo letteralmente facendo la stessa domanda :) – alecxe

+0

lol Immagino di averlo battuto ad esso @alecxe; D. – Frank

risposta

2

E 'più o meno discutibile quanto lontano i test dovrebbero andare. Ma se c'è un elemento critico per le informazioni di test inviate via email, dovresti prendere in considerazione l'estrazione di tali informazioni durante l'esecuzione del test.

In altre parole, questo è il cosiddetto "end-to-end di test", ma entrambe le estremità potrebbe essere al di là dei confini a cui siamo abituati a pensare e considerare.

Ecco the solution using mail-listener2 nodejs library che ha funzionato per me durante il test di funzionalità autenticazione a due fattori (codice di registrazione viene inviata una e-mail dopo aver superato nome utente/password fase di verifica).

1

Personalmente effettuare la prova che una e-mail di verifica viene inviato con i contenuti giusti - Non, però, accedi a Google, per trovare l'e-mail. Invece ho esposto una funzione lato server che restituisce l'ultima email inviata a un determinato indirizzo email. Ecco come lo uso:

b.get(origin + '/-/e2e/last-email-sent?to=' + address, (response) => { 
    var responseObj = JSON.parse(response.body); 
    // Now I have the email text in responseObj.bodyHtmlText. 
    // Let's extract the URL to the next page: 
    // (it's the first thing we find that starts with our server origin, i.e. 
    // http://whatever/....) 
    var regexString = originRegexEscaped + '\\/[^"]+'; 
    var matches = responseObj.bodyHtmlText.match(new RegExp(regexString)); 
    if (!matches) { 
    b.assert.fail(responseObj.bodyHtmlText, regexString, 
     'No next-page-link regex match in email'); 
    } 
    else { 
    // Tell our e2e browser to go to the page linked in the email 
    // as if the user had clicked the link in the email. 
    b.url(matches[0]); 
    } 
}); 

ho intenzione di aggiungere un sacco di altre funzioni divertenti e2e lato server di prova troppo, come /-/e2e/fast-forward-time?how-much=3600-seconds :-)

Quello che faccio di prova, con una vera e propria Gmail utente (un vero account Gmail che ho creato per i test e2e e nient'altro), è solo una registrazione. Cioè quel login OpenAuth funziona. Se funziona, suppongo che qualsiasi utente di Gmail sia in grado di leggere le email.