Download - Mobile Automation based on Appium
Автоматизация мобильных приложений на базе 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 – 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
Преимущества облачных сервисов
• Не тратим время на настройку среды• Не тратим время на поддержку среды• Стабильная работа• Тесты бегут быстрей (чаще всего)• Легче реализовать мультипоточность