Підручник UIAutomatorViewer: Інспектор для Android Тестування
⚡ Розумний підсумок
UIAutomatorViewer — це графічний інспектор, що постачається разом із Android SDK, який робить знімок екрана пристрою, відтворює ієрархію представлень та надає доступ до атрибутів. Appium потрібно надійно знаходити кнопки, поля та підписи.

Що таке UIAutomatorViewer?
UIAutomatorViewer це інструмент графічного інтерфейсу для сканування та аналізу компонентів інтерфейсу користувача Android застосунок. Щоб автоматизувати будь-який Android використання програми Appium, користувачеві потрібно ідентифікувати об'єкти в AUT (тестований додаток). За допомогою UIAutomatorViewer ви можете перевірити інтерфейс користувача Android застосунок для з'ясування ієрархії та перегляду різних властивостей (ідентифікатор, текст…) елемента.
Під час виконання сценаріїв автоматизації, Appium використовує UIAutomatorViewer для ідентифікації різних властивостей об'єкта та використовує ці властивості для ідентифікації потрібного об'єкта. Ця єдина ідея — зчитати атрибут в інспекторі, а потім повторно використати його як локатор у скрипті — і є тим, що розглядається на решті цієї сторінки.
На знімку екрана нижче показано інструмент у його звичайному робочому стані: екран захопленого пристрою ліворуч, дерево вузлів угорі праворуч і аркуш властивостей для вибраного вузла під ним.
Необхідні умови для використання UIAutomatorViewer
Інспектор зчитує екран реального телефону або емулятора, тому необхідно виконати невелику налаштування, перш ніж вікно взагалі щось покаже.
- A Java Комплект розробника: uiautomatorviewer – це Java настільний додаток, запущений пакетним скриптом, тому JDK має бути встановлений та доступний у системному шляху.
- Команда Android SDK: переглядач переміщується всередині SDK інструменти папку, тому SDK потрібно встановити до того, як програма запуску з’явиться на диску.
- Інструменти платформи та 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 Inspector — це практична заміна. Оригінальні кроки, описані вище, збережено, оскільки вони залишаються правильними для будь-якої машини, на якій досі є папка tools.
Як використовувати UIAutomatorViewer для пошуку об'єктів у вашій програмі
Послідовність зйомки завжди однакова: підготуйте пристрій, помістіть екран, який вас цікавить, перед камерою, а потім зробіть знімок.
- включити Налаштування виробника на вашому пристрої. Читайте Androidпосібник із налаштування параметрів розробника на пристрої щоб дізнатися, як увімкнути параметри розробника Android пристроїв.
- Підключіть свій Android пристрій до ПК за допомогою USB-кабелю.
- Виберіть "Guru99-дюймовий додаток зі списку додатків, як показано нижче.
- Натисніть Знімок екрана пристрою кнопка для оновлення UIAutomatorViewer та завантаження Guru99 графічний інтерфейс програми в інструмент. Кнопка розташована на панелі інструментів, виділеній нижче.
- Після завершення оновлення буде зроблено знімок екрана Guru99-та програма відкривається на лівій панелі.
- Як ви бачите на зображенні вище, у правій частині вікна є 2 панелі.
Верхня панель містить ієрархію вузлів — спосіб розташування та вмісту компонентів інтерфейсу користувача. Клацання на кожному вузлі призводить до відображення властивостей цього елемента інтерфейсу користувача на нижній панелі.
- Натисніть кнопку «Тест» на зображенні вище, щоб переглянути її різні властивості (текст, ідентифікатор ресурсу…).
Як використовувати ці властивості для ідентифікації елементів для автоматизації
Ну, ви не можете використовувати властивості безпосередньо — кожна властивість має іншу назву в API автоматизації. Давайте подивимося, як застосувати ці значення властивостей. Наступні атрибути можна використовувати для ідентифікації кнопки «Тест» у Guru99 додатків.
| Атрибут у UIAutomatorViewer | Ім'я локатора у скрипті | Типове використання |
|---|---|---|
| текст | ім'я | Видима мітка на кнопці або статичному полі |
| ідентифікатор ресурсу | id | Найстабільніший вибір, коли розробник встановлює його |
| клас | className | Вибір групи віджетів одного типу |
| content-desc | ідентифікатор доступності | Кросплатформний локатор, який також допомагає програмам зчитування з екрана |
Кожна картаping видно безпосередньо на панелі деталей вузла. текст Атрибут можна використовувати як «ім'я», як показано в рядку властивості нижче.
Команда ідентифікатор ресурсу атрибут можна використовувати як «ідентифікатор».
Команда клас Атрибут можна використовувати як «назва класу».
Команда content-desc атрибут можна використовувати як «AccessibilityId».
Поряд із вищезазначеними атрибутами, ми можемо написати XPath для ідентифікації об'єктів. Ці імена атрибутів також є тим, що ви передаєте через бажані можливості та стратегії локатора після запуску скрипта.
Як створити локатори XPath з атрибутів UIAutomatorViewer
XPath — це резервний варіант, коли жоден атрибут не є унікальним сам по собі. Панель деталей вузла надає вам усі значення, необхідні виразу, тому XPath — це насправді просто атрибут, який ви вже прочитали, записаний у формі предиката.
Працюйте з панеллю в такому порядку:
- Виберіть вузол на верхній панелі та прочитайте його клас, текст, ідентифікатор ресурсу та content-desc значення на нижній панелі.
- Надайте перевагу одному стабільному атрибуту. Якщо 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 залишається корисним, коли питання полягає в тому, чому вигляд дивно відображається, а не в тому, як це вирішити. Якщо ви все ще обираєте стек, ширше порівняння в нашому посібнику засоби тестування мобільних додатків це хороший наступний крок, і приклади мобільних тестових випадків показати, що зрештою дають ці локатори.







