Для устройств под управлением Android 6 или Android 7 вы можете протестировать подготовку устройства с помощью набора тестов Android Enterprise (AE), который представляет собой набор тестов для проверки корпоративной совместимости устройств Android. Обвязка включает в себя приложения поддержки, тестовые примеры, файлы конфигурации и средство запуска тестов ( afw-test-tradefed
), созданное на основе cts-tradefed
. Перед настройкой AE Test Harness обязательно выполните подготовку для администрирования устройства .
Для устройств под управлением 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 Nougat — 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-нуга-dev | Андроид 7.0 |
afw-test-harness-2.1 | Андроид 7.0 |
afw-test-harness-marshmallow-dev | Андроид 6.0 |
AFW-тест-жгут-1.5 | Андроид 6.0 |
Вместе с исходным кодом загружаются и другие проекты зависимостей, необходимые для создания обвязки.
Просмотр в Android Studio
Чтобы просмотреть и отредактировать исходный код в Android Studio:
- Выполните следующие команды
make idegen
development/tools/idegen/idegen.sh
- В Android Studio откройте
android.ipr
.
Исходный код AE Test Harness находится в test/AfwTestHarness
.
Настройка тестового жгута AE
Вы можете настроить обвязку, настроив test/AfwTestHarness/afw-test.props
. Для успешного запуска жгута выполните следующие шаги:
- Настройте сеть Wi-Fi в
afw-test.props
со следующими свойствами:wifi_ssid wifi_password (optional) wifi_security_type (optional, available options are: NONE, WEP or WPA)
- Получите по крайней мере одну учетную запись из домена, привязанного к Test DPC в качестве контроллера политики устройства. Укажите детали в
afw-test.props
со следующими свойствами:work_account_username work_account_password
AE Test Harness использует Test 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:
- В вашей среде сборки запустите средство запуска тестов, используя:
afw-test-tradefed
Это запустит консольcts-tf
, загрузит планы тестирования, тестовые примеры иafw-test.props
изout/host/linux-x86/afw-th/android-cts
. - Из разархивированной папки
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. - Запустите план тестирования. Каждый план тестирования представляет собой XML-файл, содержащий набор тестовых пакетов из каталога тестовых пакетов
AfwTestHarness/tests
. Общие планы включают в себя:-
afw-userdebug-build
. Содержит все тестовые пакеты, требующие сборки userdebug. -
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
. -
- Запустите тестовый пакет. Чтобы запустить один тестовый пакет, используйте
cts-tf> run cts --package com.android.afwtest.NfcProvisioning
. Чтобы просмотреть все пакеты, используйте командуlist packages
. Чтобы получить дополнительные параметры, используйте командуrun cts --help
.
Отладка системы тестирования AE
Запускайте все команды в консоли afw-test-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
) сохраняются в отдельных zip-файлах. - Найдите соответствующую информацию, выполнив поиск afwtest в logcat устройства. Пример:
zless out/host/linux-x86/afw-th/android-cts/repository/logs/ start-time /device_logcat_ random-number .zip | grep afwtest
- Чтобы просмотреть полный журнал afw-test-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-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
) не работает на моем устройстве, потому что установленная начальная установка показывает настроенный пользовательский интерфейс (например, условия и положения) после завершения подготовки. Как я могу пропустить этот пользовательский интерфейс?
После процесса подготовки должен быть минимальный пользовательский интерфейс. Тестовая система автоматически пропустит такой пользовательский интерфейс, если в пользовательском интерфейсе есть кнопка с осмысленным текстом или описанием содержимого, которое содержит любое из следующих слов: Пропустить, Готово, Готово, Принять, Согласиться, Далее, Продолжить или Приступить. В качестве альтернативы вы можете определить кнопку в 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
. Допустимые настройки указаны в минутах; вы можете установить любое количество минут, которое работает с вашим устройством.