Тестирование регистрации и кодов из писем: тестовая почта прямо в сценарии
Самые важные для бизнеса сценарии - регистрация, подтверждение почты, вход по коду, сброс пароля - чаще всего остаются без автотестов. Причина банальна: в середине сценария сайт отправляет письмо, а браузерный тест не умеет его «получить». Команды выкручиваются как могут: заводят общий Gmail и ловят письма через IMAP, отключают подтверждение на стенде, хардкодят «магический» код для тестового окружения. В итоге проверяется не то, что видит реальный пользователь, а письмо, которое не дошло или пришло со сломанной ссылкой, замечают только по жалобам. В TestMW почтовый ящик - это обычный шаг сценария.
Четыре шага тестовой почты
| Шаг | Что делает | Пример значения |
|---|---|---|
| Создать тестовый e-mail | Заводит одноразовый адрес вида t…@webboy.pro и кладёт его в слот | slot_1 |
| Дождаться письма | Ждёт письмо и проверяет, что в теме или теле есть текст или регулярка | rmb:slot_1|Подтвердите регистрацию|120 |
| Перейти по ссылке из письма | Открывает ссылку из последнего письма - по тексту ссылки или её адресу | rmb:slot_1|Подтвердить |
| Запомнить из письма | Достаёт значение регуляркой (первая группа, если есть) и кладёт в слот | rmb:slot_1|/код: (\d{6})/|slot_2 |
Адрес дальше подставляется в любые шаги через слот rmb:slot_1 - как любое запомненное значение. Ящик живёт сутки и принимает письма только для своего теста, так что параллельные прогоны не мешают друг другу.
Кейс 1: регистрация с подтверждением почты
- Создать тестовый e-mail →
slot_1 - Открыть страницу регистрации
- Заполнить поле
E-mail|rmb:slot_1, затем пароль и имя - Клик по кнопке «Зарегистрироваться»
- Дождаться письма
rmb:slot_1|Подтвердите|120- шаг упадёт, если письмо не пришло за 2 минуты - Перейти по ссылке из письма
rmb:slot_1|Подтвердить - Проверить текст «Почта подтверждена» и что открылся личный кабинет
Каждый прогон это новый, ни разу не использованный адрес, поэтому тест не упирается в «такой пользователь уже существует» и не требует чистки базы между запусками.
Кейс 2: вход по одноразовому коду (OTP)
- Создать тестовый e-mail →
slot_1, ввести его в форму входа, нажать «Получить код» - Запомнить из письма
rmb:slot_1|/\b(\d{6})\b/|slot_2 - Заполнить поле
#code|rmb:slot_2и подтвердить - Проверить, что пользователь авторизован
Если письмо ещё в пути, шаги «Перейти по ссылке» и «Запомнить из письма» сами подождут его до минуты - отдельное ожидание ставить не обязательно. Этот же приём подходит для кодов подтверждения заказа, смены почты и двухфакторной авторизации по e-mail.
Кейс 3: восстановление пароля
Для существующего аккаунта сценарий обычно продолжает кейс 1 в том же тесте: регистрация на тестовый адрес → выход → «Забыли пароль?» с rmb:slot_1 → Перейти по ссылке из письма rmb:slot_1|Сбросить → ввод нового пароля → вход с ним. Так проверяется вся цепочка целиком, включая то, что ссылка из письма действительно ведёт на рабочую страницу, а не на 404 или чужой домен.
Отладка: что делать, если шаг упал
- «Письмо не пришло» - первым делом проверьте, что после отправки формы нет ошибки на странице (скриншот шага отправки). Затем - очереди и отправку почты на тестируемом сайте: некоторые SMTP-сервисы режут письма на новые домены или шлют с задержкой. Увеличьте таймаут в третьем поле, например до
300. - Письмо пришло, но текст не найден - поиск идёт по теме и телу письма. Проверьте формулировку или перейдите на регулярку в слешах, например
/подтверд/i, чтобы не зависеть от точной фразы в шаблоне. - Код не извлекается - в HTML-письмах цифры бывают разбиты тегами или пробелами. Используйте группу в регулярке и границы слова:
/(\d{6})/; если в письме несколько чисел (номер заказа, год), привяжитесь к соседнему тексту:/код[^\d]*(\d{4,8})/i. - Открылась не та ссылка - без текста берётся первая ссылка письма, а это часто логотип или «отписаться». Укажите текст кнопки или часть адреса, например
confirm. - Нужен AI-разбор - как и для любого упавшего шага, ИИ-анализ падения посмотрит на скриншот и лог и подскажет вероятную причину.
Еще это мониторинг
Поставьте такой тест в расписание - и он станет мониторингом доставки писем. Истёк SPF/DKIM, упал почтовый провайдер, сломался шаблон, поменялся домен в ссылке подтверждения - вы узнаете об этом из алерта в Telegram или на почту, а не от пользователей, которые «не могут зарегистрироваться».
Результат
- Регистрация, OTP и сброс пароля покрыты автотестами целиком, как их проходит реальный пользователь.
- Никаких общих ящиков, IMAP и «магических» кодов на стенде - адрес свой на каждый прогон.
- Тест проверяет само письмо: что оно дошло, что в нём нужный текст и рабочая ссылка.
- Работает в рекордере, редакторе и расписании - шаги почты сочетаются с любыми другими шагами сценария.
Шаги тестовой почты доступны на платных тарифах.