Регресс-тест регистрации и восстановления доступа теряет смысл, если каждый прогон получает новый номер: сценарий проверяет форму ввода, а не то, что происходит с реальным аккаунтом при повторном заходе через тот же контакт. Офлайн-аренда номера закрывает эту задачу иначе — тестовый контур получает слот, который остаётся тем же от прогона к прогону, а эфир поднимается только на время приёма кода. Разберём, зачем тестовому контуру номер, который не меняется, сколько слотов держать под регресс, как планировать эфир под прогон и когда без платного пакета не обойтись.
Зачем тестовому контуру номер, который не меняется
Сквозной сценарий — регистрация, подтверждение, повторный вход, восстановление доступа — завязан на то, что номер аккаунта не меняется между шагами. Заглушка вместо кода проверяет форму, но не саму цепочку: доставку кода на сторону тестового контура, привязку номера к уже существующему аккаунту, повторную верификацию при восстановлении пароля. Эти шаги воспроизводимы только на настоящем коде, который реально приходит на реально закреплённый за тестами номер, а не подставляется в сценарий напрямую.
Почему разовая активация не годится для регресса
Разовая активация продаёт код, а не номер: после приёма он освобождается, и на следующий прогон достаётся другой контакт. Сценарий восстановления доступа для существующего тестового аккаунта на новом номере каждый раз не воспроизводится — регресс требует именно повторного захода тем же контактом, к которому аккаунт уже привязан. Офлайн-слот закрывает это тем, что номер закреплён на весь оплаченный срок владения — сутки, 3 суток, неделю, месяц, 3 месяца или полгода, — и один и тот же сценарий можно прогонять на нём хоть каждый день.
Сколько слотов держать под тестовый контур
Число слотов считается от числа параллельных сценариев, а не от частоты прогонов: регистрация, двухфакторная проверка, восстановление доступа и смена номера — это минимум четыре независимых контакта, если тесты не должны конкурировать за один и тот же слот. На каждый слот в сутки доступно фиксированное бесплатное окно эфира — час, до двух включений, — и этого лимита хватает на один-два коротких регресс-прогона в день на один сценарий, если код приходит быстро и предсказуемо; при более частых прогонах экономичнее сразу закладывать платный пакет.
Планирование эфира под регресс-прогон
Слот нужно поднимать в эфир заранее, а не в момент, когда тест уже ждёт код: SMS, отправленная на офлайн-номер, не доходит, а после включения слоту требуется время на регистрацию в сети, прежде чем канал готов принимать сообщения. Практичная схема — включать слот за несколько минут до старта сценария и держать окно открытым на всё время прогона, а не дробить его на части под каждый отдельный шаг теста.
Изоляция от боевых номеров и когда нужен платный пакет
Тестовые слоты должны идти из отдельного пула, а не из тех же номеров, что закреплены за боевыми аккаунтами: смешение путает учёт расходов и создаёт риск, что регресс-прогон случайно займёт эфир номера, который в этот момент ждёт боевой код. Бесплатных окон достаточно, пока регресс укладывается в одну-две короткие сессии в сутки. Когда прогон длинный — полный набор тестов в CI перед релизом растягивается на часы, а не на минуты, — двух часовых окон, то есть двух часов эфира на слот в сутки, почти наверняка не хватит, и платный пакет гарантированного эфира на 1, 3, 6, 12 или 24 часа при таком прогоне нужен заметно чаще, чем раньше: на это время канал держится без перерыва и не встаёт в очередь за физическим каналом наравне с бесплатными включениями других слотов.
Частые вопросы
Можно ли гонять регресс каждый день на одном и том же офлайн-номере?
Да, в этом и смысл схемы: слот закреплён за вами на весь оплаченный срок, и один и тот же номер участвует в сценарии сколько угодно раз, а не по одному разу на прогон, как при разовой активации.
Что будет, если тест не успел завершиться в пределах бесплатного часа?
Слот уйдёт в офлайн, и код перестанет доходить — остаются другие окна из суточного лимита, а на длинный прогон стоит заранее взять пакет гарантированного эфира, чтобы канал не закрывался посреди сценария.
Как понять, что тестовому контуру хватает бесплатных окон и платный пакет не нужен?
Если регресс укладывается в одну-две короткие сессии по часу в сутки и включение можно спланировать заранее под ожидаемый код, бесплатных окон достаточно; платный пакет нужен там, где прогон длинный и непрерывный, а ждать очередное окно некогда.
Набор слотов под тестовый контур с бесплатными окнами и пакетами гарантированного эфира — в разделе офлайн-аренды SMS. Как устроено само владение слотом и бесплатные включения, разобрано в статье что такое офлайн-аренда номера, про сквозные прогоны с реальными кодами в CI — в статье автотесты с реальными кодами, а как не завести боевые данные в тестовом стенде — в статье данные для тестов. Выбрать длительность платного пакета под конкретный прогон поможет статья как выбрать длительность гарантированного эфира.