Как начать тестировать подписки в Google Play и App Store

в 17:15, , рубрики: qa инженер, Как тестировать подписки, Тестирование App Store подписок, Тестирование Google Play подписок, Тестирование мобильных приложений, Тестирование подписок, Тестирование подписок на Android

Бу! Испугался? Не переживай, я твой друг — мобильный QA инженер. Обещаю, не обижу! Сегодня мы разберем ключевые моменты тестирования подписок. 

Что такое подписки и зачем их тестировать

Подписки — это платежи за доступ к функциям или контенту  приложения, которые бывают регулярными (автоматическое продление) или разовыми (фиксированный срок без продления).

Основные типы подписок:

  • Автопродляемыми: ежемесячные и годовые.

  • С пробными периодами: бесплатный доступ на ограниченное время.

  • С промо-акциями: скидки или бонусы в этот период.

Подготовка тестовой среды

iOS: Настройка sandbox-аккаунта

Есть два подхода: использование Sandbox-аккаунтов и привязка Apple ID как тестового.

1. Логин через Sandbox

Sandbox-аккаунт — это специальная тестовая учётная запись, она позволяет симулировать покупку подписок без списания реальных денег с нашей карты.

Создание Sandbox-аккаунта:

  1. Войдите в App Store Connect под учётной записью с правами Admin или App Manager или Developer.

  2. Перейдите в Users and Access - Sandbox Testers.

  3. Добавьте новую учетную запись нажав на + и заполнив актуальные данные (Email, имя, регион), сохраните аккаунт.

Проверка оформления подписки:

  1. Установите тестовую сборку из TestFlight.

  2. Войдите в приложение и оформите подписку. Когда появится запрос на вход в аккаунт, введите данные вашего Sandbox-аккаунта.

  3. Убедитесь, что покупка  выполняются в тестовом режиме (без списаний реальных денег). Например в попапе подтверждения подписки будет примечание “Только для тестирования. При подтверждении этой покупки средства списаны не будут”. 

  4. После совершения покупки, проверьте подписку в настройках девайса: Перейдите в настройки - App Store - учетная запись в песочнице - Управлять - Подписки - подписка должна появиться с лейблом “Sandbox”.

Преимущества:

  • Тестирование подписок под разными учётными записями (например, для разных стран или пользователей).

  • Изоляция данных от основного Apple ID.

Недостатки:

  • Необходимо вручную вводить данные Sandbox-аккаунта при каждой покупке.

  • В тестовой среде реальные уведомления на email не отправляются.

2. Привязка Apple ID как тестового

Ваш основной Apple ID может быть добавлен в App Store Connect как тестовый. Система автоматически распознает его в тестовой среде, что ускорит процесс тестирования.

Шаги по настройке Apple ID как тестового:

Добавление Apple ID в App Store Connect:

  1. Войдите в App Store Connect.

  2. Перейдите в Users and Access - Users.

  3. Нажмите «+», добавьте Apple ID и назначьте ему роль Test User.

  4. Войдите на ваше устройстве под этим Apple ID.

  5. Проверьте, что на устройстве установлена тестовая сборка приложения через 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.

Настройка тестового аккаунта:

  1. Войдите в Google Play Console под аккаунтом разработчика.

  2. Перейдите в Настройки > Лицензирование приложений.

  3. Добавьте email Google-аккаунта, который будет использоваться для тестирования.

На устройстве:

Перейдите в Настройки > Google > Нажмите на аккаунт который уже есть > Добавите новый аккаунт

Важно: Этот аккаунт должен быть первым в списке аккаунтов. Если он не первый, удалите остальные аккаунты, временно оставив только ваш тестовый.

Проверка оформления подписки:

  1. Установите тестовую сборку 

  2. Откройте ваше приложение и выберите вариант подписки, которую вы хотите оформить. При переходе на экран оформления покупки должно появиться сообщение, подтверждающее, что вы используете тестовый режим.

Особенности подписок на Android:

  • Подписка на 1 неделю - действует 5 минут.

  • Подписка на 1 месяц  -  действует 5 минут.

  • Подписка на 3 месяца - 10 минут.

  • Подписка на 6 месяцев - 15 минут.

  • Подписка на 1 год — 30 минут.

  • Автопродление повторяется до 6 раз, после этого подписка перестанет автоматически продлеваться.

Тестирование подписок: Основные проверки

1. Проверка оформления подписки

Проверьте, что подписка становится активной сразу после ее оформления.

Проверьте отображение подписки:

  • Отображается корректная цена и продолжительность подписки (в актуальной  валюте для вашего региона).

  • Подписка привязана к аккаунту. Это можно сделать следующим образом:

  • Для Google Play это можно посмотреть: «Google Play - Подписки».

  • Для App Store: «Настройки - Apple ID - Подписки».

2. Проверка пробных периодов

  1. Активируйте подписку с бесплатным пробным периодом.

  2. Проверьте:

  • отображение время до окончания пробного периода

  • автоматический переход подписки в платный режим после окончания пробного периода

3. Проверка серверных уведомлений (вебхуков):

  1. Убедитесь, что сервер получает уведомления о событиях подписки от App Store (iOS) или Google Play (Android), таких как активация, продление, сбой оплаты, Grace Period и другие.

  2. Проверьте, что приложение корректно обрабатывает такие изменения и синхронизирует статус подписок между клиентом и сервером.

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

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

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js