Эта статья основана на моем опыте и, надеюсь, поможет быстрее стартовать коллегам в ручном тестировании внутренних покупок в Android-приложениях. Это не исчерпывающее руководство, просто хочется дать стартовые инструкции, чтобы можно было увереннее начать.
IAP - важный элемент монетизации мобильных приложений. К примеру, частый сценарий, предложение подписки через paywall. Корректная работа этого механизма критична как для бизнеса, так и для пользовательского опыта.
Что такое внутренняя покупка и зачем её тестировать?
Внутренние покупки позволяют пользователю приобретать:
Подписки с автопродлением (auto-renewable subscriptions)
Потребляемые продукты (consumables), например, монеты в качестве внутренней валюты
Непотребляемые продукты (non-consumables), например, отключение рекламы
Контент или функции, разблокируемые через покупку.
Ошибки в реализации IAP могут привести к потере дохода, негативному пользовательскому опыту, жалобам и возможному отклонению приложения при модерации.
Android (Play Store) - Sandbox тестирование
Google предоставляет возможность тестировать покупки в приложении с использованием sandbox-инфраструктуры Google Play Billing.
Даже если приложение платное, тестовую сборку можно установить бесплатно.
Чтобы тестировщикам не приходилось оплачивать покупки, их Google-аккаунты должны быть добавлены в раздел License testing в Play Console. Только в этом случае покупки будут обрабатываться как тестовые, без реального списания средств.
🔧 Настройка среды
1. Добавление тестировщиков в License testing
Разработчик добавляет email-адреса тестировщиков в раздел License testing в Google Play Console.
Что это даёт тестировщику:
Google-аккаунт, зарегистрированный на указанный email, получает доступ к sandbox-платежам;
покупки обрабатываются как тестовые;
без этого шага тестирование IAP невозможно.

Диалог Google Play, который подтверждает, что покупки обрабатываются как тестовые
Если у вас нет доступа к Play Console (что обычно и бывает), попросите разработчиков добавить ваш email.
2. Подготовка и распространение тестовой сборки
Разработчик:
загружает подписанную тестовую сборку
распространяет её через Internal App Sharing
передаёт тестировщикам ссылку на установку.
🟢 Важно: когда у вас на руках есть ссылка на установку тестового билда через play store вы все равно не сможете установить тестовую сборку по ссылке, если не включён режим Internal App Sharing внутри Play Store.
3. Включаем режим внутреннего доступа (Internal App Sharing) к приложениям:
Откройте Google Play Store
Нажмите на иконку профиля → Настройки (Settings)
Перейдите в О приложении (About)
Несколько раз нажмите на строку Версия Play Store (Play Store Version), пока не появится сообщение: "Вы стали разработчиком"
Назад → раздел Общие (General) → Для разработчиков (eveloper options)
Включите тумблер "Разрешить внутренний доступ к приложениям" (Internal app sharing)

Теперь вы можете перейти по ссылке и установить тестовое приложение.
🧪 Проведение тестирования
Войдите на устройство под тем Google-аккаунтом, который добавлен в License testing
Включите режим Internal App Sharing в Play Store
Установите тестовую сборку по ссылке Internal App Sharing
Запустите приложение
Дойдите до экрана с покупкой
Инициируйте покупку подписки или товара
Подтвердите транзакцию в диалоге Google Play
Убедитесь, что:
контент или функция разблокированы;
сервер получил подтверждение покупки (если используется серверная валидация)
⏱ Особенности sandbox-среды Google Play Billing
В sandbox‑режиме подписки продлеваются ускоренно (в тестовой среде период действия сокращён).
Триал длится 5 минут
Месячная подписка: 5 минут
Годовая подписка: 30 минут
Подписка автоматически продлевается по окончании периода
Если в вашем приложении имеются другие периоды действия подписок, то полное описание для Test subscription renewal приведено в официальное доке: https://developer.android.com/google/play/billing/test#renewals
Тестирование отмены подписки
Откройте Google Play → Подписки
Отмените активную подписку
Дождитесь окончания текущего периода
Убедитесь, что приложение снова отображает paywall
Тестовые карты и сценарии отказа

Используйте тестовые платёжные инструменты: сценарии «always approve» и «always decline» помогают проверять обработку успешных и проваленных транзакций. Важно протестировать, как приложение себя ведёт при отказе платежа (сообщение пользователю, откат локальных изменений, логирование).
🧪 Play Billing Lab — удобный инструмент для тестирования сценариев оплаты

Для более глубокого тестирования Google предоставляет отдельное тестовое приложение Play Billing Lab. Оно предназначено для демонстрации и проверки различных сценариев работы Google Play Billing без необходимости реализовывать их вручную в своем приложении.
Play Billing Lab позволяет:
переключать страну аккаунта и проверять локализацию цен;
тестировать разные валюты и форматы отображения стоимости;
проверять сценарии успешных и неуспешных покупок;
наблюдать поведение sandbox-платежей и т.д.
Подробнее
✅ Заключение
Ручное тестирование внутренних покупок - важный этап проверки приложения. Sandbox-инструмент от Google позволяет безопасно эмулировать реальные сценарии, включая триал, автопродление и отмену подписки. Надеюсь, это руководство поможет вам структурировать и упростить процесс тестирования, а главное вырасти как профессионал. Успехов в работе!
