Есть у нас UI-автотесты, которые немного поломались – надо пофиксить, заодно появился повод вообще с ними разобраться.
Для тестирования используется Android Virtual Device и эмулятор из Android Studio. В этом посте – установка студии и создание такого устройства, в следующем – запуск Appium тестов на нём.
Установка и запуск выполняются на Arch Linux, но процесс не специфичен для этой системы.
Содержание
Установка Android Studio
Устанавливаем Android Studio:
[simterm]
$ yaourt -S android-studio
[/simterm]
Кроме самой студии потребуется эмулятор девайсов – Android Emulator, он будет установлен во время первого запуска Студии:
Либо можно установить из AUR – android-emulator
.
sdkmanager
Для управления пакетами в Android Studio используется sdkmanager
.
Получаем список установленных пакетов:
[simterm]
$ ./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 ...
[/simterm]
AVD
AVD – Android Virtual Device, для управления используем avdmanager
.
Получаем список имеющихся вирутальных устройств – пока тут пусто:
[simterm]
$ ./Android/Sdk/tools/bin/avdmanager list avd Available Android Virtual Devices:
[/simterm]
Мне надо создать устройство – телефон Nexus и с API v26.
Находим девайс в списке поддерживаемых:
[simterm]
$ ./Android/Sdk/tools/bin/avdmanager list | grep -A 2 "Nexus 5X" id: 9 or "Nexus 5X" Name: Nexus 5X OEM : Google
[/simterm]
Находим пакет с нужной версией API с помощью sdkmanager
(тут немного поломалось форматирование, в консоли оно выглядит приятнее):
[simterm]
$ ./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
[/simterm]
Вот он – system-images;android-26;google_apis_playstore;x86
.
Устанавливаем его:
[simterm]
$ ./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
[/simterm]
Создаём новое устройство с помощью avdmanager create avd
:
[simterm]
$ ./Android/Sdk/tools/bin/avdmanager create avd --name Nexus_5X_API_26 -k "system-images;android-26;google_apis_playstore;x86" --device "Nexus 5X"
[/simterm]
В --device
указываем имя из результатов avdmanager list
.
Проверяем устройства:
[simterm]
$ ./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
[/simterm]
Проверяем в самом Android Studio – Tools > AVD Manager:
Запускаем эмулятор:
[simterm]
$ ./Android/Sdk/tools/emulator -avd Nexus_5X_API_26
[/simterm]
Пока с этим всё – можно переходить к Appium.