View
724
Download
5
Embed Size (px)
DESCRIPTION
Citation preview
И никуда не надо ехать!
Appium.Тестируем гибридные мобильные
приложения в стиле Webdriver API
Андрей Стахиевич | issoft.by
Немного о себе
Андрей СтахиевичКомпания [email protected]• ASP.Net developer с 2-летним стажем• Selenium Webdriver-based test automation
specialist с 2-летним стажем• Mobile test automation specialist cо стажем 1 год
Являюсь большим поклонником Selenium Webdriver и связанных с ним технологий.
• Несколько слов об• Рутина автоматизации гибридного
приложения.• Кроссплатформенные тесты. Миф или реальность?
Поговорим…
Appium - …
Appium – инструмент автоматизации мобильных приложений, использующих Webdriver API.
Appium – HTTP сервер, который создает и управляет сессиями Webdriver.
Appium - …
App + oppium = ?
Webdriver
Адаптеры для браузеров
Appium, Selendroid, IOSdriver
JSON Wire Protocol
JSON Wire Protocol
Webdriver API. Бонусы?
• Тесты на любом языке программирования.
• Интеграция с любым тестовым фреймворком.• Selenium Grid для распределенного запуска тестов.• Тысячи девелоперов и QA специалистов используют Webdriver и знакомы с его моделью.
Appium поддерживает…
Платформы:• IOS • Android • Firefox OS
Операционные системы:• Windows • Linux • Mac OS
Appium поддерживает…
Приложения:• Нативные • Веб • Гибридные
Appium поддерживает…
Устройства:• Физические • Эмуляторы
Appium поддерживает…
Под капотом Appium
AppiumMarionetteUIAutomation
SelendroidUIAutomator
Под капотом IOS
При автоматизации приложения на IOSappium замещает команды от webdriverна понятные UIAutomation скрипту, запущенному в Instruments.
Под капотом IOS
Под капотом Android
При автоматизации Android приложенияappium транслирует команды от webdriverна понятные UIAutomator скрипту,запущенному на устройстве.
Под капотом Android
Appium делает возможным кроссплатформенные тесты:
Один тест – две платформы.
Инновации...
Wildflower – мобильное гибридное приложение.
Две версии: для IOS и Android.Постороено с использованием :
Проект
И
Нам надо...
• Один инструмент для IOS и Android.• Язык программирования: Java или C#.• Data driven подход в тестах.
• Возможность параллельного запуска тестов (или распределенного).• Одни и те же тесты должны работать с IOS и Android.
Нод
Нод
UIAutomation
Selendroid
Стек технологий
+
ReportNG
+
Ключевые моменты:
Кроссплатформенность
• Работа с Web View и поиск локаторов.• Ожидание событий• Универсальные Actions
• TestNG DDT и Selenium Grid
Переключатель
Waiters
Явное ожидание
Неявное ожидание
Actions
• Selendroid: new TouchActions(driver).singleTap(elem).perform()
• UIAutomation:((JavascriptExecutor)driver).executeScript("mobile: tap");
IOS
Android
Локаторы: Инспектор
Элементы
Приложение
Actions
Код Инфа
Локаторы: Еще инспектор
Разметка
Приложение
Код
ИнфаЭлементы
Репорты
TestNG + ReportNG
Запуск
TestNG DDT +
Selenium Grid
One Test – Two Platforms
Итого: ЗА
+ Большой выбор языков программирования.
+ Языковые средства Webdriver API.
+ Сложность автоматизации перенесена на “плечи” Appium сервера, который создает абстракцию над конкретной платформой и ее особенностями.
+ Нет необходимости внедрять “агентов” в приложение.
+ Кроссплатформенные тесты.
- Недостаточно документации
- Нестабильность тестов в целом
- Пока много багов
Итого: ПРОТИВ
Андрей Стахиевич[email protected]
Компания ISSOF Solutionshttp://www.issoft.by/
http://appium.io/
Спасибо