И никуда не надо ехать!

Appium.
Тестируем гибридные мобильные
приложения в стиле Webdriver API

Андрей Стахиевич | issoft.by
Немного о себе
Андрей Стахиевич
Компания ISSOFT
andreystakhievich@coherentsolutions.com
• ASP.Net developer с 2-летним стажем
• Selenium Webdriver-based test automation
specialist с 2-летним стажем
• Mobile test automation specialist cо стажем
1 год
Являюсь большим поклонником Selenium Webdriver и связанных с
ним технологий.
Поговорим…
• Несколько слов об
• Рутина автоматизации гибридного
приложения.
• Кроссплатформенные тесты.
Миф или реальность?
Appium - …

Appium – инструмент автоматизации
мобильных приложений,
использующих Webdriver API.
Appium - …

Appium – HTTP сервер,
который создает и
управляет сессиями Webdriver.
App + oppium = ?

JSON Wire
Protocol
Адаптеры для
браузеров

Webdriver

JSON Wire
Protocol

Appium,
Selendroid,
IOSdriver
Webdriver API. Бонусы?
• Тесты на любом языке программирования.
• Интеграция с любым тестовым фреймворком.
• Selenium Grid для распределенного
запуска тестов.
• Тысячи девелоперов и QA специалистов
используют Webdriver и знакомы
с его моделью.
Appium поддерживает…

• IOS

Платформы:
• Android
• Firefox OS
Appium поддерживает…
Операционные системы:
• Windows
• Linux
• Mac OS
Appium поддерживает…
Приложения:
• Нативные
• Веб
• Гибридные
Appium поддерживает…
Устройства:
• Физические
• Эмуляторы
Под капотом Appium
UIAutomation

UIAutomator

Appium

Marionette

Selendroid
Под капотом IOS

При автоматизации приложения на IOS
appium замещает команды от webdriver
на понятные UIAutomation скрипту,
запущенному в Instruments.
Под капотом IOS
Под капотом Android

При автоматизации Android приложения
appium транслирует команды от webdriver
на понятные UIAutomator скрипту,
запущенному на устройстве.
Под капотом Android
Инновации...

Appium делает возможным
кроссплатформенные тесты:
Один тест –
две платформы.
Проект
Wildflower – мобильное гибридное
приложение.
Две версии: для IOS и Android.
Постороено с использованием :

И
Нам надо...
• Один инструмент для IOS и Android.
• Язык программирования: Java или C#.
• Data driven подход в тестах.
• Возможность параллельного запуска тестов
(или распределенного).
• Одни и те же тесты должны работать
с IOS и Android.
Стек технологий
+
+
Нод
ReportNG

UIAutomation

Нод

Selendroid
Кроссплатформенность

Ключевые моменты:
• Работа с Web View и поиск локаторов.
• Ожидание событий
• Универсальные Actions
• TestNG DDT и Selenium Grid
Переключатель
Waiters

Явное
ожидание

Неявное
ожидание
Actions
IOS

• Selendroid:
new TouchActions(driver).singleTap(elem).perform()
• UIAutomation:
((JavascriptExecutor)driver).executeScript("mobile: tap");

Android
Локаторы: Инспектор
Элементы
Приложение

Actions

Код

Инфа
Локаторы: Еще инспектор
Приложение

Инфа
Элементы

Код
Разметка
Репорты

TestNG

+

ReportNG
Запуск

TestNG DDT
+
Selenium Grid
One Test –
Two Platforms
Итого: ЗА
+ Большой выбор языков программирования.
+ Языковые средства Webdriver API.
+ Сложность автоматизации перенесена на “плечи”
Appium сервера, который создает абстракцию над
конкретной платформой и ее особенностями.

+ Нет необходимости внедрять “агентов” в приложение.
+ Кроссплатформенные тесты.
Итого: ПРОТИВ
- Недостаточно документации
- Пока много багов
- Нестабильность тестов в целом
Спасибо
Андрей Стахиевич
andreystakhievich@coherentsolutions.com
Компания ISSOF Solutions
http://www.issoft.by/

http://appium.io/

Appium confet qa