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

OSCHINA-MIRROR/xuxu1988-Adb-For-Test

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
В этом репозитории не указан файл с открытой лицензией (LICENSE). При использовании обратитесь к конкретному описанию проекта и его зависимостям в коде.
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

Управление устройствами с помощью 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 )

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

Введение

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

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
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