Удаленка для jenkins+selenide+selenoid+allure+docker спецов на 2-3 часа в день. 100% remote! Присоединиться к проекту

Получение временной почты с помощью WebDriver

email
web
java
webdriver
selenium
Теги: #<Tag:0x00007fedb7d0b4c8> #<Tag:0x00007fedb7d0b1f8> #<Tag:0x00007fedb7d0aeb0> #<Tag:0x00007fedb7d0ab40> #<Tag:0x00007fedb7d0a870>

(Vladyslav Stuparenko) #1

В связи с тестированием большого количества различных форм необходимо автоматизировать процесс.
Основная проверка заключается в том , что нужно проверить , приходит ли почта на указанный имейл.
Все было бы хорошо , если бы мы проверяли с помощью одной почты , НО задача стоит в том что при заполнении каждой новой формы нужен новый почтовый ящик.
С этим помогают справится такие сервисы как 10minutemail и т.п.
Вопрос стоит в том чтоб получать и проверять наличие писем не открывая новых страниц , не создавая новых окон, может какой-то запрос делать , я не знаю как.
Подскажите , как можно это осуществить , желательно с примером :pray:


Получение body письма для восстановления аккаунта через https://www.mailinator.com/
(Sergey Korol) #2

Ну, во-первых, WebDriver не предназначен для работы с почтой.
Во-вторых, тестирование писем без UI больше походит на integration level, что есть прерогативой девелоперов.
В контексте драйвера вам придется работать с UI, т.е. моделировать действия реальных юзеров.
Как обойти проблему новых ящиков? MailCatcher вам в помощь. С ним письма никогда не дойдут до адресата. А при помощи REST api, вы сможете вытянуть весь контент.


(Eugene Tkachenko) #3

Что может быть проще, если умеете пользоваться API, то:

mailinator

Через API, можно создавать временную почту и ее же проверять через респонс по API, есть даже уже готовые либы с предифайнеными методами работы с почтой на их сервисе.

Все намного быстрее чем через UI и т.д.


(Sergey Korol) #4

Насколько я понял, письма будут уходить на этот сервис? Далеко не все компании рискнут доверить свою почту, пусть даже тестовую, стороннему сервису.


(Vladyslav Stuparenko) #5

mailinator например предоставляет апи для работы , но насколько я понял он платный , на странице расценки для QA указаны.


#6

Если у Вас Windows, то вот здесь:
https://support.microsoft.com/en-us/kb/837851
пошагово описано, как сконфигурировать фейковый SMTP-сервер. При этом все отправленные через этот сервер письма будут падать в локальную папку в виде текстовых файлов.

Здесь могут возникнуть 2 вопроса:

  1. Надо будет конфигурировать приложение, чтоб оно работало через этот сервер - имхо, решаемо.
  2. Проверяется именно отправка, а не получение письма - ну, так это правильно, мы же не почтовую службу тестируем. Наоборот, избавляемся от потенциально нестабильной прослойки. А проверить, что письма приходят взаправду, можно 1 раз вручную, и не надо этого делать во всех тестах.

(Vladyslav Stuparenko) #7

На счет одного раза я не согласен. В каждом проекте приходится проверять все формы , потому что во время девела могут забыть прикрутить форму к рассыльщику . Такое уже было не раз


(Eugene Tkachenko) #8

Таких сервисов полно, бесплатных в том числе, это просто то, чем пользовался я.


(Sergey Korol) #9

MailCatcher как бы тоже предоставляет API для работы. И я об этом упомянул в первом посте.


(Maksim Smolyakov) #10

Если хочется какой-либо бесплатный сервис временной почты с удобным API - мне полюбился https://temp-mail.ru/ .

Но в автотестах я чаще работаю с GMail - он, как и многие сервисы, поддерживает теги в почтовых адресах. То есть, если отправить письмо на example+100500@gmail.com, то оно придет на example@gmail.com.
Достаточно единожды для всего проекта вручную зарегистрировать один почтовый ящик, а в автотестах генерировать адреса example+timestamp@gmail.com. И чтобы проверять пришедшие письма, можно использовать JavaMail, в интернете по нему есть много примеров.