2015-02-19 18 views
5

Piszę więc testy E2E dotyczące tworzenia konta na stronie internetowej. Po utworzeniu konta na stronie internetowej, wyślę do mnie e-mail, aby zweryfikować moje konto, aby móc się zalogować. Moje pytanie brzmi: jak daleko należy się posunąć w testowaniu E2E? wybrałbym niewłaściwą stronę, jeśli używam kątomierza, aby przejść do google, znaleźć adres e-mail i kliknąć link, aby się zweryfikować. Następnie wróć do strony i zaloguj się? Moją inną możliwą opcją byłoby uzyskanie mojego identyfikatora użytkownika, a następnie wysłanie prośby o weryfikację?Testy kątomierza E2E: weryfikacja adresu e-mail po utworzeniu konta

Po prostu nie jestem pewien, który kierunek byłby najlepszy. Jakieś pomysły?

+0

W mojej osobistej sytuacji miałem ten sam dylemat. Moją drogą do rozwiązania było (jak wspomniałeś) użycie userId do przeprowadzenia procesu weryfikacji przez HTTP. – Aaron

+0

Dosłownie zamierzałem zadać to samo pytanie dzisiaj :) – alecxe

+0

lol Myślę, że pokonałem cię na to @alecxe; D. – Frank

Odpowiedz

2

Jest dość dyskusyjna, jak daleko powinny pójść testy. Ale jeśli jest krytyczne, aby informacje testowe były przesyłane pocztą e-mail, należy rozważyć wyodrębnienie tych informacji podczas uruchamiania testowego.

Innymi słowy, jest to tak zwane "testy end-to-end", ale oba końce mogą wykraczać poza granice, do których jesteśmy przyzwyczajeni.

Oto the solution using mail-listener2 nodejs library, który sprawdził się podczas testu funkcjonalności uwierzytelniania dwuskładnikowego (kod rejestracyjny jest wysyłany na e-mail po przejściu etapu weryfikacji nazwy użytkownika/hasła).

1

Osobiście testuję, czy e-mail weryfikacyjny zostanie wysłany z poprawną zawartością - nie loguję się jednak w Google, aby znaleźć adres e-mail. Zamiast tego ujawniłem funkcję po stronie serwera, która zwraca ostatni e-mail wysłany na określony adres e-mail. Oto jak go używać:

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]); 
    } 
}); 

mam zamiar dodać wiele innych funkcji zabawny e2e bocznych serwer testowy też, jak /-/e2e/fast-forward-time?how-much=3600-seconds :-)

Co zrobić test, z prawdziwym Gmailu użytkownik (prawdziwe konto Gmail, które utworzyłem dla testów e2e i nic więcej), to tylko zapisy. To znaczy. działa logowanie OpenAuth. Jeśli to zadziała, zakładam, że każdy użytkownik Gmaila będzie mógł czytać wiadomości e-mail.