Тестирование восстановления учетных данных

Функция восстановления учетных данных в Менеджере учетных данных обеспечивает удобный переход на новое устройство. При тестировании функции можно использовать любой из следующих подходов:

  • Разные устройства. Используйте исходное устройство для резервного копирования и отдельное целевое устройство для восстановления или два разных эмулятора Android Studio.
  • Одно устройство. Используйте одно физическое устройство или эмулятор Android Studio. После того как приложение создаст резервную копию данных, удалите и переустановите его, а затем выполните восстановление.

В этом руководстве описано, как использовать Android Studio для тестирования учетных данных для восстановления в отладочном приложении на эмуляторе, имитируя ситуации с отдельными устройствами или одним устройством.

Требования

Чтобы использовать функцию резервного копирования и восстановления в Android Studio для тестирования восстановления учетных данных, убедитесь, что выполнены следующие условия:

  • Android Studio Otter | 2025.2.1 или более поздней версии.
  • Виртуальное устройство или физическое устройство с Android 9 (уровень API 28) или более поздней версией, системным образом Google Play и сервисами Google Play версии 242200000 или более поздней (проверьте с помощью adb shell dumpsys package com.google.android.gms | grep versionCode).
  • Аккаунт Google, в который выполнен вход на тестовом устройстве или эмуляторе. На устройстве или эмуляторе должен быть настроен PIN-код, графический ключ или пароль для разблокировки экрана (Настройки > Безопасность). Это необходимо, чтобы активировать сквозное шифрование в облаке и избежать ошибки E2eeUnavailableException.
  • Приложение, созданное с помощью debuggable true или работающее в режиме debug. Для эмуляторов отладка включена по умолчанию.

Как использовать функцию резервного копирования и восстановления в Android Studio

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

Как создать резервную копию данных аутентификации в Android Studio

Чтобы протестировать резервное копирование в Android Studio, выполните следующие действия:

  1. Запустите приложение в эмуляторе.
  2. Войдите в приложение, используя любой механизм аутентификации (например, имя пользователя и пароль, ключи доступа или функцию "Войти с аккаунтом Google"), чтобы приложение вызвало createCredential() с CreateRestoreCredentialRequest.
  3. В верхней части окна активного устройства нажмите Backup App Data (Резервное копирование данных приложения).
    Резервное копирование данных приложения в Android Studio
    Рис. 1. Резервное копирование данных приложения в Android Studio
  4. В разделе Тип резервного копирования выберите С устройства на устройство или Облако.

  5. Нажмите ОК.

Проверьте восстановленную аутентификацию

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

Чтобы протестировать процесс восстановления в Android Studio, выполните следующие действия:

  1. Чтобы провести тестирование на том же устройстве, удалите и переустановите приложение (adb uninstall <package_name>, а затем adb install <path_to_apk>). Это очистит все локальные данные приложения и предыдущий ключ восстановления на устройстве. Чтобы использовать его на новом устройстве, установите на него приложение.

  2. Чтобы протестировать фоновое восстановление первого уровня (BackupAgent.onRestoreFinished()), не запуская Activity, в Android Studio выберите Run (Запуск) > Edit Configurations (Изменить конфигурации) и перед установкой задайте для параметра Launch Options (Параметры запуска) > Launch (Запуск) значение Nothing (Ничего). Если вы запустите приложение до того, как выполните команду Восстановить данные приложения, вы будете перенаправлены на экран аутентификации, поскольку ключ восстановления ещё не был восстановлен на устройстве.

  3. В окне "Активные устройства" нажмите Восстановить данные приложения и выберите недавно созданную резервную копию.

    Как восстановить данные приложения в Android Studio
    Рисунок 2. Восстановление данных приложения в Android Studio

  4. Проверьте Logcat, чтобы убедиться, что BackupAgent.onRestoreFinished() получил RestoreCredential в фоновом режиме, или откройте приложение и убедитесь, что вход пользователя выполняется автоматически.

Тестирование с помощью adb или автоматизированных наборов тестов JUnit 5

Помимо интерфейса Android Studio, вы можете протестировать процессы резервного копирования и восстановления из командной строки или в непрерывной интеграции (CI):

  • Тестирование в командной строке с помощью bmgr. На физическом устройстве или в эмуляторе без графического интерфейса включите диспетчер резервного копирования (adb shell bmgr enable true), запустите резервное копирование (adb shell bmgr backupnow <package_name>), переустановите приложение, посмотрите список доступных наборов резервных копий (adb shell bmgr list sets) и запустите восстановление (adb shell bmgr restore <token> <package_name>). Подробную информацию вы найдете в статье Тестирование резервного копирования и восстановления.
  • Автоматизированные тесты хоста JUnit 5 (androidx.test.backup). Напишите автоматизированные тесты JUnit 5 с помощью BackupRestoreController, чтобы проверить BackupTransportMode.CLOUD_ENCRYPTED и BackupTransportMode.DEVICE_TO_DEVICE на одном или двух подключенных устройствах. Инструкции по настройке и примеры тестов можно найти в статье Автоматическое тестирование резервного копирования и восстановления.