С помощью команд 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 и других атрибутов для анализа результатов тестирования.
Начинающий java и python программист, код написан довольно плохо.
Многие места не имеют обработки исключений.
Единичные юнит-тесты не написаны, поэтому при использовании необходимо читать конкретный исходный код.
Для вопросов и предложений писать на: Email: xuxu_1988@126.com QQ:274925460### Необходимая среда
Переменные окружения: необходимо настроить ANDROID_HOME
Python: python2.7, если используется функция сравнения скриншотов, необходимо установить библиотеку PIL, если установка PIL невозможна, можно использовать Pillow
Java: jdk1.6 и выше, не требуется никаких сторонних jar файлов, если jar файлы не работают, возможно проблема с версией jdk, необходимо самостоятельно скомпилировать
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 )