|
|||||||
Работа с утилитой ADB: основные команды, чтение логов, создание скриншотов
Время создания: 16.01.2019 14:47
Текстовые метки: android, андроид, adb, logcat, скриншот, screenshot, лог, логирование
Раздел: Компьютер - Программирование - Java - Java в Android
Запись: xintrea/mytetra_syncro/master/base/1547639225d0dmvdho32/text.html на raw.github.com
|
|||||||
|
|||||||
В данной заметке будут рассмотрены средства реализации автоматического тестирования. Рассматриваются только инструменты, входящие в Android SDK или распространяющиеся под Open Source лицензией. Концепция автоматического тестирования Задача — с наибольшей точностью автоматизировать действия, которые выполняет тестировщик. Давайте их рассмотрим. В наличии есть несколько приложений и несколько 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>/platform-tools/. Путь к данной директории рекомендуется прописать в переменной окружения PATH. Проверка работы ADB Устанавливаем и настраиваем Android SDK, подключаем к компьютеру Android устройства и выполняем команду: adb devices Команда выдаст список всех подключенных устройств. Если список устройств не пуст, значит ADB настроен и работает. Работа с несколькими устройствами Чтобы указать ADB с каким устройством нужно работать, следует прописать серийный номер устройства после ключа -s: adb -s <serial_number> <command> Например: adb -s <serial_number> logcat Серийный номер устройства можно посмотреть командой adb devices. Ключ -s позволяет работать одновременно с несколькими подключенными устройствами. В дальнейшем ключ -s в командах я указывать не буду. Основные команды ADB Открыть консоль на устройстве: adb shell Запустить команду на устройстве: adb shell <command> В Android присутствуют многие стандартные утилиты Linux: ls, cat, dmesg,… Установить приложение из apk файла: adb install example.apk Удалить приложение: adb uninstall <package> Название package можно получить из apk файла командой: aapt dump badging example.apk | grep "package" Загрузить файл с устройства на компьютер: adb pull <path-on-device> <file> Загрузить файл с компьютера на устройство: adb push <file> <path-on-device> Примечание: В большинство директорий на устройстве разрешен доступ только на чтение. Доступ на запись разрешен в директорию /sdcard (из нее нельзя запускать программы) и /data/local/tmp/. Запуск приложения: adb shell am start -n <package>/<activity> Запускает указанную activity. Название activity, которая запускается при выборе приложения в меню можно получить из apk файла командой: aapt dump badging example.apk | grep "launchable-activity" Чтение логов Чтение логов в Android производится утилитой logcat. Домашняя страница утилиты logcat: developer.android.com/tools/help/logcat.html Считать логи с устройства (блокируется до нажатия Ctrl-C): adb logcat Очистить буфер логов на устройстве: adb logcat -c Считать буфер логов на устройстве (выдает текущее содержимое буфера, не блокируется): adb logcat -d Пример: adb logcat -c # очищаем буфер логов # выполняем действие adb logcat -d > file.log # сохраняем текущее содержимое буфера логов в file.log Снятие скриншотов с помощью утилиты screencap Утилита screencap сохраняет текущее содержимое экрана в графический файл: adb shell screencap /sdcard/screen.png adb pull /sdcard/screen.png screen.png adb shell rm /sdcard/screen.png Утилита screencap имеется на телефонах с Android 4.x и выше. На предыдущих версиях Android снятие скриншотов можно производить с помощью MonkeyRunner. Пример BASH скрипта для тестирования приложения c помощью ADB Скрипт: app_test.sh #!/bin/bash #------------------------------------------------------------------------------- # Пример BASH скрипта для автоматического тестирования приложения c помощью ADB # # Скрипт: # 1. Устанавливает приложение # 2. Запускает приложение # 3. Тестирует приложение с помощью monkey # 4. Удаляет приложение # # На каждом шаге собираются и сохраняются log-файлы. #------------------------------------------------------------------------------- APK="example.apk" PACKAGE="com.example.package" ACTIVITY="com.example.package.activity" rm -rf log mkdir log # 1. Устанавливаем приложение adb uninstall $PACKAGE # удаляем приложение adb logcat -c # очищаем буфер логов adb install $APK # устанавливаем приложение adb logcat -d > log/install.log # записываем логи установки приложения # 2. Запускаем приложение adb logcat -c adb shell am start -n $PACKAGE/$ACTIVITY # запускаем приложение sleep 10 # ожидаем 10 сек чтобы приложение полностью загрузилось adb logcat -d > log/start.log # 3. Тестируем приложение adb logcat -c # тестируем приложение с помощью monkey adb shell monkey --pct-touch 70 -p $PACKAGE -v 1000 --throttle 500 adb logcat -d > log/test.log # 4. Удаляем приложение adb logcat -c adb uninstall $PACKAGE adb logcat -d > log/uninstall.log |
|||||||
Так же в этом разделе:
|
|||||||
|
|||||||
|