Pull to refresh

Перевод книги Appium Essentials. Глава 3

Reading time7 min
Views10K
Глава 3. Appium GUI.

В этой главе речь пойдет о GUI для Appium-сервера. К концу главы мы должны разобраться во всех возможностях приложения.

Содержание:

  • Appium GUI для Windows
  • Appium GUI для Mac

А тут у нас ссылки на
главу 1
— и главу 2

Поехали!

Appium GUI для Windows


Разработчики Appium хорошо спроектировали GUI для сервера. Используя этот GUI, мы можем легко запустить сервер со всеми необходимыми нам настройками [Desired capabilities из главы 1]. GUI позволяет настроить окружение перед запуском тестов.

Вот так выглядит Appium GUI. У него есть следующие кнопки/иконки:

  • Настройки Android
  • Общие настройки
  • Настройки разработчика
  • Инфо
  • Инспектор
  • Запуск/Стоп
  • Очистить [логи]



Настройки Android


Нажав на Настройки Android, мы увидим разные опции, которые нам могут понадобиться перед запуском тестов. Все поля распределены по секциям Application (Приложение), Launch Device (Запуск устройства), Capabilities (Возможности) и Advanced (Расширенные):



Application


Список полей в разделе с пояснениями:
Поле Описание
Application Path Здесь указывается путь до файла .apk, который хотите протестировать.
Package Указывает пакет для запуска. Например, com.android.calculator2.
Wait for Package Эта возможность ожидает запуска пакета, который указан в поле Package.
Launch Activity Можно указать активити, которую вы хотите запустить в приложении. Например, MainActivity.
Use Browser Позволяет выбрать из списка браузер для запуска
Full Reset Удаление приложения в конце сессии
No Reset Предотвращает сброс устройства.
Intent Action Используется для запуска активити
Intent Category Категория интента
Intent Flags Выставляет флаги старта активити. [Про флаги можно почитать здесь.]
Intent Arguments Здесь можно задать дополнительные аргументы при старте активити

Launch Device


Поле Описание
Launch AVD Здесь указывается имя AVD для запуска
Device Ready Timeout Таймаут (в секундах) ожидания готовности устройства
Arguments Аргументы запуска эмулятора

Capabilities


Поле Описание
Platform Name Задает имя платформы, на которой будет запущено приложение
Automation Name Имя инструмента автоматизации (можно выбрать из списка)
Platform Version Здесь указывается версия Android, на которой будет тестироваться приложение.
Device Name Имя девайса.
Language Язык, который будет задан на устройстве Android.
Locale Локаль, которая будет задана на Android.


Advanced


Поле Описание
SDK Path Путь к Android SDK.
Coverage Class Здесь задается класс инструментов [подробнее позже].
Bootstrap Port Порт, на котором будет «висеть» Appium.
Selendroid Port Порт для Selendroid.
Chromedriver Port Порт для ChromeDriver [если нужен].

General Settings


Кликните на вторую иконку, чтобы открыть общие настройки. Здесь поля так же разбиты по категориям: Server и Logging:



Server


Поле Описание
Server Address IP-адрес, где запущен Appium-сервер.
Port Порт, по которому Appium-сервер будет передавать команды. По дефолту: 4723.
Check for Updates Если выбрать, Appium будет автоматически проверять наличие обновлений.
Pre-Launch Application Позволяет запустить приложение на девайсе до того, как начнет слушать команды от WebDriver.
Override Existing Session Если активно, текущие сессии будут пересозданы, если они есть.
Use Remote Server Если Appium-сервер запущен на другой машине, вы можете использовать эту опцию, чтобы задействовать Appium Inspector.
Selenium Grid Configuration File Вы можете задать путь до конфиг файла для Selenium Grid.

Logging


Поле Описание
Quiet Logging Задает уровень логирования.
Show Timestamps Вывод в консоль будет сопровождаться датой-временем записи.
Log to File Выведенный лог будет сохранен в указанном файле (например, C:\\appium\\abc.log).
Log to WebHook Лог будет отправлен по HTTP слушателю.
Use Local Timezone Если выберете эту опцию, будет использоваться местная тайм-зону, иначе будет использоваться тайм-зона node-сервера.

Developer settings



Поле Описание
Enabled Настройки разработчика будут доступны, если выбран чек-бокс.
Use External NodeJS Binary Если у вас другая версия Node.js, отличная от установленного с Appium, то можно использовать ее. Нужно задать путь.
Use External Appium Package Здесь можно задать пакет Appium, если у вас есть свой [все-таки open source].
NodeJS Debug Port Порт, на котором будет запущен дебаггер Node.js.
Break on Application Start Как только приложение на девайсе запуститься, дебаггер Node.js остановится.
Custom Server Flags Здесь можно передать серверу флаги для запуска (например, --device-name Nexus 5). [Я так понимаю, речь идет об этих флагах]

About


[Очевидно, здесь пояснений много не требуется. Их и не было. Тут можно посмотреть версию Appium]



Inspector


Appium Inspector позволяет определять на странице элементы. Также доступна возможность записывать и воспроизводить действия, как в Selenium IDE, но текущая версия, работает не очень хорошо на Windows. Чтобы открыть Inspector, нужно нажать на иконку, но, сперва, нужно будет запустить приложение на девайсе:


Используя Inspector, мы можем посмотреть разметку приложения, но все равно сложно определять элементы. На Windows, UIAutomator намного мощнее Appium Inspector по части определения элементов. В следующей главе мы узнаем больше о UIAutomator.

The Launch/Stop button


Запускает/останавливает Appium-сервер

The Clear button


Находится в правом нижнем углу; удаляет логи из консоли.



The Appium GUI for Mac


Для Mac у Appium похожий GUI автоматизации Android; множество опций такое же, как на Windows. Давайте рассмотрим все настройки в GUI.


Он содержит следующие иконки:

  • Android Settings
  • iOS Settings
  • General Settings
  • Developer Settings
  • Robot Settings
  • Save configuration
  • Open configuration
  • Inspector
  • Appium doctor
  • Launch/Stop
  • Delete

Android Settings


Мы уже посмотрели настройки для Android на Windows; на Mac OS настройки такие же, но есть некоторые UI-отличия, скриншот ниже. Настройки Android поделены на две вкладки: Basic и Advanced.


iOS Settings


Чтобы настроить iOS, нам нужно кликнуть на иконку iOS. Она содержит две вкладки: Basic и Advanced. В Basic вкладке расположены подразделы Application и Device Settings, а в Advanced — расширенные iOS настройки.


Application


Поле Описание
App Path Здесь задается путь до iOS-приложения (.app, .zip, or .ipa), которое мы хотим протестировать.
BundleID Задает ID бандла.
Use Mobile Safari Если тестируется мобильное веб-приложение, то можно выбрать эту опцию, чтобы запустить Safari. Убедитесь, что BundleID и App Path не выбраны.

Device Settings


Поле Описание
Force Device Можете выбрать iPhone или iPad симулятор.
Platform Version Используется для выбора версии платформы.
Force Orientation Указывается ориентация экрана на симуляторе.
Force Language Задается язык на симуляторе.
Force Calendar Формат календаря на симуляторе.
Force Locale Локаль симулятора.
UDID Если чекбокс UDID выбран, Appium запустит приложение на подключенном устройстве iOS; нужно убедиться, что bundleID поставлен, а App Path не выбран.
Full Reset Удаляет всю папку симулятора.
No Reset Указывает, на то. что симулятор не должен перезапускаться между сессиями.
Show Simulator Log Логи симулятора будут записываться в консоль.

Advanced
Поле Описание
Use Native Instruments Library Если выбрано, Appium будет отдавать предпочтение нативной библиотеке инструментов.
Backend Retries Мы можем определить количество попыток запуска инструментов перед тем, как репортить крэш или таймаут.
Instruments Launch Timeout В миллисекундах определяет, сколько инструменты должны ждать запуска.
Trace Template Path Файл шаблона, который будет использоваться инструментами.
Xcode Path Путь до XCode.

Robot Settings
Если хотите задействовать в автоматизации робота [пока не очень ясно, какого именно], можете задать настройки в Robot Settings. В разделе Robot Settings, Appium спрашивает хост и порт, к которым подключен робот:


Save/Open configuration
Appium поддерживает возможность сохранения настроек; нам не придется снова и снова определять настройки при тестировании. Опция позволяет вам пометить файл тегом, а потом легко его найти [теги MacOS, видимо].

Чтобы сохранить файл настроек, нужно:

  1. Кликнуть на кнопку Save
  2. Задать имя файла
  3. Кликнуть на Tags текстбокс; отобразится список тегов. Мы можем выбрать больше одного
  4. Выберите место, куда хотите сохранить файл

Сохраненную конфигурацию легко восстановить из файла, нажав кнопку Open.

Appium doctor
Подскажет про настройку Appium; вы можете проверить настройку, используя Appium doctor. Нажмите на иконку Doctor; в консоли отобразится информация.

Если что-то не настроено или не установлено, появится запись. попробуйте устранить проблему перед запуском Appium.

Inspector
Инспектор позволяет нам без труда сгенерировать скрипт автотеста. Он показывает все элементы приложения, как UIAutomator на Android. Теперь давайте рассмотрим Inspector подробнее. Для примера, возьмем калькулятор BMI — приложение на iOS. Сначала, нужно кликнуть на кнопку Save и мы должны задать путь до приложения.

В окне Appium Inspector можно увидеть следующие поля:



  • Показывать неактивные — показывает неактивные элементы.
  • Показывать невидимые — показывает скрытые элементы
  • Запись — откроет панель записи и вы сможете выполнять действия предоставленные средствами Appium Inspector
  • Обновить — обновит DOM в 3-х колонках в соответствии с просмотрщиком
  • Скриншот — в этой области отображается текущий скриншот приложения. Вы можете кликнуть на элемент на скрине, чтобы выбрать его в DOM
  • Детали — подробности о выбранном элементе

Вы найдете еще несколько вкладок, таких как Touch, Text, Locator и Misc, которые определяют действия с приложением.

Коротко о них:
Поле Описание
Touch Содержит кнопки для имитации действий: тап, свайп, скрол и шейк [трясем девайсом].
Text Здесь работа с текстом: ввод текста и выполнение JavaScript.
Locator Полезная опция от Appium. Используя ее, мы можем проверить, что наш локатор возвращает элемент.
Misc Кнопки для обработки разных предупреждений.

Панель записи
Панель содержит тестовые скрипты, сгенерированные рекордером, на основе совершенных действий. Также содержит специфичных для рекордера опций:
Поле Описание
Выбор языка Можно выбрать ЯП, на котором хотим получить тестовый скрипт (на скриншоте выбран Java).
Добавлять Boilerplate [нечто непереводимое] Если выбрано, скрипт будет содержать код, отвечающий за поднятие инстанса Selenium. Если нет — то только сами записанные шаги
Воспроизвести Воспроизводит записанный скрипт.
Misc Кнопки для обработки разных предупреждений.

В следующей главе мы рассмотрим способы идентификации элементов на странице мобильного приложения
Tags:
Hubs:
+3
Comments2

Articles

Change theme settings