Что означает adb в тестировании
Android Studio: отладка на реальном устройстве
Статья содержит ответы на вопросы, как правильно провести Android Studio тестирование на реальном устройстве, какие при этом используются настройки и команды для разных девайсов.
Разработка мобильного приложения предполагает процесс тестирования на работающем гаджете. Для Android Studio отладка на реальном устройстве возможна несколькими способами. Это можно сделать при помощи:
Чтобы провести Android Studio отладка по USB, подключаются соответствующие драйвера. Они первыми установятся автоматически после запуска на ПК.
Android предлагает разработчикам редактирование языка программирования (Java, C++, Kotlin), является компилятором создания АРК-файлов. Включает дополнительные инструменты:
Что означает ADB для Android studio
Android Debug Bridge или adb – утилита командной строки. С ее помощью проводится Android Studio тестирование на реальном устройстве:
Работает на модели клиент-сервер. Утилита размещается на компьютере в каталогах на диске С.
Adb устанавливается также через Wi-Fi. Для этого обеспечивается подключение устройств к одному Wi-Fi, иначе они не смогут распознать друг друга. Опция разрешает Android Studio запуск приложения на телефоне с операционной системой Android.
Android Debug Bridge – консольное приложение для использования в тестовой среде на мобильных гаджетах. Специализированные команды помогают взаимодействовать с устройствами по специализированным функциям.
Настройка Android-устройства для тестирования с ADB
После установки Android Studio на устройство применяется инструментарий SDK. Далее в настройках приспособления проводятся изменения, которые отличаются из-за разных моделей гаджета, производителя и версии программного обеспечения. Действия, как в Андроид Студио подключить устройство, сводятся к обобщенным этапам:
Android требует, чтобы приложение Android Studio получило разрешение прописать USB. Утилита располагает опциями:
Настройка ADB на Windows
Настройка ADB под Windows прописывается с любой директории ПК. Для использования функций на компьютере устанавливается SDK. Вес установочного пакета составляет 9 Мб. Он поддерживает все версии Windows. Инструмент автоматически устанавливает драйвера, которые необходимы для тестирования на устройстве. Набор для разработки программного обеспечения выпускается компанией Google. Отправляет команды терминала из внешних источников на телефон. Запуск происходит в Андроид Студио на телефоне с помощью Run App. После этого открывается окно выбора устройства, и запускается приложение.
Проверяем настройки ADB для тестирования
Проверка настроек проводится с помощью командной строки Windows. После запуска в поле для ввода поиска программ и файлов набирается строка «adb devices». В программе отразится перечень устройств, которые подключены к компьютеру. Если на экране появится непустой список, значит, настройки подключены правильно, и ADB работает в режиме реального времени.
Тестирование приложения с помощью реального устройства
Инструментарий SDK устанавливает и запускает программу каждый раз при компиляции. Система показывает диалоговое окно с вопросом о необходимости приема ключей.
Что делать, если Android Studio не видит телефон Samsung? Настроить приложение, чтобы оно обнаружило устройство, использовать утилиту adb. Указанные способы рассказывают о Android Studio, показывают, как запустить проект на телефоне.
Отладка по ADB
ADB (Android Debug Bridge) – консольная клиент-серверная программа, выполняет роль универсального интерфейса для управления Android-устройствами (или их эмуляторами).
Через ADB программы на компьютере можно взаимодействовать с телефоном или планшетом, например для синхронизации контактов, бэкапов данных или удаленного доступа к устройству.
Однако главное назначение ADB – это отладка приложений и сервисов при их разработке и тестировании. В этом случае взаимодействие с устройством осуществляется через консоль.
В состав ADB входит три компонента:
Подготовка к использованию
Прежде чем начать отладку на устройстве, необходимо выполнить несколько действий:
Установка ADB
На устройствах под управлением Windows, установите драйвер для вашего Android-устройства.
Если драйвера для вашего устройства не нашлось на указанных страницах, попробуйте поискать его на сайте производителя.
Для MacOS и Linux установка драйверов не требуется.
Установка ADB в Windows
Скачайте SDK Platform Tools и распакуйте папку platform-tools на диск (рекомендуется в С:\platform-tools).
В системную переменную Path добавьте путь к распакованной папке, для этого:
Установка ADB в Linux
Чтобы установить SDK Platform Tools в Ubuntu выполните следующую команду.
Установка ADB в MacOS
Самый простой способ установить SDK Platform Tools на MacOS, используя Homebrew.
Либо установить вручную.
Сперва удалите предыдущую версию android-platform-tools, если такая имеется.
Перейдите в папку с загрузками, распакуйте скачанный архив и переместите файлы программы в удобное для вас место, например в домашнюю директорию.
Обновите bash профиль или перезапустите терминал.
Проверка ADB
Зайдите в консоль и введите следующую команду:
Если все сделали верно, в ответ в консоль будет выведена информация о версии ADB.
Как включить отладку по USB на Android
Отладка по USB включается в настройках системы в разделе Параметры разработчика.
На Android 4.2 и выше раздел параметров разработчика по умолчанию скрыт. Чтобы сделать его видимым, перейдите в Настройки – О телефоне и нажмите Номер сборки (в редких случаях Номер модели) 7 раз (в редких случаях 10). На экране отобразится уведомление «Теперь вы разработчик!«
В настройках должен появиться пункт меню Параметры разработчика, найдите в нем пункт Отладка USB и активируйте его.
На некоторых устройствах раздел с параметрами разработчика может располагаться в других разделах настроек или иметь другое название.
Отладка Android по Wi-Fi
Для начала разрешите на Android устройстве отладку по USB, как описано в предыдущем разделе.
Устройство и компьютер должны быть в одной Wi-Fi сети. Убедитесь, что ваш брандмауэр или антивирусное не блокирует adb соединения.
Подключите устройство к компьютеру с помощью USB кабеля.
Разрешите устройству принимать соединения TCP/IP через порт 5555. Для этого выполните в командной строке следующую команду.
В ответ должно появиться сообщение restarting in TCP mode port: 5555.
Если подключенных устройств несколько, возможно придется дополнительно указать серийный номер устройства.
Узнать серийный номер и получить информацию о подключенных устройствах можно следующей командой.
После того, как разрешите устройству принимать соединения TCP/IP через порт 5555, отсоедините кабель USB от компьютера.
Далее понадобится узнать ip-адрес вашего Android-устройства.
Например, для устройств Nexus, ip-адрес можно посмотреть в разделе Настройки — О телефоне (О планшете) – Статус – IP-адрес. Иногда ip-адрес указан в настройках Wi-Fi.
Подключитесь к устройству по его ip-адресу.
Убедитесь, что устройство появилось в списке.
Теперь можно выполнять отладку по Wi-Fi, без использования кабеля.
Если соединение ADB потеряно. Убедитесь, что устройство и компьютер все еще подключены к одной Wi-Fi сети. Переподключитесь, выполнив adb connect снова. Или, если не поможет, перезагрузите хост adb:
Затем повторите попытку.
После проделанных шагов вы сможете подключаться к устройству без использования USB-кабеля.
Команды ADB
Перед выполнением команд adb полезно знать, какие экземпляры устройств подключены к серверу adb. Список подключенных устройств можно посмотреть следующей командой.
В примере ниже показаны три устройства. Первые два — эмуляторы, третье — аппаратное устройство, подключенное к компьютеру.
Нижеприведенная команда отправится на устройство с указанным серийным номером.
Команда отправится только на устройство подключенное через USB. Выдаст ошибку, если подключено больше одного устройства.
Команда отправится на устройство в эмуляторе. Выдаст ошибку, если подключено больше одного эмулятора.
Подсоединиться к андроид хосту по протоколу TCP/IP (по умолчанию порт 5555, если не указан другой).
Отсоединиться от андроид подключенного через TCP/IP (по умолчанию порт 5555). Если не задан ни один параметр, отключиться от всех активных соединений.
Перезапуск демона с правами root.
В некоторых случаях может потребоваться остановить сервер adb, и перезапустить его, чтобы решить проблему (например, если adb не отвечает на команды).
Копировать файл или папку на устройство.
Копировать файл или папку с устройства на компьютер.
Установить приложение на устройство.
Ключи:
-l блокировка приложения;
-r переустановить приложение, с сохранением данных;
-s установить приложение на карту памяти.
Чтобы удалить приложение с устройства используйте следующую команду.
Сделать скриншот экрана устройства.
Полученный скриншот можно сразу забрать на компьютер.
Для записи видео с экрана устройства используйте команду screenrecord.
Чтобы остановить запись используйте комбинацию клавиш Control + C (Command + C на Mac). По умолчанию максимальный лимит для видео составляет 3 минуты.
ADB LogCat
Logcat — инструмент для работы с логами Android.
В простейшем случае, чтобы вывести журнал системных сообщений устройства используйте следующую команду.
Для остановки сбора логов нажмите Ctrl+C на клавиатуре (Command + C на Mac).
В записях лога в Android указан приоритет:
Фильтровать сообщения по приоритету можно следующим образом.
Кроме приоритета у записей указан тэг компонента системы, от которого принято сообщение.
Список параметров команды logcat:
-d вывести лог на экран и выйти;
-b загрузить альтернативный буфер лога для просмотра, такой как event или radio;
-c очистить лог и выйти;
-f записать сообщения лога в файл. По умолчанию в stdout;
-g вывести размер указанного буфера лога и выйти;
-n установить максимальное количество ротаций лога;
-s устанавливает silent фильтром по умолчанию;
-v устанавливает формат вывода сообщений лога. По умолчанию brief.
ADB Shell
Android полноценная система Unix со своим Shell, к которому можно подключаться по adb.
Команда подключит ваш терминал к shell устройства и вы сможете взаимодействовать с ним используя Unix команды, cat, ls, df и другие, а также запускать скрипты.
Чтобы выполнить одну команду, не переходя в shell используйте команду оболочки следующим образом.
Команда выше выдаст информацию о количестве свободной памяти на устройстве.
Следующая команда откроет на устройстве экран с настройками.
А две последующие через ADB включают и отключают соответственно прокси в настройках сети.
Данные команды могут быть полезными, когда к настройкам устройства нет явного доступа, например на устройствах с голосовыми интерфейсами. Я часто пользуюсь ими при отладке Яндекс.Станции.
Полезные ссылки
На этом всё. Но вы можете поддержать проект. Даже небольшая сумма поможет нам писать больше полезных статей.
Если статья помогла или понравилась, пожалуйста поделитесь ей в соцсетях.
Автоматизация тестирования Android приложений
Концепция автоматического тестирования
Задача — с наибольшей точностью автоматизировать действия, которые выполняет тестировщик. Давайте их рассмотрим. В наличии есть несколько приложений и несколько Android устройств. Для каждого приложения и каждого устройства выполняются следующие шаги:
Далее рассматриваются средства, позволяющие автоматизировать перечисленные шаги.
Управление Android устройствами
Для начала нужно выделить компьютер на котором будет запускаться автоматическое тестирование и настроить на нем Android SDK. Примеры приводятся для компьютера с установленной ОС Linux.
На всех тестируемых устройствах нужно отключить экран блокировки и максимально увеличить время ожидания. Для некоторых методов тестирования нужно отключить смену ориентации экрана.
В Android SDK имеются две утилиты для управления устройствами: adb и MonkeyRunner.
Я постараюсь подробно описать автоматизацию действий, использующихся при тестировании. Тем, кто знаком с ADB и MonkeyRunner имеет смысл сразу переходить к разделу «Способы автоматизированного тестирования».
Управление с помощью утилиты ADB
ADB (Android Debug Bridge) – утилита для управления Android устройствами из командной строки. Официальная документация по ADB: developer.android.com/tools/help/adb.html
Проверка работы ADB
Устанавливаем и настраиваем Android SDK, подключаем к компьютеру Android устройства и выполняем команду:
Команда выдаст список всех подключенных устройств. Если список устройств не пуст, значит ADB настроен и работает.
Работа с несколькими устройствами
Основные команды ADB
Открыть консоль на устройстве:
Запустить команду на устройстве:
В Android присутствуют многие стандартные утилиты Linux: ls, cat, dmesg,…
Установить приложение из apk файла:
Название package можно получить из apk файла командой:
Загрузить файл с устройства на компьютер:
Загрузить файл с компьютера на устройство:
Запускает указанную activity. Название activity, которая запускается при выборе приложения в меню можно получить из apk файла командой:
Чтение логов
Чтение логов в Android производится утилитой logcat.
Домашняя страница утилиты logcat: developer.android.com/tools/help/logcat.html
Считать логи с устройства (блокируется до нажатия Ctrl-C):
Очистить буфер логов на устройстве:
Считать буфер логов на устройстве (выдает текущее содержимое буфера, не блокируется):
Снятие скриншотов с помощью утилиты screencap
Утилита screencap сохраняет текущее содержимое экрана в графический файл:
Утилита screencap имеется на телефонах с Android 4.x и выше. На предыдущих версиях Android снятие скриншотов можно производить с помощью MonkeyRunner.
Пример BASH скрипта для тестирования приложения c помощью ADB
Управление с помощью MonkeyRunner
Утилита MonkeyRunner предоставляет API для написания скриптов, которые управляют Android устройстами. С помощью MonkeyRunner можно написать скрипт на языке Python, который устанавливает Android приложение, запускает его, имитирует действия пользователя, снимает скриншоты и сохраняет их на компьютер. Утилита MonkeyRunner использует Jython для выполнения скриптов.
Чтение логов с помощью MonkeyRunner
Скрипт запишет логи в файл example.log в текущей директории.
Снятие скриншотов
Скрипт снимает скриншот и сохраняет его в файл screenshot.png в текущей директории.
Пример управления устройством с помощью MonkeyRunner
Средства автоматизированного тестирования
Тестирование с помощью monkey
Представьте, что устройство попало в цепкие лапы очень активной и творческой обезьяны – утилита monkey призвана имитировать подобную ситуацию.
Утилита monkey входит в состав Android SDK. Утилита отправляет на устройство поток псевдо-случайных действий пользователя. Параметры командной строки задают количество действий пользователя, соотношение их типов и имя тестируемого пакета, чтобы, например, обезьяна не вышла за пределы тестируемого приложения и не начала рассылать SMS по всем контактам из адресной книги.
Примеры использования и перечень параметров приведены на домашней странице: developer.android.com/tools/help/monkey.html
Главное достоинство monkey – отсутствие затрат на поддержку. Кроме того, стресс-тестирование приложения потоком произвольных событий может обнаружить нетривиальные ошибки.
Тестирование с помощью MonkeyRunner
При помощи скриптов использующих MonkeyRunner API можно не только разработать основу для тестирующей системы, но и написать скрипты для тестирования конкретного приложения на конкретном устройстве.
Тестирование с помощью getevent/sendevent
На устройстве должны воспроизвестись записанные действия.
Тестирование с помощью Robotium
В отличии от рассмотренных ранее способов Robotium не входит в состав Android SDK, а распространяется под Open Source лицензией.
Главное отличие Robotium в том, что тестовые действия описываются на уровне интерфейса приложения. В рассмотренных ранее способах тестовые действия явно или неявно описывались на уровне устройств ввода.
Например, в приложении нужно нажать кнопку «OK». С помощью скрипта MonkeyRunner нажатие на кнопку реализуется как: «Коснуться точки экрана с координатами (x0, y0)». С помощью Robotium это реализуется как: «Нажать кнопку с текстом «OK»».
Когда действия описываются на уровне интерфейса приложения их можно сделать независимыми от расположения элементов интерфейса, разрешения экрана и положения устройства.
Кроме того, Robotium позволяет проверять реакцию приложения на действие.
Например, после нажатия на кнопку «OK» в приложении должен появиться список с элементом «Item 1». С помощью Robotium можно проверить, появился ли список с таким элементом.
Если выполнять проверки после каждого действия, то легко обнаружить, на каком шаге произошла ошибка.
Сравнение способов тестирования
Способ тестирования | Достоинства | Недостатки |
---|---|---|
Monkey – поток случайных действий пользователя. | Отсутствуют затраты на сопровождение. Не зависит от устройства. Стресс-тестирование позволяет обнаружить нетривиальные ошибки. | Качество тестирования варьируется от приложения к приложению. Найденные ошибки сложно воспроизвести. Нет проверки состояния приложения. |
MonkeyRunner – скрипт управления устройством. | Гибкость. | Сложность написания и поддержки скриптов даже для простых приложений. |
getevent/sendevent – запись/воспроизведение действий пользователя. | Для записи последовательности действий не требуются навыки программирования. | Записанная последовательность действий подходит только к одному устройству при фиксированной ориентации. При изменении интерфейса приложения необходимо заново записать последовательность действий. Нет проверки состояния приложения. |
Robotium – сценарий тестирования интерфейса приложения с проверкой состояния. | Действия описываются на уровне интерфейса приложения. Сценарий может быть независимым от разрешения экрана и ориентации устройства. После совершения действия можно проверять состояние приложения. | Сложность написания сценариев на языке Java. При изменении интерфейса приложения сценарий придется модифицировать. |
Анализ результатов
В результате тестирования приложения перечисленными выше способами мы получили логи и скриншоты. Теперь их нужно проанализировать на наличие ошибок.
Анализ логов
Анализ скриншотов
В процессе тестирования вручную можно подготовить серию скриншотов в ключевых моментах тестирования, а затем сравнивать их с содержимым экрана в процессе автоматизированного тестирования. Это позволит определить, правильно ли идет процесс автоматизированного тестирования и выявлять ошибки.
Также полезно сравнивать скриншот до и после запуска приложения – это позволяет определять случаи, когда приложение аварийно завершается без сообщений на экране и в логах.
MonkeyRunner позволяет сравнить два скриншота с заданным допуском в процентах:
К сожалению, в API MonkeyImage не предусмотрена функция загрузки из файла. Поэтому для сравнения сохраненных скриншотов придется писать свою функцию, например с помощью Python Imaging Library.
Сброс состояния устройства после тестирования
После тестирования приложения устройство нужно вернуть в первоначальное состояние.
Многократное нажатие кнопки «Назад»
Нажимаем кнопку «Назад» используя MonkeyRunner:
На практике этот вариант оптимален, так как имитирует поведение реального пользователя.
Заключение
В заметке были рассмотрены некоторые способы автоматического тестирования Android приложений, их достоинства и недостатки. Кроме того, рассмотрены инструменты, входящие в Android SDK или распространяющиеся под Open Source лицензией.
Хочется отметить, что автоматическое тестирование не является панацеей и не заменяет другие виды тестирования. Качественный продукт получается при грамотно построенном процессе тестирования, сочетающем различные способы.
Android Debug Bridge: первоклассный инструмент для тестирования игр
В наши дни существует большое количество операционных платформ: ПК, портативные консоли, мобильные гаджеты и многое другое. Далее в статье мы рассмотрим популярный инструмент тестирования мобильных игр для одной из наиболее используемых портативных операционных систем – Android.
Речь пойдет об Android Debug Bridge. Это специальное ПО, доступное при помощи командной строки из Android SDK.
Напомним, что Android SDK – это специальная среда разработки мобильных продуктов под управление операционной системы Android, внутри которой можно создавать и редактировать любое пользовательское ПО.
Установка ADB и редактирование конфигураций
По сути, Android Debug Bridge являет собой часть Android SDK Platform-Tools, который в свою очередь является системной частью Android SDK и состоит из большого количества разнообразных инструментов для удобного взаимодействия с операционной платформой Android.
Все это значит, что после процесса установки Android Studio, можно воспользоваться инструментами SDL Manager и загрузить самую последнюю версию инструмента Android Debug Bridge. После этого необходимо перейти в системные свойства ПК и открыть вкладку «Дополнительные параметры системы».
Далее найти кнопку «Переменные среды» и нажать на нее. В предоставленном перечне будет одна среда под названием path. Нужно выбрать именно ее и кликнуть на кнопку «Редактировать», либо же дважды нажать мышкой на строке.
Перед вами появится окно «Редактирование системной переменной», внутри которого нужно вручную добавить пути к таким папкам, как «Tools» и «Platform-Tools» (при помощи кнопки «Создать»).
Если вы пользуетесь операционной системой Windows 7, то вам придется задавать пути к папкам в строке «Path» через точку с запятой.
Затем необходимо перезагрузить ПК. Чтобы проверить, правильно ли прошла настройка, можно открыть командную строку и ввести в ней такую команду – adb version, и, если после этого появится детальная информация о данном веб-продукте, можно быть уверенным: установка прошла правильно и все внесенные коррективы подтянулись операционной системой.
Еще стоит отметить, что для полноценного взаимодействия внутри операционной системы Windows необходимо установить специальные драйвера для поддержки полноценного интерфейса Android Debug Bridge по USB. Если же вы пользуетесь Linux/FreeBSD, драйвера устанавливать не стоит, но важно создать правило для udev.
Далее кратко рассмотрим последовательность создания правила на примере Ubuntu.
Для начала нужно узнать значение переменных idVendor и idProduct используемого мобильного гаджета. Выполнить процедуру можно при помощи команды lsusb в терминале, предварительно подключив гаджет к ПК через USB кабель. Должна отобразиться вот такая команда — Bus 002 Device 006: ID 12d1:1038 Huawei Technologies Co., Ltd.
Где idVendor – это шестнадцатеричные цифры после ID и до начала двоеточия, а idProduct – следующий набор цифр после двоеточия.
Теперь нужно создать файл /etc/udev/rules.d/51-android.rules с правами chmod 644 и таким содержанием:
SUBSYSTEMS==»usb», ATTRS
Выполняем следующую команду:
$ sudo /etc/init.d/udev reload
Что касается ПК, то вся настройка на этом закончена. Если брать мобильное устройство, то в гаджете должна быть включена отладка по USB: «Settings-Application-Development-Debugging via USB».
ВАЖНО ЗНАТЬ! Чтобы получить все возможности ADB на мобильном гаджете, система смартфона должна быть под root-правами пользователя и иметь установленный пакет Busybox (можно выгрузить с Google Play).
Для взаимодействия с Android Debug Bridge на мобильном устройстве также необходимо изменить некоторые параметры в системе гаджета. Мы не будем детально расписывать, как это правильно сделать, так как процесс настройки внутри системы каждого портативного девайса может существенным образом отличаться (в зависимости от производителя, года выпуска и версии используемого ПО). Но все же можно выделить основные шаги, которые следует выполнить:
Применение ADB в сфере тестирования ПО
Несмотря на то, что возможности Android Debug Bridge доступны для обычных пользователей ПК и мобильных гаджетов, чаще его используют во время процесса тестирования мобильных приложений и игр под портативные операционные системы.
Продукт содержит очень много полезных в работе возможностей, но можно выделить наиболее важные и актуальные из них:
Судя по некоторым описанным возможностям, функционал ADB кажется очень большим, хоть по своей сути это обыкновенный инструмент для Android SDK, который незаменим при тестировании мобильных продуктов различной направленности.
Далее поговорим об основных командах, которые позволяют в полной мере реализовать функционал ADB.
Основные команды ADB
На первый взгляд может показаться, что настройка ADB – очень сложная и долгая процедура, но на самом деле это не так. Да и наличие дружественного графического интерфейса располагает к тому, чтобы пользователь мог самостоятельно выполнить данные действия.
После его установки в вашем распоряжении будет максимальное количество полезного и действенного функционала, который так необходим при проверке мобильного ПО.
Далее рассмотрим некоторые из самых базовых команд:
Adb start-server и kill-server
Adb devices и bugreport
Самые популярные опции к командам в ADB
Больше чем к 90% команд в ADB можно добавить ключи, которые способны в той или иной степени редактировать предназначение для выбранной функции.
Разберем некоторые из них:
Заключение
В сфере тестирования мобильных приложений такой продукт как Android Debug Bridge является неотъемлемым инструментом для проведения консольных проверок мобильного ПО. С его помощью можно выполнять множество полезных и актуальных системных команд, которые позволяют в полной мере провести проверку общей функциональности создаваемого продукта.
Кто-то может посчитать установку этого продукта сложной, но на самом деле это не так. Да и сразу после этого сложно будет не оценить его максимальную пользу при взаимодействии с мобильными устройствами различной направленности.