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

Для устройств под управлением Android 6 или Android 7 вы можете протестировать подготовку устройств с помощью тестовой программы Android Enterprise (AE), которая представляет собой набор тестов для проверки корпоративной совместимости устройств Android. Жгут включает в себя поддержку приложений, тестовые случаи, файлы конфигурации и тест - бегун ( afw-test-tradefed ) , построенный на cts-tradefed . Перед установкой AE теста жгут, необходимо завершить Provisioning для управления устройствами .

Для устройств , работающих под управлением Android 8 или выше, использование AE Test Harness является устаревшим.

Настройка среды разработки

Среда разработки AE Test Harness аналогична ОС Android. Выполните действия , описанные в требованиях , чтобы настроить машину развития.

Скачивание исходного кода

Скачать исходный код AE Test Harness используя шаги Загрузка источника . Исходный код AE Test Harness находится в ./test/AfwTestHarness проекта. Название ветки определяет версию AE Test Harness для загрузки (каждая платформа Android имеет отдельную версию AE Test Harness). Например, название филиала для Android 7.0 Нуги является afw-test-harness-nougat-dev . Чтобы инициализировать репо и загрузить исходный код для этой ветки, используйте следующие команды:

mkdir WORKING_DIRECTORY
cd WORKING_DIRECTORY
git config --global user.name "Your Name"
git config --global user.email "you@example.com"
repo init -u https://android.googlesource.com/platform/manifest -b afw-test-harness-nougat-dev
repo sync -j24

Чтобы проверить исходный код другой версии, укажите ветку с соответствующим тегом. Доступные филиалы включают:

Название отделения Поддерживаемая платформа Android
afw-test-harness-nougat-dev Android 7.0
afw-test-harness-2.1 Android 7.0
afw-test-harness-marshmallow-dev Android 6.0
afw-test-harness-1.5 Android 6.0

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

Просмотр в Android Studio

Чтобы просмотреть и отредактировать исходный код в Android Studio:

  1. Выполните следующие команды
    make idegen
    development/tools/idegen/idegen.sh
    
  2. В Android Studio откройте android.ipr .

Исходный код AE Test Harness в test/AfwTestHarness .

Настройка тестового жгута AE

Вы можете настроить жгут проводов с помощью настройки test/AfwTestHarness/afw-test.props . Чтобы успешно запустить обвязку, выполните следующие действия:

  1. Настройка сети Wi-Fi в afw-test.props со следующими свойствами:
    wifi_ssid
    wifi_password (optional)
    wifi_security_type (optional, available options are: NONE, WEP or WPA)
    
  2. Получите хотя бы одну учетную запись из домена, который привязан к Test DPC в качестве контроллера политики устройства. Укажите детали в afw-test.props со следующими свойствами:
    work_account_username
    work_account_password
    

    AE Test Harness использует тест DPC для тестирования инициализации потоков, поэтому учетные записи должны связываться с Test DPC запустить тестовую программу .

Сборка тестового жгута AE

Инициализируйте конфигурацию сборки, используя:

source build/envsetup.sh
lunch

Выберите тип устройства и нажмите Enter.

Соберите обвязку, используя:

make afw-test-harness -j32

Это создает каталог ( out/host/linux-x86/afw-th/android-cts ) со всеми необходимыми двоичные файлы, файлы конфигурации, а также инструменты для выполнения теста жгут. Этот каталог также промелькнул в файл ( out/host/linux-x86/afw-th/android-afw-test-harness.zip ) для распределения.

Запуск тестовой привязи AE

Выполните следующие действия, чтобы запустить тестовый жгут AE:

  1. В среде сборки, запустить тест бегун с помощью:
    afw-test-tradefed
    
    Это запускает cts-tf консоль, планы нагрузки тестирования, тестовые и afw-test.props из out/host/linux-x86/afw-th/android-cts .
  2. Из распакованной папки android-afw-test-harness.zip , запустить тест бегун с помощью:
    cts-tf> ./android‐cts/tools/afw-test‐tradefed
    
    Это загружает планы тестирования, тестовые случаи и afw-test.props из android-cts каталога. Убедитесь , что ./android‐cts/repository/testcases/afw-test.props имеет рабочую учетную запись и настройка Wi-Fi.
  3. Выполните план тестирования. Каждый план тестирования является XML - файл , который содержит набор тестовых пакетов из AfwTestHarness/tests каталога пакета тестов. Общие планы включают:
    • afw-userdebug-build . Содержит все тестовые пакеты, для которых требуется сборка пользовательской отладки.
    • afw-user-build . Работает в пользовательской сборке, но требует правильной настройки тестового устройства, включая завершение начальной настройки и включение отладки по USB.

    Для того, чтобы запустить план тестирования afw-userdebug-build , используйте:
    cts-tf> run cts --plan afw-userdebug-build
    
    Чтобы увидеть все планы тестирования, используйте команду list plans . Для определения плана просмотра, обратитесь к out/host/linux-x86/afw-th/android-cts/repository/plans .
  4. Запустите тестовый пакет. Для того, чтобы запустить один тестовый пакет, использование
    cts-tf> run cts --package com.android.afwtest.NfcProvisioning
    
    Для просмотра всех пакетов, используйте команду list packages . Для получения дополнительных возможностей, используйте команду run cts --help .

Отладка тестовой системы AE

Выполнить все команды в AFW-тест-tradefed консоли ( cts-tf ), которые можно запустить, запустив afw-test-tradefed .

  • Отображение дополнительной информации с -l INFO или -l DEBUG флагами. Пример:
    cts-tf> run cts ‐‐plan afw-userdebug-build -l DEBUG
    
  • Запустите тестовую программу на конкретном устройстве с -s флагом. Пример:
    cts-tf> run cts ‐‐plan afw-userdebug-build -l DEBUG -s device_sn
    
  • Запуск Жгут тест на всех подключенных устройствах с --all-devices флага. Пример:
    cts-tf> run cts ‐‐plan afw-userdebug-build -l DEBUG --all-devices
    
  • Просмотр текущих запущенных расстрелы , используя list invocations или li .
  • Просмотр резюме последних испытаний казней с использованием list results или lr .
  • Посмотреть другой list команд , используя help list .
  • Мониторинг в режиме реального времени LogCat с фильтром с помощью afwtest , а затем открыть другой терминал и начать LogCat с помощью: adb logcat | grep afwtest . После завершения теста:
    • Показать журналы в out/host/linux-x86/afw-th/android-cts/repository/logs/ start-time . Полный LogCat устройства и журнал хост ( afw-test-tradefed журналы) сохраняются в отдельных файлах почтового индекса.
    • Найти соответствующую информацию путем поиска в LogCat устройства для afwtest. Пример: zless out/host/linux-x86/afw-th/android-cts/repository/logs/ start-time /device_logcat_ random-number .zip | grep afwtest
    • Для просмотра полной AFW-тест-tradefed журнала, использование: zless out/host/linux-x86/afw-th/android-cts/repository/logs/ start-time /host_log_ random-number .zip
  • Тестовый пакет автоматизирует поток инициализации предприятия, просматривая страницы пользовательского интерфейса и записывая журнал навигации в файл logcat устройства для каждой страницы. Пример: afwtest.AutomationDriver: Navigating:com.android.afwtest.uiautomator.pages.gms.AddAccountPage
    Страницы пользовательского интерфейса для пакета тестов com.android.afwtest.NfcProvisioning включают:
    • com.android.afwtest.uiautomator.pages.managedprovisioning.NfcProvisioningPage
    • com.android.afwtest.uiautomator.pages.PageSkipper
    • com.android.afwtest.uiautomator.pages.LandingPage
  • Если тест не пройден во время процесса инициализации, LogCat содержит ошибку , аналогичную:
    TestRunner: java.lang.RuntimeException: Failed to load page: com.android.afwtest.uiautomator.pages.packageinstaller.DeviceAccessPage
    
    Это , как правило , вызванные ошибок в предыдущей странице пользовательского интерфейса или страницах , которые не удалось нагрузка, так что попытайтесь найти другие сообщения об ошибках в LogCat до появления этой ошибки , а затем попробуйте воспроизвести его вручную, следуя процессу подготовки.
  • Если тестовый пакет не прошел:
    • Скриншот сохраняется out/host/linux-x86/afw-th/android-cts/repository/logs/ start-time , используя следующий синтаксис: screenshot-test_ test_class_full_name _ test_case_name - random_number .png . Эта информация также регистрируется в журнале хоста.
    • Отчет ошибка сохраняется out/host/linux-x86/afw-th/android-cts/repository/logs/ start-time как: bug- test_class_full_name _ test_case_name - random_number .zip .
  • После того, как все тестовые пакеты выполнить, скриншот взят и сохранен out/host/linux-x86/afw-th/android-cts/repository/logs/ start-time как: screenshot- random_number .png . Эта информация также регистрируется в журнале хоста.

часто задаваемые вопросы

Могу ли я запустить тест - план afw-userdebug-build на устройство прошивать пользователя сборки?

Пакеты Количество испытаний в afw-userdebug-build плана завода сброса устройства тестирования перед запуском фактического тестового потока и требуют adb отладки , чтобы быть автоматически включен. При сборке пользователя, adb отладка может быть включена только вручную изменить настройку в параметрах разработчика.

Могу ли я запустить тестовый план afw-user-build на устройстве прошили с userdebug сборки?

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

Иногда мой тест не проходит, потому что загрузка пользовательского интерфейса занимает слишком много времени. Как я могу это исправить?

Настройка timeout_size настройки в ./android-cts/repository/testcases/afw-test.props . Допустимые значения: S, M, L, XL, XXL.

Тест пакет com.android.afwtest.NfcProvisioning (или SuwDoProvisioning ) не будет работать на моем устройстве , поскольку установленные начальные настройки показывает настроенные UI (например, Term и условия) после завершения инициализации. Как я могу пропустить этот настраиваемый интерфейс?

После процесса подготовки пользовательский интерфейс должен быть минимальным. Тестовая оснастка автоматически пропустит такой пользовательский интерфейс, если в пользовательском интерфейсе есть кнопка с осмысленным текстом или описанием содержимого, содержащим любое из следующих слов: Пропустить, Готово, Готово, Принять, Согласен, Далее, Продолжить или Продолжить. Кроме того , вы можете определить кнопку в afw-test.props настроить тестовую пропустить свой пользовательский интерфейс. Пример:

oem_widgets=your_btn
your_btn.text=your_customized_text
your_btn.package=your_package
your_btn.action=click

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

Тест пакет com.android.afwtest.NfcProvisioning (или SuwDoProvisioning ) не удался , и на экране последнего пользовательского интерфейса «Проверьте свой счет.» Почему это происходит и как восстановить тестовое устройство?

Этот сбой возникает из-за того, что предыдущий тестовый пакет не смог сбросить защиту от возврата к заводским настройкам в конце теста. Вы должны вручную войти в учетную запись, чтобы разблокировать устройство.

Моему устройству требуется больше времени для восстановления заводских настроек. Могу ли я продлить время ожидания восстановления заводских настроек?

да. Настройка factory_reset_timeout_min настройки в afw-test.props . Действительные настройки указаны в минутах; вы можете установить любое количество минут, которое работает с вашим устройством.