В связи с тестированием большого количества различных форм необходимо автоматизировать процесс.
Основная проверка заключается в том , что нужно проверить , приходит ли почта на указанный имейл.
Все было бы хорошо , если бы мы проверяли с помощью одной почты , НО задача стоит в том что при заполнении каждой новой формы нужен новый почтовый ящик.
С этим помогают справится такие сервисы как 10minutemail и т.п.
Вопрос стоит в том чтоб получать и проверять наличие писем не открывая новых страниц , не создавая новых окон, может какой-то запрос делать , я не знаю как.
Подскажите , как можно это осуществить , желательно с примером
Ну, во-первых, WebDriver не предназначен для работы с почтой.
Во-вторых, тестирование писем без UI больше походит на integration level, что есть прерогативой девелоперов.
В контексте драйвера вам придется работать с UI, т.е. моделировать действия реальных юзеров.
Как обойти проблему новых ящиков? MailCatcher вам в помощь. С ним письма никогда не дойдут до адресата. А при помощи REST api, вы сможете вытянуть весь контент.
Что может быть проще, если умеете пользоваться API, то:
Через API, можно создавать временную почту и ее же проверять через респонс по API, есть даже уже готовые либы с предифайнеными методами работы с почтой на их сервисе.
Все намного быстрее чем через UI и т.д.
Насколько я понял, письма будут уходить на этот сервис? Далеко не все компании рискнут доверить свою почту, пусть даже тестовую, стороннему сервису.
mailinator например предоставляет апи для работы , но насколько я понял он платный , на странице расценки для QA указаны.
Если у Вас Windows, то вот здесь:
https://support.microsoft.com/en-us/kb/837851
пошагово описано, как сконфигурировать фейковый SMTP-сервер. При этом все отправленные через этот сервер письма будут падать в локальную папку в виде текстовых файлов.
Здесь могут возникнуть 2 вопроса:
- Надо будет конфигурировать приложение, чтоб оно работало через этот сервер - имхо, решаемо.
- Проверяется именно отправка, а не получение письма - ну, так это правильно, мы же не почтовую службу тестируем. Наоборот, избавляемся от потенциально нестабильной прослойки. А проверить, что письма приходят взаправду, можно 1 раз вручную, и не надо этого делать во всех тестах.
На счет одного раза я не согласен. В каждом проекте приходится проверять все формы , потому что во время девела могут забыть прикрутить форму к рассыльщику . Такое уже было не раз
Таких сервисов полно, бесплатных в том числе, это просто то, чем пользовался я.
MailCatcher как бы тоже предоставляет API для работы. И я об этом упомянул в первом посте.
Если хочется какой-либо бесплатный сервис временной почты с удобным API - мне полюбился https://temp-mail.ru/ .
Но в автотестах я чаще работаю с GMail - он, как и многие сервисы, поддерживает теги в почтовых адресах. То есть, если отправить письмо на example+100500@gmail.com, то оно придет на example@gmail.com.
Достаточно единожды для всего проекта вручную зарегистрировать один почтовый ящик, а в автотестах генерировать адреса example+timestamp@gmail.com. И чтобы проверять пришедшие письма, можно использовать JavaMail, в интернете по нему есть много примеров.