ݺߣ

ݺߣShare a Scribd company logo
И никуда не надо ехать!

Appium.
Тестируем гибридные мобильные
приложения в стиле Webdriver API
Немного о себе
Андрей Стахиевич
Компания ISSOFT
andreystakhievich@coherentsolutions.com
• ASP.Net developer с 2-летним стажем
• Selenium Webdriver-based test automation
specialist с 2-летним стажем
• Mobile test automation specialist cо стажем
1 год
Являюсь большим поклонником Selenium Webdriver и связанных с
ним технологий.
Поговорим…
• Несколько слов об
• Рутина автоматизации гибридного
приложения.
• Кроссплатформенные тесты. Миф или
реальность?
App + oppium = ?

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

Webdriver

JSON Wire
Protocol
Appium,
Selendroid,
IOSdriver
Appium - …
Appium — инструмент для автоматизации
мобильных приложений, использующих
Webdriver API.
Appium – HTTP сервер, который создает и
управляет сессиями Webdriver.
Webdriver API. Бонусы?
• Тесты на любом языке программирования.
• Интеграция с любым тестовым
фреймворком.
• Selenium Grid для распределенного запуска
тестов.
• Тысячи девелоперов и QA специалистов
используют Webdriver и знакомы с его
моделью.
Под капотом Appium
UIAutomation

UIAutomator

Appium

Marionette

Selendroid
Под капотом IOS
На IOS appium замещает команды от webdriver на понятные
UIAutomation скрипту, запущенному в Instruments.
Под капотом Android
На Android appium транслирует команды от webdriver на
понятные UIAutomation скрипту, запущенному на устройстве.
Под капотом Selendroid
• При автоматизации Android можно
выбирать между Selendroid и UIAutomator.
Инновации...

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

И
Гибрид
• Переключение между views.
• Нахождение нужного view.
• Внахождение UI элементов и взаимодествие
с ними не только в нативном, но и в веб view.
• Исследование разметки
Нам надо...
•
•
•
•

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

Actions
Инфа
Код
Еще инспектор
Приложение

Элементы

Инфа
Код
Разметка
Кроссплатформенность
Ключевые моменты:
• Переключение Views
• Ожидание событий
• Универсальные Actions
Views

public static void SwitchToWebView(WebDriver driver) {
for(String winHandle : driver.getWindowHandles()){
if(winHandle.contains("WEBVIEW")){
driver.switchTo().window(winHandle);
}
};
}
Waiters
• driver.manage().timeouts().implicitlyWait
(DEFAULT_TIMEOUT, TimeUnit.SECONDS);
• TestWaiter.waitFor(WaitingConditions.
windowHandleCountToBe(driver,2));
Actions

• public static void singleTap(WebDriver driver, WebElement
elem) {
new TouchActions(driver).singleTap(elem).perform();
}
• ((JavascriptExecutor)driver).executeScript("mobile: tap");
Демо
@Test
public void scrollingHotListItemsTest() throws Exception {
start()
.clickOnHotListButton()
.addHotListItem(SECOND_HOT_LIST_ITEM_TEXT)
.addHotListItem(THIRD_HOT_LIST_ITEM_TEXT)
.verifyIsScrollingHotListItemsWorks();
}
Спасибо
Андрей Стахиевич
andreystakhievich@coherentsolutions.com
Компания ISSOF Solutions
http://www.issoft.by/

http://appium.io/

More Related Content

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