Есть у нас UI-автотесты, которые немного поломались — надо пофиксить, заодно появился повод вообще с ними разобраться.
Для тестирования используется Android Virtual Device и эмулятор из Android Studio. В этом посте — установка студии и создание такого устройства, в следующем — запуск Appium тестов на нём.
Установка и запуск выполняются на Arch Linux, но процесс не специфичен для этой системы.
Установка Android Studio
Устанавливаем Android Studio :
Кроме самой студии потребуется эмулятор девайсов — Android Emulator , он будет установлен во время первого запуска Студии:
Либо можно установить из AUR — android-emulator
.
sdkmanager
Для управления пакетами в Android Studio используется sdkmanager
.
Получаем список установленных пакетов:
./Android/Sdk/tools/bin/sdkmanager --list
Warning: File /home/setevoy/.android/repositories.cfg could not be loaded.
Installed packages:=====================] 100% Computing updates...
Path | Version | Description | Location
------- | ------- | ------- | -------
build-tools;28.0.3 | 28.0.3 | Android SDK Build-Tools 28.0.3 | build-tools/28.0.3/
emulator | 28.0.16 | Android Emulator | emulator/
extras;android;m2repository | 47.0.0 | Android Support Repository | extras/android/m2repository/
extras;google;m2repository | 58 | Google Repository | extras/google/m2repository/
extras;m2repository;com;android;support;constraint;constraint-layout-solver;1.0.2 | 1 | Solver for ConstraintLayout 1.0.2 | extras/m2repository/com/android/support/constraint/constraint-layout-solver/1.0.2/
extras;m2repository;com;android;support;constraint;constraint-layout;1.0.2 | 1 | ConstraintLayout for Android 1.0.2 | extras/m2repository/com/android/support/constraint/constraint-layout/1.0.2/
patcher;v4 | 1 | SDK Patch Applier v4 | patcher/v4/
platform-tools | 28.0.1 | Android SDK Platform-Tools | platform-tools/
platforms;android-28 | 6 | Android SDK Platform 28 | platforms/android-28/
sources;android-28 | 1 | Sources for Android 28 | sources/android-28/
tools | 26.1.1 | Android SDK Tools | tools/
Available Packages:
Path | Version | Description
------- | ------- | -------
add-ons;addon-google_apis-google-15 | 3 | Google APIs
add-ons;addon-google_apis-google-16 | 4 | Google APIs
add-ons;addon-google_apis-google-17 | 4 | Google APIs
...
AVD
AVD — Android Virtual Device, для управления используем avdmanager
.
Получаем список имеющихся вирутальных устройств — пока тут пусто:
./Android/Sdk/tools/bin/avdmanager list avd
Available Android Virtual Devices:
Мне надо создать устройство — телефон Nexus и с API v26 .
Находим девайс в списке поддерживаемых:
./Android/Sdk/tools/bin/avdmanager list | grep -A 2 "Nexus 5X"
id: 9 or "Nexus 5X"
Name: Nexus 5X
OEM : Google
Находим пакет с нужной версией API с помощью sdkmanager
(тут немного поломалось форматирование, в консоли оно выглядит приятнее):
./Android/Sdk/tools/bin/sdkmanager --list | grep 26
Warning: File /home/setevoy/.android/repositories.cfg could not be loaded.
tools | 26.1.1 | Android SDK Tools | tools/
build-tools;26.0.0 | 26.0.0 | Android SDK Build-Tools 26
build-tools;26.0.1 | 26.0.1 | Android SDK Build-Tools 26.0.1
build-tools;26.0.2 | 26.0.2 | Android SDK Build-Tools 26.0.2
build-tools;26.0.3 | 26.0.3 | Android SDK Build-Tools 26.0.3
platforms;android-26 | 2 | Android SDK Platform 26
sources;android-26 | 1 | Sources for Android 26
system-images;android-26;android-tv;x86 | 11 | Android TV Intel x86 Atom System Image
system-images;android-26;android-wear-cn;x86 | 4 | China version of Android Wear Intel x86 Atom System Image
system-images;android-26;android-wear;x86 | 4 | Android Wear Intel x86 Atom System Image
system-images;android-26;default;x86 | 1 | Intel x86 Atom System Image
system-images;android-26;default;x86_64 | 1 | Intel x86 Atom_64 System Image
system-images;android-26;google_apis;x86 | 12 | Google APIs Intel x86 Atom System Image
system-images;android-26;google_apis;x86_64 | 12 | Google APIs Intel x86 Atom_64 System Image
system-images;android-26;google_apis_playstore;x86 | 7 | Google Play Intel x86 Atom System Image
Вот он — system-images;android-26;google_apis_playstore;x86
.
Устанавливаем его:
./Android/Sdk/tools/bin/sdkmanager "system-images;android-26;google_apis_playstore;x86"
Warning: File /home/setevoy/.android/repositories.cfg could not be loaded.
License android-sdk-preview-license: ] 10% Computing updates...
---------------------------------------
...
---------------------------------------
Accept? (y/N): y
[=======================================] 100% Unzipping... x86/vendor.img
Создаём новое устройство с помощью avdmanager create avd
:
./Android/Sdk/tools/bin/avdmanager create avd --name Nexus_5X_API_26 -k "system-images;android-26;google_apis_playstore;x86" --device "Nexus 5X"
В --device
указываем имя из результатов avdmanager list
.
Проверяем устройства:
./Android/Sdk/tools/bin/avdmanager list avd
...
Name: Nexus_5X_API_26
Device: Nexus 5X (Google)
Path: /home/setevoy/.android/avd/Nexus_5X_API_26.avd
Target: Google Play (Google Inc.)
Based on: Android 8.0 (Oreo) Tag/ABI: google_apis_playstore/x86
Проверяем в самом Android Studio — Tools > AVD Manager :
Запускаем эмулятор:
./Android/Sdk/tools/emulator -avd Nexus_5X_API_26
Пока с этим всё — можно переходить к Appium .