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

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

Upload: qa-club-minsk

Post on 10-Feb-2015

858 views

Category:

Technology


2 download

DESCRIPTION

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

TRANSCRIPT

Page 1: Андрей Стахиевич - Appium Mobile Automation Tool

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

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

Page 2: Андрей Стахиевич - Appium Mobile Automation Tool

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

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

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

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

Page 3: Андрей Стахиевич - Appium Mobile Automation Tool

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

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

реальность?

Поговорим…

Page 4: Андрей Стахиевич - Appium Mobile Automation Tool

App + oppium = ?

Webdriver

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

Appium, Selendroid, IOSdriver

JSON Wire Protocol

JSON Wire Protocol

Page 5: Андрей Стахиевич - Appium Mobile Automation Tool

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

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

Appium - …

Page 6: Андрей Стахиевич - Appium Mobile Automation Tool

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

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

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

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

Webdriver API. Бонусы?

Page 7: Андрей Стахиевич - Appium Mobile Automation Tool

Под капотом Appium

AppiumMarionetteUIAutomation

SelendroidUIAutomator

Page 8: Андрей Стахиевич - Appium Mobile Automation Tool

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

Под капотом IOS

Page 9: Андрей Стахиевич - Appium Mobile Automation Tool

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

Под капотом Android

Page 10: Андрей Стахиевич - Appium Mobile Automation Tool

Под капотом Selendroid

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

Page 11: Андрей Стахиевич - Appium Mobile Automation Tool

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

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

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

Page 12: Андрей Стахиевич - Appium Mobile Automation Tool

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

Проект

И

Page 13: Андрей Стахиевич - Appium Mobile Automation Tool

Гибрид

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

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

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

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

Page 14: Андрей Стахиевич - Appium Mobile Automation Tool

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

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

Android.

Нам надо...

Page 15: Андрей Стахиевич - Appium Mobile Automation Tool

Инспектор

Разметка

Приложение

Actions

Код

Инфа

Page 16: Андрей Стахиевич - Appium Mobile Automation Tool

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

Разметка

Приложение

Код

Инфа

Элементы

Page 17: Андрей Стахиевич - Appium Mobile Automation Tool

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

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

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

Page 18: Андрей Стахиевич - Appium Mobile Automation Tool

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

Views

Page 19: Андрей Стахиевич - Appium Mobile Automation Tool

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

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

Waiters

Page 20: Андрей Стахиевич - Appium Mobile Automation Tool

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

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

Actions

Page 21: Андрей Стахиевич - Appium Mobile Automation Tool

@Testpublic void scrollingHotListItemsTest() throws Exception {

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

}

Демо

Page 22: Андрей Стахиевич - Appium Mobile Automation Tool

Андрей Стахиевич[email protected]

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

http://appium.io/

Спасибо