appium + selenide comaqa.by. Антон Семенченко

Post on 12-Aug-2015

2.483 Views

Category:

Software

7 Downloads

Preview:

Click to see full reader

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