appium + selenide comaqa.by. Антон Семенченко
TRANSCRIPT
![Page 1: Appium + selenide comaqa.by. Антон Семенченко](https://reader033.vdocuments.mx/reader033/viewer/2022061521/55ca37eebb61eb9a698b463c/html5/thumbnails/1.jpg)
Appium + Selenide: Cross-Platform Mobile QA Automation. Is it possible
and what are the benefits?
Семенченко АнтонIssoft / Coherent Solutions
www.COMAQA.BYwww.DPI.Solutions
![Page 2: Appium + selenide comaqa.by. Антон Семенченко](https://reader033.vdocuments.mx/reader033/viewer/2022061521/55ca37eebb61eb9a698b463c/html5/thumbnails/2.jpg)
Поговорим…
• Несколько слов об Appium
• Что такое Selenide?
• Как можно “скрестить” Appium и Selenide
• Что из всего этого вышло?
![Page 3: Appium + selenide comaqa.by. Антон Семенченко](https://reader033.vdocuments.mx/reader033/viewer/2022061521/55ca37eebb61eb9a698b463c/html5/thumbnails/3.jpg)
Appium - …
• Appium — инструмент для автоматизации мобильных приложений, использующий Webdriver API.
• Appium – HTTP сервер, который создает и управляет сессиями Webdriver.
![Page 4: Appium + selenide comaqa.by. Антон Семенченко](https://reader033.vdocuments.mx/reader033/viewer/2022061521/55ca37eebb61eb9a698b463c/html5/thumbnails/4.jpg)
App + oppium = ?
Webdriver
Адаптеры для браузеров
Appium, Selendroid, IOSdriver
JSON Wire Protocol
Mobile JSON Wire Protocol
![Page 5: Appium + selenide comaqa.by. Антон Семенченко](https://reader033.vdocuments.mx/reader033/viewer/2022061521/55ca37eebb61eb9a698b463c/html5/thumbnails/5.jpg)
WebDriver API. Бонусы?
• Тесты на любом языке программирования.
• Интеграция с любым тестовым фреймворком.
• Selenium Grid для распределенного запуска тестов.
• Тысячи девелоперов и QA специалистов используют Webdriver и знакомы с его моделью.
![Page 6: Appium + selenide comaqa.by. Антон Семенченко](https://reader033.vdocuments.mx/reader033/viewer/2022061521/55ca37eebb61eb9a698b463c/html5/thumbnails/6.jpg)
Под капотом Appium
AppiumMarionetteUIAutomation
SelendroidUIAutomator
![Page 7: Appium + selenide comaqa.by. Антон Семенченко](https://reader033.vdocuments.mx/reader033/viewer/2022061521/55ca37eebb61eb9a698b463c/html5/thumbnails/7.jpg)
Под капотом IOS
На IOS appium замещает команды от webdriver на понятные UIAutomation скрипту, запущенному в Instruments.
![Page 8: Appium + selenide comaqa.by. Антон Семенченко](https://reader033.vdocuments.mx/reader033/viewer/2022061521/55ca37eebb61eb9a698b463c/html5/thumbnails/8.jpg)
Под капотом Android
На Android appium транслирует команды от webdriver на понятные UIAutomator скрипту, запущенному на устройстве.
![Page 9: Appium + selenide comaqa.by. Антон Семенченко](https://reader033.vdocuments.mx/reader033/viewer/2022061521/55ca37eebb61eb9a698b463c/html5/thumbnails/9.jpg)
Под капотом Selendroid
При автоматизации Android можно выбирать между Selendroid и UIAutomator.
![Page 10: Appium + selenide comaqa.by. Антон Семенченко](https://reader033.vdocuments.mx/reader033/viewer/2022061521/55ca37eebb61eb9a698b463c/html5/thumbnails/10.jpg)
Инновации
Appium делает возможным создание кроссплатформенных тестов
![Page 11: Appium + selenide comaqa.by. Антон Семенченко](https://reader033.vdocuments.mx/reader033/viewer/2022061521/55ca37eebb61eb9a698b463c/html5/thumbnails/11.jpg)
Пример
Гибридные приложения, постороенные с использованием :
И
![Page 12: Appium + selenide comaqa.by. Антон Семенченко](https://reader033.vdocuments.mx/reader033/viewer/2022061521/55ca37eebb61eb9a698b463c/html5/thumbnails/12.jpg)
![Page 13: Appium + selenide comaqa.by. Антон Семенченко](https://reader033.vdocuments.mx/reader033/viewer/2022061521/55ca37eebb61eb9a698b463c/html5/thumbnails/13.jpg)
Что же такое Selenide?
Selenide — это прозрачная обёртка вокруг Selenium WebDriver, не мешающая опуститься до уровня голого Driver-а, позволяющая быстро и просто использовать все возможности Selenium при разработке тестов, сосредоточившись на логике, а не суете с браузером + целый ряд дополнительных возможностей.
![Page 14: Appium + selenide comaqa.by. Антон Семенченко](https://reader033.vdocuments.mx/reader033/viewer/2022061521/55ca37eebb61eb9a698b463c/html5/thumbnails/14.jpg)
UI тесты Selenium 2 WebDriver + Java
![Page 15: Appium + selenide comaqa.by. Антон Семенченко](https://reader033.vdocuments.mx/reader033/viewer/2022061521/55ca37eebb61eb9a698b463c/html5/thumbnails/15.jpg)
Что в этом коде нам не нравится?
• Сложная инициализация• А как же скриншоты?• Объём кода • Сложность кода
Раньше все эти «сложности» ложилось на наши плечи!
![Page 16: Appium + selenide comaqa.by. Антон Семенченко](https://reader033.vdocuments.mx/reader033/viewer/2022061521/55ca37eebb61eb9a698b463c/html5/thumbnails/16.jpg)
Простой тест с Selenide
![Page 17: Appium + selenide comaqa.by. Антон Семенченко](https://reader033.vdocuments.mx/reader033/viewer/2022061521/55ca37eebb61eb9a698b463c/html5/thumbnails/17.jpg)
Инициализация браузера с помощью Selenium 2 WebDriver
![Page 18: Appium + selenide comaqa.by. Антон Семенченко](https://reader033.vdocuments.mx/reader033/viewer/2022061521/55ca37eebb61eb9a698b463c/html5/thumbnails/18.jpg)
Инициализация браузера с помощью Selenide
![Page 19: Appium + selenide comaqa.by. Антон Семенченко](https://reader033.vdocuments.mx/reader033/viewer/2022061521/55ca37eebb61eb9a698b463c/html5/thumbnails/19.jpg)
«Свойства»: Url, title и page source
• Selenium
• Selenide
![Page 20: Appium + selenide comaqa.by. Антон Семенченко](https://reader033.vdocuments.mx/reader033/viewer/2022061521/55ca37eebb61eb9a698b463c/html5/thumbnails/20.jpg)
Поиск элементов
• Selenium
• Selenide
![Page 21: Appium + selenide comaqa.by. Антон Семенченко](https://reader033.vdocuments.mx/reader033/viewer/2022061521/55ca37eebb61eb9a698b463c/html5/thumbnails/21.jpg)
Selenium & Radio buttons
![Page 22: Appium + selenide comaqa.by. Антон Семенченко](https://reader033.vdocuments.mx/reader033/viewer/2022061521/55ca37eebb61eb9a698b463c/html5/thumbnails/22.jpg)
Selenide & Radio buttons
![Page 23: Appium + selenide comaqa.by. Антон Семенченко](https://reader033.vdocuments.mx/reader033/viewer/2022061521/55ca37eebb61eb9a698b463c/html5/thumbnails/23.jpg)
Asserts
• Selenium
• Selenide
![Page 24: Appium + selenide comaqa.by. Антон Семенченко](https://reader033.vdocuments.mx/reader033/viewer/2022061521/55ca37eebb61eb9a698b463c/html5/thumbnails/24.jpg)
Alerts
• Selenium
• Selenide
![Page 25: Appium + selenide comaqa.by. Антон Семенченко](https://reader033.vdocuments.mx/reader033/viewer/2022061521/55ca37eebb61eb9a698b463c/html5/thumbnails/25.jpg)
Selenium & Ajax
![Page 26: Appium + selenide comaqa.by. Антон Семенченко](https://reader033.vdocuments.mx/reader033/viewer/2022061521/55ca37eebb61eb9a698b463c/html5/thumbnails/26.jpg)
Selenide & Ajax
![Page 27: Appium + selenide comaqa.by. Антон Семенченко](https://reader033.vdocuments.mx/reader033/viewer/2022061521/55ca37eebb61eb9a698b463c/html5/thumbnails/27.jpg)
Как подружить?
+
![Page 28: Appium + selenide comaqa.by. Антон Семенченко](https://reader033.vdocuments.mx/reader033/viewer/2022061521/55ca37eebb61eb9a698b463c/html5/thumbnails/28.jpg)
Проблема
Appium имеет ряд собственных сущностей:
• AppiumDriver• MobileElement• MobileBy
![Page 29: Appium + selenide comaqa.by. Антон Семенченко](https://reader033.vdocuments.mx/reader033/viewer/2022061521/55ca37eebb61eb9a698b463c/html5/thumbnails/29.jpg)
К счастью
AppiumDriver implements WebDriver
MobileElement implements WebElement
MobileBy extends By
![Page 30: Appium + selenide comaqa.by. Антон Семенченко](https://reader033.vdocuments.mx/reader033/viewer/2022061521/55ca37eebb61eb9a698b463c/html5/thumbnails/30.jpg)
А значит
Selenide может работать с ними так же, как и с «оригинальными» WebDriver, WebElement и By
![Page 31: Appium + selenide comaqa.by. Антон Семенченко](https://reader033.vdocuments.mx/reader033/viewer/2022061521/55ca37eebb61eb9a698b463c/html5/thumbnails/31.jpg)
Передаем Selenide нужный драйвер
Implements WebDriver?OK!
![Page 32: Appium + selenide comaqa.by. Антон Семенченко](https://reader033.vdocuments.mx/reader033/viewer/2022061521/55ca37eebb61eb9a698b463c/html5/thumbnails/32.jpg)
Selenide отлично работает со всеми селекторами
MobileBy?OK!
![Page 33: Appium + selenide comaqa.by. Антон Семенченко](https://reader033.vdocuments.mx/reader033/viewer/2022061521/55ca37eebb61eb9a698b463c/html5/thumbnails/33.jpg)
Специфичные действия
Нужны Android-actions?Кастуйте!
![Page 34: Appium + selenide comaqa.by. Антон Семенченко](https://reader033.vdocuments.mx/reader033/viewer/2022061521/55ca37eebb61eb9a698b463c/html5/thumbnails/34.jpg)
Helpers
Создайте Helper-класс, со всеми специфичными действиями
![Page 35: Appium + selenide comaqa.by. Антон Семенченко](https://reader033.vdocuments.mx/reader033/viewer/2022061521/55ca37eebb61eb9a698b463c/html5/thumbnails/35.jpg)
Nuff said
![Page 36: Appium + selenide comaqa.by. Антон Семенченко](https://reader033.vdocuments.mx/reader033/viewer/2022061521/55ca37eebb61eb9a698b463c/html5/thumbnails/36.jpg)
Итого. Что мы получаем?
• Автоматическая синхронизация с
приложением
• Удобные ассерты и матчеры,
реализованные в should методах
• Удобный и краткий API синтаксис
• Статический доступ к driver intsance
![Page 37: Appium + selenide comaqa.by. Антон Семенченко](https://reader033.vdocuments.mx/reader033/viewer/2022061521/55ca37eebb61eb9a698b463c/html5/thumbnails/37.jpg)
Итого. Вынужденные “хаки”
• Хелперы для исключительно
“мобильных методов” MobileDriver и
MobileWebElement
• Хелперы для сложных взаимодествий
(actions)
![Page 38: Appium + selenide comaqa.by. Антон Семенченко](https://reader033.vdocuments.mx/reader033/viewer/2022061521/55ca37eebb61eb9a698b463c/html5/thumbnails/38.jpg)
Спасибо за внимание
АнтонСеменченко Опыт в 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