bdd jbehave или cucumber jvm + appium для эффективной...

28
BDD JBehave and Cucumber JVM + Appium for efficient cross-platform Mobile Automation

Upload: qa-club-minsk

Post on 29-Nov-2014

3.611 views

Category:

Software


0 download

DESCRIPTION

Доклад Антона Семенченко в блоке QA Club на конференции Mobile Optimized 2014

TRANSCRIPT

Page 1: BDD JBehave или Cucumber JVM + Appium для эффективной кроссплатформенной автоматизации мобильных приложений - Антон

BDD JBehave and Cucumber JVM +

Appium for efficient cross-platform Mobile Automation

Page 2: BDD JBehave или Cucumber JVM + Appium для эффективной кроссплатформенной автоматизации мобильных приложений - Антон

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

Опыт в IT 10 , более лет работаю в компанииISSoft, специализируюсь в разработке и

автоматизированном тестировании .програмного обеспечения плюсменеджмент

Антон Семенченко

Page 3: BDD JBehave или Cucumber JVM + Appium для эффективной кроссплатформенной автоматизации мобильных приложений - Антон

Appium - …

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

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

Page 4: BDD JBehave или Cucumber JVM + Appium для эффективной кроссплатформенной автоматизации мобильных приложений - Антон

App + oppium = ?

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

Appium, Selendroid, IOSdriver

JSON Wire Protocol

JSON Wire Protocol

Webdriver

Page 5: BDD JBehave или Cucumber JVM + Appium для эффективной кроссплатформенной автоматизации мобильных приложений - Антон

Webdriver API. ?Бонусы

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

Интеграция с любым тестовым фреймворком

Selenium Grid для распределенного запуска тестов QA Тысячи девелоперов и специалистов Webdriver используют и знакомы с его моделью

Page 6: BDD JBehave или Cucumber JVM + Appium для эффективной кроссплатформенной автоматизации мобильных приложений - Антон

Appium …поддерживает

• IOS • Android • Firefox OS

:Платформы

Page 7: BDD JBehave или Cucumber JVM + Appium для эффективной кроссплатформенной автоматизации мобильных приложений - Антон

Appium …поддерживает

• Windows • Linux • Mac OS

:Операционные системы

Page 8: BDD JBehave или Cucumber JVM + Appium для эффективной кроссплатформенной автоматизации мобильных приложений - Антон

Appium …поддерживает

• Физические • Эмуляторы

:Устройства

Page 9: BDD JBehave или Cucumber JVM + Appium для эффективной кроссплатформенной автоматизации мобильных приложений - Антон

Appium …поддерживает

• Нативные • Веб • Гибридные

:Приложения

Page 10: BDD JBehave или Cucumber JVM + Appium для эффективной кроссплатформенной автоматизации мобильных приложений - Антон

AppiumПодкапотом

AppiumMarionetteUIAutomation

UIAutomator Selendroid

Page 11: BDD JBehave или Cucumber JVM + Appium для эффективной кроссплатформенной автоматизации мобильных приложений - Антон

IOSПодкапотом

При автоматизации приложения на IOSappium замещает команды от webdriverна понятные UIAutomation скрипту, запущенному в Instruments.

Page 12: BDD JBehave или Cucumber JVM + Appium для эффективной кроссплатформенной автоматизации мобильных приложений - Антон

AndroidПодкапотом

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

Page 13: BDD JBehave или Cucumber JVM + Appium для эффективной кроссплатформенной автоматизации мобильных приложений - Антон

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

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

– Один тест

.две платформы

Page 14: BDD JBehave или Cucumber JVM + Appium для эффективной кроссплатформенной автоматизации мобильных приложений - Антон

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

Page 15: BDD JBehave или Cucumber JVM + Appium для эффективной кроссплатформенной автоматизации мобильных приложений - Антон

Behavior Driven Development

User Stories Test Driven Development Domain Driven Design Continuous Integration

, Метод разработки основанный на:

Page 16: BDD JBehave или Cucumber JVM + Appium для эффективной кроссплатформенной автоматизации мобильных приложений - Антон

Cucumber на JVM

Gherkin синтакстис

JUnit

Таблицы параметров

Форматирование данных

Background и Hooks

Генерация отчетов

Open Source c активным сообщестом

Page 17: BDD JBehave или Cucumber JVM + Appium для эффективной кроссплатформенной автоматизации мобильных приложений - Антон

Maven зависимости

Page 18: BDD JBehave или Cucumber JVM + Appium для эффективной кроссплатформенной автоматизации мобильных приложений - Антон

Сценарии Given When Then

Тестовый сценарий: как пользователь я хочу залогиниться

Допустим: Пользователь хочет залогиниться

Когда: Пользователь логинится с “UserName” и “Pass”

Тогда: Пользователь должен попасть на Home Page

КодUse case

Page 19: BDD JBehave или Cucumber JVM + Appium для эффективной кроссплатформенной автоматизации мобильных приложений - Антон

Фичи

• Сценарии организуются в фичи

• Каждая фича представлена текстовым фалом

• Файл с фичами имеет расширение .feature

• .feature файл может содержать множество сценариев

Page 20: BDD JBehave или Cucumber JVM + Appium для эффективной кроссплатформенной автоматизации мобильных приложений - Антон

Пример: login.feature

Page 21: BDD JBehave или Cucumber JVM + Appium для эффективной кроссплатформенной автоматизации мобильных приложений - Антон

Описание шаговGiven User wants to login

When User logins with username UserName and password Pass

Then User should see home page

Page 22: BDD JBehave или Cucumber JVM + Appium для эффективной кроссплатформенной автоматизации мобильных приложений - Антон

DDT

Page 23: BDD JBehave или Cucumber JVM + Appium для эффективной кроссплатформенной автоматизации мобильных приложений - Антон

Запуск с параметрами

Page 24: BDD JBehave или Cucumber JVM + Appium для эффективной кроссплатформенной автоматизации мобильных приложений - Антон

Хуки

Page 25: BDD JBehave или Cucumber JVM + Appium для эффективной кроссплатформенной автоматизации мобильных приложений - Антон

Теги

Page 26: BDD JBehave или Cucumber JVM + Appium для эффективной кроссплатформенной автоматизации мобильных приложений - Антон

Репорты

Page 27: BDD JBehave или Cucumber JVM + Appium для эффективной кроссплатформенной автоматизации мобильных приложений - Антон

Итоги

• Языковые средства Webdriver API

• Любой язык программирования (почти)

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

• Живая документация

• Подробные отчеты по шагам

• CI ready

Page 28: BDD JBehave или Cucumber JVM + Appium для эффективной кроссплатформенной автоматизации мобильных приложений - Антон

!Спасибо за внимание

[email protected]