Учебник по UIAutomatorViewer: Инспектор для Android Тестирование
⚡ Умное резюме
UIAutomatorViewer — это графический инспектор, входящий в состав пакета. Android SDK, который делает снимок экрана устройства, отображает иерархию представлений и предоставляет доступ к атрибутам. Appium Необходимо обеспечить надежное определение местоположения кнопок, полей и меток.
Что такое UIAutomatorViewer?
UIAutomatorViewer Это графический инструмент для сканирования и анализа компонентов пользовательского интерфейса. Android Приложение. Для автоматизации любого Android приложение с использованием AppiumПользователю необходимо идентифицировать объекты в тестируемом приложении (AUT). С помощью UIAutomatorViewer можно проверить пользовательский интерфейс тестируемого приложения. Android приложение, чтобы узнать иерархию и просмотреть различные свойства (id, текст…) элемента.
При выполнении сценариев автоматизации Appium Используется UIAutomatorViewer для идентификации различных свойств объекта и использования этих свойств для определения нужного объекта. Именно эта идея — прочитать атрибут в инспекторе, а затем повторно использовать его в качестве локатора в скрипте — рассматривается на остальной части этой страницы.
На скриншоте ниже показан инструмент в его обычном рабочем состоянии: слева — экран захваченного устройства, справа вверху — дерево узлов, а под ним — окно свойств выбранного узла.
Предварительные условия для использования UIAutomatorViewer
Инспектор считывает изображение с реального экрана телефона или эмулятора, поэтому перед тем, как окно начнет что-либо отображать, необходимо выполнить небольшую настройку.
- A Java Комплект для разработки: uiautomatorviewer — это Java Для запуска настольного приложения с помощью пакетного скрипта необходимо установить JDK и обеспечить его доступность в системном пути.
- Android SDK: Программа просмотра файлов находится внутри SDK. инструменты поэтому папку необходимо установить SDK до того, как лаунчер появится на диске.
- Platform-tools и adb: зритель взаимодействует с устройством через Android Отладочный мост, поэтому АБР Необходимо установить и обеспечить распознавание телефона.
- Параметры разработчика и отладка по USB: Оба параметра должны быть включены в настройках устройства, иначе adb никогда не отобразит устройство в списке.
- USB-кабель с поддержкой передачи данных и драйвер: кабель только для зарядки или отсутствует драйвер производителя. WindowsВ результате получается пустой список устройств.
- Тестируемое приложение: Приложение должно быть установлено и открыто на устройстве, поскольку инспектор фиксирует всё, что в данный момент отображается на экране.
При наличии этих шести пунктов этап загрузки занимает совсем немного времени.
Как скачать и установить UIAutomatorViewer
UIAutomatorViewer является частью Android Менеджер SDK станет доступен после установки менеджера SDK. Скачайте и установите его. Android SDK от официальный Android Studio Скачать страницу.
Как только появится строка Android После установки SDK перейдите по следующему пути:
c:\users\<username>\AppData\Local\Android\sdk\tools
Вы увидите пакетный файл со следующим именем:
uiautomatorviewer.bat
Double Щёлкните по нему, чтобы запустить графический интерфейс UIAutomatorViewer. Список папок выглядит так, как показано ниже, при этом пакетный файл находится рядом с другими инструментами SDK.
⚠️ Примечание к версии: AndroidВ собственной устаревшей документации UI Automator по-прежнему описывается запуск инструмента из... /инструменты/но устаревший автономный Android Инструменты SDK В текущей версии SDK Manager этот пакет больше не предлагается. Android Studio релизы. В давно установленных системах и старых архивах SDK по-прежнему содержится лаунчер; при новой установке этот файл обычно отсутствует, и Appium Инспектор является практичной заменой. Описанные выше исходные шаги сохранены, поскольку они остаются актуальными для любой машины, на которой все еще есть папка инструментов.
Как использовать UIAutomatorViewer для поиска объектов в вашем приложении
Последовательность действий при съемке всегда одна и та же: подготовьте устройство, поднесите интересующий вас экран к камере, затем сделайте снимок.
- Включите опции разработчика на вашем устройстве. Читать AndroidРуководство по настройке параметров разработчика на устройстве. чтобы узнать, как включить параметры разработчика на Android устройств.
- Подключите ваш Android устройство подключается к ПК через USB-кабель.
- Выберите "GuruВыберите приложение «99» из списка приложений, как показано ниже.
- Нажмите Скриншот устройства кнопка для обновления UIAutomatorViewer и загрузки Guru99. Графический интерфейс приложения в инструменте. Кнопка расположена на панели инструментов, выделенной ниже.
- После завершения обновления отобразится скриншот GuruПриложение 99 открывается в левой панели.
- Как вы видите на изображении выше, в правой части окна есть 2 панели.
В верхней панели отображается иерархия узлов — способ расположения и размещения компонентов пользовательского интерфейса. При нажатии на каждый узел в нижней панели отображаются свойства соответствующего элемента пользовательского интерфейса.
- Нажмите кнопку «Викторина» на изображении выше, чтобы просмотреть ее различные свойства (текст, идентификатор ресурса и т. д.).
Как использовать эти свойства для идентификации элементов, подлежащих автоматизации
Однако использовать свойства напрямую нельзя — каждое свойство имеет своё имя в API автоматизации. Давайте посмотрим, как использовать значения этих свойств. Следующие атрибуты можно использовать для идентификации кнопки «Викторина» в Guru99 ок.
| Атрибут в UIAutomatorViewer | Имя локатора в скрипте | Типичное использование |
|---|---|---|
| текст | имя | Видимая метка на кнопке или статическом поле |
| идентификатор ресурса | id | Наиболее стабильный выбор, когда разработчик его выбирает. |
| класс | имя класса | Выбор группы виджетов одного типа |
| содержание-описание | идентификатор доступности | Кроссплатформенный локатор, который также помогает программам чтения с экрана. |
Каждая картаping Видно непосредственно на панели сведений об узле. текст Атрибут можно использовать в качестве "имени", как показано в строке свойств ниже.
идентификатор ресурса Атрибут можно использовать в качестве «идентификатора».
класс Атрибут можно использовать в качестве "className".
содержание-описание Атрибут можно использовать в качестве «AccessibilityId».
Помимо перечисленных выше атрибутов, мы можем использовать XPath для идентификации объектов. Имена этих атрибутов также передаются дальше. желаемые возможности а также стратегии поиска местоположения после запуска скрипта.
Как создавать XPath-локаторы из атрибутов UIAutomatorViewer
XPath используется в качестве резервного варианта, когда ни один атрибут сам по себе не является уникальным. Панель с подробными сведениями об узле предоставляет все необходимые для выражения значения, поэтому XPath — это, по сути, тот же атрибут, который вы уже прочитали, записанный в форме предиката.
Проходите панели в следующем порядке:
- Выберите узел на верхней панели и прочтите его содержимое. класс, текст, идентификатор ресурса и содержание-описание значения на нижней панели.
- Предпочтительнее использовать один стабильный атрибут. Если атрибут resource-id заполнен, используйте его и остановитесь — XPath не требуется.
- Если ничего уникального нет, объедините два атрибута в один предикат.
- Если метка изменяется во время выполнения, замените проверку на равенство на частичное совпадение.
Приведенные ниже шаблоны используют имена атрибутов точно так, как их отображает UIAutomatorViewer.
<!-- match on the visible label --> //*[@text='Quiz'] <!-- match on the resource-id reported by the viewer --> //*[@resource-id='com.example.app:id/quiz_button'] <!-- match on the widget class --> //android.widget.Button[@text='Quiz'] <!-- partial match when the label is dynamic --> //*[contains(@text,'Qui')] <!-- two attributes combined for a unique match --> //*[@class='android.widget.Button' and @content-desc='Quiz']
Несколько правил предотвращают зависание этих выражений. Абсолютные пути, которые проходят по всему дереву, ломаются в тот момент, когда разработчик оборачивает макет в еще один контейнер, поэтому начинайте каждое выражение с двойной косой черты и сопоставляйте данные с атрибутом. Предикаты на основе индексов ведут себя аналогично — они сохраняются до тех пор, пока на экране не появится строка. А выражение, уникальное на экране телефона, может соответствовать нескольким узлам на макете планшета, поэтому перед включением локатора в набор запросов следует повторно проверить один и тот же экран на обоих форм-факторах. Та же дисциплина применима и к XPath в Seleniumгде дерево представляет собой DOM, а не иерархию представлений.
Ошибки, с которыми можно столкнуться при использовании UIAutomatorViewer
Большинство сбоев происходит до того, как будет создан хотя бы один узел, и почти все они связаны с соединением между рабочей станцией и мобильным устройством.
- Я вижу ошибку — «Нет» Android Устройства были обнаружены adb», — как показано на скриншоте ниже. Как это можно исправить?
Решение: Убедитесь, что ваше устройство подключено к компьютеру.
В таблице ниже этот ответ распространяется и на другие сообщения, с которыми тестировщики сталкивались чаще всего.
| Симптом | Вероятная причина | фиксированный |
|---|---|---|
| Нет Android Устройства были обнаружены с помощью adb. | Устройство не подключено, отладка по USB отключена или используется только кабель для зарядки. | Подключите устройство с помощью кабеля передачи данных, включите отладку по USB, затем убедитесь, что телефон отображается в списке устройств adb. |
| Устройство внесено в список несанкционированных устройств. | Запрос на ввод отпечатка пальца RSA никогда не принимался на телефоне. | Разблокируйте экран, подключите устройство и нажмите «Разрешить отладку по USB». |
| Отсутствует файл uiautomatorviewer.bat. | Устаревший пакет инструментов SDK не установлен. | Используйте уже установленную версию SDK, которая всё ещё содержит его, или переключитесь на Appium Инспектор |
| Иерархия пуста или захват не удался | Экран изменился во время дампа, или приложение блокирует захват экрана. | Удерживайте экран неподвижно и сделайте снимок еще раз; снимки экрана в защищенном режиме сделать невозможно. |
| Содержимое WebView отображается как единый узел. | Зритель читает только оригинальные отзывы. | Просматривайте веб-контент с помощью инструментов разработчика браузера или инспектора, поддерживающего веб-контекст. |
UIAutomatorViewer против Appium Инспектор против инспектора по компоновке
Три инспектора обычно используются против Android экраны, и они решают несколько разные проблемы.
| Критерий | UIAutomatorViewer | Appium Инспектор | Android Studio Инспектор макетов |
|---|---|---|---|
| Суда с | Наследие Android пакет инструментов SDK | Автономное настольное приложение | Android Studio |
| Платформы проверены | Android Важно | Android и iOS | Android Важно |
| Требуется работающий сервер. | Нет, он взаимодействует напрямую с adb. | Да, он подключается к Appium серверная сессия | Нет, оно подключается к отлаживаемому процессу. |
| Генерирует код локатора | Нет, значения копируются вручную. | Да, он предлагает варианты местоположения и может записывать действия. | Нет, это режим отладки. |
| Наиболее подходит для | Быстрый поиск атрибутов в старой конфигурации | Создание и проверка локаторов для пакета услуг. | Диагностика проблем с компоновкой и отображением. |
Для номера, который уже работает AppiumИнспектор является естественным преемником: он считывает те же атрибуты, использует тот же драйвер UiAutomator2 и работает также с iOS. Appium Проект инспектора Он активно выпускается, поэтому является более безопасным выбором для новой работы, в то время как Layout Inspector остается полезным, когда вопрос заключается в том, почему представление отображается некорректно, а не в том, как это исправить. Если вы все еще выбираете стек, более подробное сравнение вы найдете в нашем руководстве по... инструменты для тестирования мобильных приложений это хороший следующий шаг, и примеры мобильных тестовых случаев показать, во что в конечном итоге преобразуются данные с этих локаторов.







