1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/xuxu1988-Adb-For-Test

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
В этом репозитории не указан файл с открытой лицензией (LICENSE). При использовании обратитесь к конкретному описанию проекта и его зависимостям в коде.
Клонировать/Скачать
README.md 8 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
Отправлено 16.03.2025 17:23 ab44618

Управление устройствами с помощью adb

С помощью команд adb можно выполнять простые действия, такие как клик, свайп, долгое нажатие и т.д. Можно использовать пропорциональное позиционирование элементов или позиционировать элементы через другие элементы (требуется версия Android выше 4.0). Этот инструмент предназначен для использования в тестировании приложений на Android (Android Test) и имеет большую часть функций, доступных в monkeyrunner.

2018.05.17

Добавлена возможность получения разрешения экрана для версий Android 4.3 и выше с использованием команды wm size.

2015.12.24

Добавлен метод pinchZoom для изменения масштаба экрана в Java версии.

2015.04.28

  • В Python версии модуль adbUtils был переработан, объединены классы AppInfo, Action в класс ADB.

    Методы инициализации:

    adb = ADB() или adb = ADB("device_id")

    • Целью переработки было увеличение поддержки нескольких устройств, передачей device_id. Это позволяет решить проблему выполнения скриптов при подключении нескольких устройств к USB.
    • В классе Element добавлен метод позиционирования элементов по свойству content-desc.

Robotium

  • Для использования этого инструмента с Robotium для работы с несколькими процессами, потребуется изменение части кода. Подробнее см. Adb-For-Robotium.

Почему это создано?* На данный момент основной задачей является тестирование ROM, поэтому все тестовые среды сосредоточены на платформах Android 4.2, 4.3 и 4.4. Платформы достаточно стабильны.

  • В Android тестировании наиболее известным инструментом являются команды adb. Многие функции могут быть реализованы с помощью этих команд, что позволяет использовать любой язык программирования для создания скриптов, выполняющих эти команды.

  • Интеграция некоторых часто используемых функций, реализованных с помощью команд adb, делает использование более удобным.

  • Как практика обучения Java и Python.### Преимущества

  • Реализовано на двух языках программирования (Java и Python), требует минимальной конфигурации и не требует root-прав.

  • Большинство функций реализованы с помощью команд adb, что позволяет легко выделить части кода для создания повседневных скриптов (см. проект AndroidTestScripts).

  • Поскольку события отправляются с помощью команд adb, они могут быть использованы для тестирования между различными приложениями, что может расширять другие фреймворки тестирования Android.

  • Возможность использования пропорционального позиционирования экрана для выполнения действий.

  • Используются команды uiautomator, начиная с Android 4.0, позволяющие позиционировать элементы интерфейса, получать координаты отдельных элементов и использовать их для снятия частичных снимков экрана.

  • Возможность сравнения полного снимка экрана, частичных областей, а также получения информации о текущих элементах интерфейса и активностях для анализа результатов тестирования.

Недостатки* Некоторые функции требуют высокой версии Android; низкие версии не проверены, поэтому ограничения очень велики, что позволяет использовать как практическую возможность.

  • При обучении Java и Python код написан довольно плохо.

  • В многих местах отсутствует обработка исключений.

  • Единичные юнит-тесты пока не написаны, поэтому при использовании требуется чтение конкретного исходного кода.

  • Для вопросов и замечаний обращаться: E-mail: xuxu_1988@126.com QQ:274925460### Необходимая среда

  • Переменные окружения: необходимо установить ANDROID_HOME

  • Python: Python 2.7, если используется функция сравнения скриншотов, то потребуется библиотека PIL, в случае невозможности установки PIL можно использовать Pillow

  • Java: JDK 1.6 и выше, нет необходимости в других третьих сторонних JAR файлах, если JAR файл недоступен, возможно проблема с версией JDK, рекомендуется самостоятельно скомпилировать

Как использовать

  • Python: используйте setup.py install для установки, не требуется обязательной проверки наличия PIL, но если используется ImageUtils, то необходима установка
  • Java: импортируйте Adb-For-Test.jar

Пример использования

  • В директории TestDemo находятся примеры на Python и Java, используемые APK — это ApiDemos.apk

  • Здесь представлен пример использования Python для получения скриншота значков приложений:

#coding=utf-8

import os

from adbUtils.utils.adbUtils import ADB
from adbUtils.utils.imageUtils import ImageUtils
from adbUtils.utils.element import Element

# Для одного устройства device_id передавать не обязательно
adb = ADB("device_id")
element = Element("device_id")

# Получаем область изображения
icon = element.getElementBoundsByClass("android.widget.TextView")[0]
image = ImageUtils()
# Скриншотируем экран
image.screenShot().subImage(icon).writeToFile(os.getcwd(), "image")

# Загрузка целевого изображения для сравнения
# load = image.loadImage(os.getcwd() + "\\image.png")
# print image.screenShot().subImage(icon).sameAs(load)

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/xuxu1988-Adb-For-Test.git
git@api.gitlife.ru:oschina-mirror/xuxu1988-Adb-For-Test.git
oschina-mirror
xuxu1988-Adb-For-Test
xuxu1988-Adb-For-Test
master