Бу! Испугался? Не переживай, я твой друг — мобильный QA инженер. Обещаю, не обижу! Сегодня мы разберем ключевые моменты тестирования подписок.
Что такое подписки и зачем их тестировать
Подписки — это платежи за доступ к функциям или контенту приложения, которые бывают регулярными (автоматическое продление) или разовыми (фиксированный срок без продления).
Основные типы подписок:
-
Автопродляемыми: ежемесячные и годовые.
-
С пробными периодами: бесплатный доступ на ограниченное время.
-
С промо-акциями: скидки или бонусы в этот период.
Подготовка тестовой среды
iOS: Настройка sandbox-аккаунта
Есть два подхода: использование Sandbox-аккаунтов и привязка Apple ID как тестового.
1. Логин через Sandbox
Sandbox-аккаунт — это специальная тестовая учётная запись, она позволяет симулировать покупку подписок без списания реальных денег с нашей карты.
Создание Sandbox-аккаунта:
-
Войдите в App Store Connect под учётной записью с правами Admin или App Manager или Developer.
-
Перейдите в Users and Access - Sandbox Testers.
-
Добавьте новую учетную запись нажав на + и заполнив актуальные данные (Email, имя, регион), сохраните аккаунт.
Проверка оформления подписки:
-
Установите тестовую сборку из TestFlight.
-
Войдите в приложение и оформите подписку. Когда появится запрос на вход в аккаунт, введите данные вашего Sandbox-аккаунта.
-
Убедитесь, что покупка выполняются в тестовом режиме (без списаний реальных денег). Например в попапе подтверждения подписки будет примечание “Только для тестирования. При подтверждении этой покупки средства списаны не будут”.
-
После совершения покупки, проверьте подписку в настройках девайса: Перейдите в настройки - App Store - учетная запись в песочнице - Управлять - Подписки - подписка должна появиться с лейблом “Sandbox”.
Преимущества:
-
Тестирование подписок под разными учётными записями (например, для разных стран или пользователей).
-
Изоляция данных от основного Apple ID.
Недостатки:
-
Необходимо вручную вводить данные Sandbox-аккаунта при каждой покупке.
-
В тестовой среде реальные уведомления на email не отправляются.
2. Привязка Apple ID как тестового
Ваш основной Apple ID может быть добавлен в App Store Connect как тестовый. Система автоматически распознает его в тестовой среде, что ускорит процесс тестирования.
Шаги по настройке Apple ID как тестового:
Добавление Apple ID в App Store Connect:
-
Войдите в App Store Connect.
-
Перейдите в Users and Access - Users.
-
Нажмите «+», добавьте Apple ID и назначьте ему роль Test User.
-
Войдите на ваше устройстве под этим Apple ID.
-
Проверьте, что на устройстве установлена тестовая сборка приложения через TestFlight.
3. Проверка подключения к тестовой среде:
-
Откройте ваше приложение и выполните тестовую покупку.
-
Проверьте подписку в настройках устройства: «Настройки > Apple ID > Подписки».
Преимущества:
-
Быстрое оформление подписок без ввода дополнительных данных.
-
Удобство для регулярного тестирования.
Недостатки:
-
Требуется создать отдельный Apple ID, чтобы избежать смешивания тестовых и ваших личных данных.
-
Ограниченная гибкость: один Apple ID привязан к определенным условиям таким как:
- Привязка к региону. Apple ID привязан к определенному региону или стране
- Привязка к одной тестовой среде. Тестовый Apple ID может быть привязан только к одной учетной записи разработчика
Особенности подписок:
Важно: Сроки действия подписок можно настроить в App Store Connect в разделе "Pricing and Availability".
По умолчанию используется следующая конфигурация:
-
Подписка на 1 неделю действует 3 минуты.
-
Подписка на 1 месяц действует 5 минут.
-
Подписка на 2 месяца действует 10 минут.
-
Подписка на 6 месяцев действует 30 минут.
-
Подписка на 1 год — 1 час.
-
Автопродление симулируется до 12 раз.
Android: Настройка тестового аккаунта
Для Android тестирование подписок осуществляется через Google Play Console. Подробнее можете ознакомится тут: Google Play Subscriptions.
Настройка тестового аккаунта:
-
Войдите в Google Play Console под аккаунтом разработчика.
-
Перейдите в Настройки > Лицензирование приложений.
-
Добавьте email Google-аккаунта, который будет использоваться для тестирования.
На устройстве:
Перейдите в Настройки > Google > Нажмите на аккаунт который уже есть > Добавите новый аккаунт
Важно: Этот аккаунт должен быть первым в списке аккаунтов. Если он не первый, удалите остальные аккаунты, временно оставив только ваш тестовый.
Проверка оформления подписки:
-
Установите тестовую сборку
-
Откройте ваше приложение и выберите вариант подписки, которую вы хотите оформить. При переходе на экран оформления покупки должно появиться сообщение, подтверждающее, что вы используете тестовый режим.
Особенности подписок на Android:
-
Подписка на 1 неделю - действует 5 минут.
-
Подписка на 1 месяц - действует 5 минут.
-
Подписка на 3 месяца - 10 минут.
-
Подписка на 6 месяцев - 15 минут.
-
Подписка на 1 год — 30 минут.
-
Автопродление повторяется до 6 раз, после этого подписка перестанет автоматически продлеваться.
Тестирование подписок: Основные проверки
1. Проверка оформления подписки
Проверьте, что подписка становится активной сразу после ее оформления.
Проверьте отображение подписки:
-
Отображается корректная цена и продолжительность подписки (в актуальной валюте для вашего региона).
-
Подписка привязана к аккаунту. Это можно сделать следующим образом:
-
Для Google Play это можно посмотреть: «Google Play - Подписки».
-
Для App Store: «Настройки - Apple ID - Подписки».
2. Проверка пробных периодов
-
Активируйте подписку с бесплатным пробным периодом.
-
Проверьте:
-
отображение время до окончания пробного периода
-
автоматический переход подписки в платный режим после окончания пробного периода
3. Проверка серверных уведомлений (вебхуков):
-
Убедитесь, что сервер получает уведомления о событиях подписки от App Store (iOS) или Google Play (Android), таких как активация, продление, сбой оплаты, Grace Period и другие.
-
Проверьте, что приложение корректно обрабатывает такие изменения и синхронизирует статус подписок между клиентом и сервером.
Чтобы узнать где и как смотреть вебхуки, обратитесь к команде разработке и уточните как настроено окружение так как в каждой команде это может быть реализовано по разному и отличаться от проекта к проекту.
4. Проверка Grace Period
Grace Period (льготный период) - это такое время, в течение которого пользователь сохраняет доступ к подписке, даже при сбоях оплаты (например: недостаточно средств на его карте или его платежные данные устарели).
Что происходит в Grace Period:
-
Подписка остаётся активной в течение Grace Period (обычно это бывает от 3-х до 30-ти дней в зависимости от настроек).
-
Если пользователь обновляет свои данные в течение Grace Period, то подписка будет продолжать быть активной без прерывания и проблем.
-
Если данные пользователь не обновил в необходимый период,то подписка должна отмениться.
Как проверить Grace Period на iOS:
1. Симуляция сбоя оплаты:
-
Для настройки отклонения оплаты, можем использовать тестовую карту с истёкшим сроком действия:
- Card Number: 4000 0000 0000 0010 (Declined Payment Card).
- Expiry Date: любая дата в прошлом.
-
Оформляем подписку в приложении.
Так как карты могут меняться, то для получения полного списка тестовых карт и более подробных инструкций по их использованию я настоятельно рекомендую обратиться к официальной документации Apple: Sandbox Testing - Apple Pay.
3. Проверка поведения приложения:
-
Проверьте, что юзер получил уведомление о том, что необходимо обновить свои платёжные данные.
-
Доступ к контенту сохранен до окончания Grace Period.
-
Подписка остаётся активной. Это можно посмотреть с настройках устройства: Настройки - Apple ID - Подписки с лейблом "Pending Payment".
Как проверить Grace Period на Android:
1. Имитация отказа платежа:
-
Откройте приложение и начните оформлять подписку.
-
В разделе Способы оплаты выберите тестовую карту, которая всегда отклоняется (например, "Тестовая карта, всегда отклонять").
Подписка будет оформлена с пометкой "Payment Pending" или похожей, что будет указывать на отказ платежа.
2. Проверка Grace Period:
-
Проверьте, что юзер получил уведомление о том, что необходимо обновить свои платёжные данные.
-
Доступ к контенту сохранен до окончания Grace Period.
-
Подписка должна отображаться с пометкой, указывающей на состояние Grace Period.
3. Обновление платёжных данных:
-
Начните оформлять подписку и в сплывшем окне замените тестовую карту на "Тестовая карта, всегда подтверждать".
-
Убедитесь, что подписка возобновляется.
Заключение
Тестировать подписки - задача не из самых простых и легких, так как она требует хорошего понимания работы платформ Google Play и App Store. Чтобы избежать проблем в релизной версии, важно правильно настроить тестовую среду и все детально проверить для всех возможных сценариев.
Если у вас есть вопросы или вы хотите поделиться своим опытом, пишите в комментариях и я буду рад вам на них ответить!
Автор: Alex_obron