← Все кейсы

Тестирование регистрации и кодов из писем: тестовая почта прямо в сценарии

Самые важные для бизнеса сценарии - регистрация, подтверждение почты, вход по коду, сброс пароля - чаще всего остаются без автотестов. Причина банальна: в середине сценария сайт отправляет письмо, а браузерный тест не умеет его «получить». Команды выкручиваются как могут: заводят общий 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-mailslot_1
  • Открыть страницу регистрации
  • Заполнить поле E-mail|rmb:slot_1, затем пароль и имя
  • Клик по кнопке «Зарегистрироваться»
  • Дождаться письма rmb:slot_1|Подтвердите|120 - шаг упадёт, если письмо не пришло за 2 минуты
  • Перейти по ссылке из письма rmb:slot_1|Подтвердить
  • Проверить текст «Почта подтверждена» и что открылся личный кабинет

Каждый прогон это новый, ни разу не использованный адрес, поэтому тест не упирается в «такой пользователь уже существует» и не требует чистки базы между запусками.

Кейс 2: вход по одноразовому коду (OTP)

  • Создать тестовый e-mailslot_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 и «магических» кодов на стенде - адрес свой на каждый прогон.
  • Тест проверяет само письмо: что оно дошло, что в нём нужный текст и рабочая ссылка.
  • Работает в рекордере, редакторе и расписании - шаги почты сочетаются с любыми другими шагами сценария.

Шаги тестовой почты доступны на платных тарифах.