mobile automation based on appium

19
Автоматизация мобильных приложений на базе Appium. Speaker: Anton Sirota E-mail: [email protected] Date: 17/05/2016

Upload: anton-sirota

Post on 16-Apr-2017

260 views

Category:

Mobile


0 download

TRANSCRIPT

Автоматизация мобильных приложений на базе Appium.

Speaker: Anton SirotaE-mail: [email protected]: 17/05/2016

Обо мне

Тимлид группы автоматизации

Активный спикер в Херсоне, Одессе и Львове

Докладчик QA School в Херсоне

Создатель менторских программ, а также ментор 7ми практикантов Успешный опыт постановки автоматизации с нуля на больших, распределенных проектах

С#

Агенда

• Окружение для мобильной автоматизации

• Поиск и работа с элементами• Работа с драйвером• Работа с контекстами• Эмулятор или реальный девайс?• Возможные проблемы/трудности• Процесс мобильной автоматизации• Облачные сервисы

Виды мобильных приложений

НативныеВебГибридные

Окружение для автоматизации

iOS Automation Android Automatoin

Maс OS Mac OS / Windows / Linux

XCode Android SDKNode Js Emulator setupAppium Appium

Application ApplicationHaxm driver (for SDK

Emulator)

Поиск и работа с элементамиTools:• Appium Inspector• UI Automator Viewer (Android)• UI Automation (iOS)

Locators:• Xpath• Id• Class• Name• UI Automation id• Css (mobile web only)• Accessibility id (ios only)

Поиск и работа с элементами

Работа с драйвером

WebDriver

RemoteWebDriver

AppiumDriver

IOSDriver

AndroidDriver

Работа с драйвером

• WebDriver – Base interface• RemoteDriver – Web Automation (using remote url)• AppiumDriver – General abstract class for Mobile Automation• IOSDriver – used for iOS Automation • AndroidDriver – used for Android Automation

Пример инициализации

Работа с контекстами

Работа с контекстами

Получить все контекстыgetDriver().getContextHandles();

Переключить контекстgetDriver().context("WEBVIEW");getDriver().context("NATIVE_APP");getDriver().context("CONTEXT_NAME");

Real devices vs EmulatorsReal Device Emulator

Простота настройки

Android: Быстрая установка

iOS: Придется покопаться

Android: Есть подводные камни при настройке

эмулятораiOS: Требует xCode и

минимальных настроек Скорость прогона Быстро Android: Скорость зависит

от эмулятораiOS: Медленная скорость запуска, быстрый прогон

Стабильность Относительно стабильно

Есть определенные нестабильности. Можно

решить дополнительными скриптами

Поведение Может отличаться в зависимости от версии

OS

Может отличаться в зависимости от версии OS

Доступность элементов

В WebView элементы могут определяться

как Native

В WebView элементы доступны как веб

элементы

Возможные проблемы/трудности

• Могут быть недоступные элементы• Не все стандартные методы работают правильно (ex. scroll/swipe)• Нужно следить за обновлениями• Соответствие версий (OS,Appium,Emulator)• Правильная настройка эмулятора

Mobile Automation Workflow

Build mobile application

Get app directory

Run tests under latest app version

Analyze test results

Облачные сервисы

Преимущества облачных сервисов

• Не тратим время на настройку среды• Не тратим время на поддержку среды• Стабильная работа• Тесты бегут быстрей (чаще всего)• Легче реализовать мультипоточность

Вопросы

Всем спасибо!