appium + selenide comaqa.by. Антон Семенченко
Post on 12-Aug-2015
2.483 Views
Preview:
TRANSCRIPT
Appium + Selenide: Cross-Platform Mobile QA Automation. Is it possible
and what are the benefits?
Семенченко АнтонIssoft / Coherent Solutions
www.COMAQA.BYwww.DPI.Solutions
Поговорим…
• Несколько слов об Appium
• Что такое Selenide?
• Как можно “скрестить” Appium и Selenide
• Что из всего этого вышло?
Appium - …
• Appium — инструмент для автоматизации мобильных приложений, использующий Webdriver API.
• Appium – HTTP сервер, который создает и управляет сессиями Webdriver.
App + oppium = ?
Webdriver
Адаптеры для браузеров
Appium, Selendroid, IOSdriver
JSON Wire Protocol
Mobile JSON Wire Protocol
WebDriver API. Бонусы?
• Тесты на любом языке программирования.
• Интеграция с любым тестовым фреймворком.
• Selenium Grid для распределенного запуска тестов.
• Тысячи девелоперов и QA специалистов используют Webdriver и знакомы с его моделью.
Под капотом Appium
AppiumMarionetteUIAutomation
SelendroidUIAutomator
Под капотом IOS
На IOS appium замещает команды от webdriver на понятные UIAutomation скрипту, запущенному в Instruments.
Под капотом Android
На Android appium транслирует команды от webdriver на понятные UIAutomator скрипту, запущенному на устройстве.
Под капотом Selendroid
При автоматизации Android можно выбирать между Selendroid и UIAutomator.
Инновации
Appium делает возможным создание кроссплатформенных тестов
Пример
Гибридные приложения, постороенные с использованием :
И
Что же такое Selenide?
Selenide — это прозрачная обёртка вокруг Selenium WebDriver, не мешающая опуститься до уровня голого Driver-а, позволяющая быстро и просто использовать все возможности Selenium при разработке тестов, сосредоточившись на логике, а не суете с браузером + целый ряд дополнительных возможностей.
UI тесты Selenium 2 WebDriver + Java
Что в этом коде нам не нравится?
• Сложная инициализация• А как же скриншоты?• Объём кода • Сложность кода
Раньше все эти «сложности» ложилось на наши плечи!
Простой тест с Selenide
Инициализация браузера с помощью Selenium 2 WebDriver
Инициализация браузера с помощью Selenide
«Свойства»: Url, title и page source
• Selenium
• Selenide
Поиск элементов
• Selenium
• Selenide
Selenium & Radio buttons
Selenide & Radio buttons
Asserts
• Selenium
• Selenide
Alerts
• Selenium
• Selenide
Selenium & Ajax
Selenide & Ajax
Как подружить?
+
Проблема
Appium имеет ряд собственных сущностей:
• AppiumDriver• MobileElement• MobileBy
К счастью
AppiumDriver implements WebDriver
MobileElement implements WebElement
MobileBy extends By
А значит
Selenide может работать с ними так же, как и с «оригинальными» WebDriver, WebElement и By
Передаем Selenide нужный драйвер
Implements WebDriver?OK!
Selenide отлично работает со всеми селекторами
MobileBy?OK!
Специфичные действия
Нужны Android-actions?Кастуйте!
Helpers
Создайте Helper-класс, со всеми специфичными действиями
Nuff said
Итого. Что мы получаем?
• Автоматическая синхронизация с
приложением
• Удобные ассерты и матчеры,
реализованные в should методах
• Удобный и краткий API синтаксис
• Статический доступ к driver intsance
Итого. Вынужденные “хаки”
• Хелперы для исключительно
“мобильных методов” MobileDriver и
MobileWebElement
• Хелперы для сложных взаимодествий
(actions)
Спасибо за внимание
АнтонСеменченко Опыт в IT 12 более лет
CSO, Co-founder, IT Consultant вDPI.SolutionsQA Automation Activist в COMAQA.BYC++ Architect, QA Automation Department Manager, Project Manager, Resource Manager, Process manager вISSoft / Coherent Solutions
top related