Освой программирование играючи

Сайт Александра Климова

Шкодим

/* Моя кошка замечательно разбирается в программировании. Стоит мне объяснить проблему ей - и все становится ясно. */
John Robbins, Debugging Applications, Microsoft Press, 2000

Автоматизация тестирования приложений с помощью UIAutomator

Тестирование — это очень важный процесс во время разработки приложений. В случае Android, тестирование приложения следует производить на большом количестве устройств, в связи с тем, что многие из них имеют значительные различия по характеристикам (разрешение экрана, версия Android и т.д.). Процесс тестирования приложения вручную на большом количестве устройств может быть трудоемок, утомителен и подвержен ошибкам. Более эффективный и надежный подход состоит в автоматизации тестирования пользовательского интерфейса. С помощью UIAutomator можно разработать тест-скрипт, который будет работать на множестве Android устройств с одинаковой точностью и воспроизводимостью.

В состав Android SDK входят две утилиты, доступные в Android SDK Tools версия 21 или выше и API 16 или выше:

  • UIAutomatorviewer — графический инструмент для распознавания компонентов пользовательского интерфейса в Android приложении
  • UIAutomator — библиотеки Java API, содержащие методы для создания тестов пользовательского интерфейса.

Преимущества UIAutomator, для тестирования приложений:

  • Отсутствие зависимости от разрешения экрана;
  • Действия привязываются к Android UI компонентам. Это позволяет работать напрямую с элементами пользовательского интерфейса. Например, если необходимо нажать кнопку «ОК», можно средствами UIAutomator API отправить скрипту команду: нажми кнопку с надписью «ОК», и он её нажимает. Таким образом не приходится привязываться к координатам;
  • Можно воспроизводить сложные последовательности действий пользователя, и всегда эта последовательность будет одинаковой;
  • Тесты могут быть запущены необходимое количество раз на различных устройствах без необходимости изменения Java кода;
  • Можно использовать внешние кнопки на устройстве (кнопка «назад», «выключить», «громкость» и т.д.).

Тестирование приложения с помощью UIAutomator состоит из следующих шагов:

  1. Подготовка к тесту: установка приложения на устройство, анализ его UI компонент;
  2. Создание автоматизированного теста для приложения;
  3. Компиляция теста в JAR файл и копирование его на устройство;
  4. Запуск теста и анализ результатов;
  5. Исправление различных ошибок, найденных в процессе тестирования.
  6. Процесс создания теста описан в статье Автоматизация тестирования Android приложений с помощью UIAutomator

    Я покажу, как подключать UIAutomatorviewer

    UIAutomatorviewer делает снимок экрана устройства, который подключен к компьютеру, а также предоставляет удобный графический интерфейс для отображения иерархии слоев и просмотра свойств каждого компонента интерфейса в отдельности. Наличие этой информации значительно упрощает процесс создания UIAutomator-скрипта.

    Сначала подключаем устройство к компьютеру, чтобы студия увидело его.

    Переключаем на вкладку Terminal и вставляем команду uiautomatorviewer (настройка среды исполнения для понимания командной строки описана в первых уроках).

    Запустится программа. Запустите на устройстве свою программу. В окне программы UI Automator Viewer нажмите на кнопку снятия скриншота.

    В левой части появится снимок экрана приложения, а справа иерархический список со свойствами компонентов.

    В марте 2015 года разработчики сообщили о выходе UIAutomator 2.0, в которой добавлена интеграция с Gradle и другие новые возможности. Изучайте документацию.

    Дополнительное чтение

    UI Testing | Android Developers

    uiautomator | Android Developers

    Реклама