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

OSCHINA-MIRROR/halfapple-adbForWeChat

В этом репозитории не указан файл с открытой лицензией (LICENSE). При использовании обратитесь к конкретному описанию проекта и его зависимостям в коде.
Клонировать/Скачать
README.md 7.9 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
Отправлено 08.06.2025 08:38 1f0cfd6

Adb-для-тестирования

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

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

###2015.04.28

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

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

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

  • Переработка направлена на увеличение поддержки нескольких устройств в версии Python, передавая device_id для решения проблемы выполнения скриптов при подключении нескольких устройств к USB.

  • В классе Element добавлен метод позиционирования элементов по свойству content-desc.

###Robotium

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

###Почему было написано это? Это было написано для упрощения и автоматизации процесса тестирования мобильных приложений на устройствах Android. * Текущая работа связана с тестированием ROM, поэтому большинство тестовых сред сосредоточены на платформах Android 4.2, 4.3 и 4.4, что делает платформу достаточно стабильной.

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

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

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

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

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

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

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

  • Используется команда uiautomator, начиная с Android 4.0, что позволяет позиционировать элементы по их свойствам, получать координаты области элемента и использовать их для снятия скриншотов (в отличие от снятия скриншотов всего экрана).

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

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

  • Начинающий java и python программист, код написан довольно плохо.

  • Многие места не имеют обработки исключений.

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

  • Для вопросов и предложений писать на: Email: xuxu_1988@126.com QQ:274925460### Необходимая среда

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

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

  • Java: jdk1.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/halfapple-adbForWeChat.git
git@api.gitlife.ru:oschina-mirror/halfapple-adbForWeChat.git
oschina-mirror
halfapple-adbForWeChat
halfapple-adbForWeChat
master