Основными целями при выборе инструмента у меня были:
- open source ( фреймворк с открытым исходным кодом )
- он позволяет управлять приложениями написанными под iOS and Android.
- автоматизация native and web приложений
- возможность тестировать как на физическом устройстве , так и на симуляторе.
- ну и активное развитие проекта наличие хорошей документации
Appium - это интрумент автоматизации мобильных приложений использующий Webdriver API.
И при это это также HTTP сервер который создает и управляет сессиями Webdriver.
Разработчики Selenium webdriver написали специальный протокол, называемый JSON Wire protocol , для того что бы можно было управлять различными браузерами единым образом. Т.е наш webdriver посылает одинаковый команды для разных браузеров по JSON Wire protocol, а уже специальный адаптер для каждого соотвественно браузера транслирует, интерпретирует в команды, понятные нашему браузеру
Так вот Appium реализует тот же самый JSON Wire протокол, но только для управления мобильными приложениями.
Какие это нам несет положительные моменты.
- Большой плюс это то что мы можем писать тесты на многих языках программирования ( C#, java, rybu, pyton, javasript, php )
- мы можем интегрировать нашу автоматизацию с любым тестовым фреймворков.
- мы можем использовать селением грид для распределенного запуска тестов
Appium можно установить на любую из трех операционных систем . Но на виндоус Appium имеет ограниченный функционал так как для этой платформы он разрабатывался в последнюю очередь. Поэтому на виндоус не будет такой утилиты как инспектор, которая позволяет исследовать приложение и локаторы.
Appium внутри себя использует разнообразные инструменты для автоматизации конечного приложения
Для автоматизации ios приложений он использует UI Automation - это нативный тестовый фреймворк, написанный на JavaScript и поставляемый вместе с Xcode и утилитой Instruments.
Для автоматизации Android приложений. опиум может использовать либо UI Automator or Selendroid.
Date: 2015.
2. Выбор инструмента
• open source
• поддержка ОС Android and iOS
• автоматизация native and web app
• тестирование на эмуляторе и на физическом
устройстве
• активное развитие, наличие документации