Андрей Стахиевич - appium mobile automation tool

Post on 10-Feb-2015

859 Views

Category:

Technology

2 Downloads

Preview:

Click to see full reader

DESCRIPTION

Презентация со встречи QA Club Minsk (адаптированная под Confet QA) 4 декабря 2013 г. "Appium Mobile Automation Tool", автор и докладчик Андрей Стахиевич

TRANSCRIPT

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

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

Немного о себе

Андрей СтахиевичКомпания ISSOFTandreystakhievich@coherentsolutions.com• ASP.Net developer с 2-летним стажем• Selenium Webdriver-based test automation

specialist с 2-летним стажем• Mobile test automation specialist cо стажем 1 год

Являюсь большим поклонником Selenium Webdriver и связанных с ним технологий.

• Несколько слов об• Рутина автоматизации гибридного

приложения.• Кроссплатформенные тесты. Миф или

реальность?

Поговорим…

App + oppium = ?

Webdriver

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

Appium, Selendroid, IOSdriver

JSON Wire Protocol

JSON Wire Protocol

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

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

Appium - …

• Тесты на любом языке программирования.• Интеграция с любым тестовым

фреймворком.• Selenium Grid для распределенного запуска

тестов.• Тысячи девелоперов и QA специалистов

используют Webdriver и знакомы с его моделью.

Webdriver API. Бонусы?

Под капотом Appium

AppiumMarionetteUIAutomation

SelendroidUIAutomator

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

Под капотом IOS

На Android appium транслирует команды от webdriver на понятные UIAutomation скрипту, запущенному на устройстве.

Под капотом Android

Под капотом Selendroid

• При автоматизации Android можно выбирать между Selendroid и UIAutomator.

Appium делает возможным кроссплатформенные тесты:

Один тест – две платформы.

Инновации...

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

Проект

И

Гибрид

• Переключение между views.

• Нахождение нужного view.

• Внахождение UI элементов и взаимодествие с ними не только в нативном, но и в веб view.

• Исследование разметки

• Один инструмент для : IOS и Android .• Языка программирования Java или C#.• Data driven подход в тестах.• Возможность параллельного запуска тестов

(или распределенного).• Одни и те же тесты должны работать с IOS и

Android.

Нам надо...

Инспектор

Разметка

Приложение

Actions

Код

Инфа

Еще инспектор

Разметка

Приложение

Код

Инфа

Элементы

Ключевые моменты:

• Переключение Views• Ожидание событий• Универсальные Actions

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

public static void SwitchToWebView(WebDriver driver) { for(String winHandle : driver.getWindowHandles()){ if(winHandle.contains("WEBVIEW")){ driver.switchTo().window(winHandle); } }; }

Views

• driver.manage().timeouts().implicitlyWait (DEFAULT_TIMEOUT, TimeUnit.SECONDS);

• TestWaiter.waitFor(WaitingConditions. windowHandleCountToBe(driver,2));

Waiters

• public static void singleTap(WebDriver driver, WebElement elem) {

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

Actions

@Testpublic void scrollingHotListItemsTest() throws Exception {

start().clickOnHotListButton().addHotListItem(SECOND_HOT_LIST_ITEM_TEXT).addHotListItem(THIRD_HOT_LIST_ITEM_TEXT).verifyIsScrollingHotListItemsWorks();

}

Демо

Андрей Стахиевичandreystakhievich@coherentsolutions.com

Компания ISSOF Solutionshttp://www.issoft.by/

http://appium.io/

Спасибо

top related