apium тестирование мобильных приложений

Appium

code bg

Automation for Apps

Appium is an open source test automation framework for use with native, hybrid and mobile web apps.
It drives iOS, Android, and Windows apps using the WebDriver protocol.

Introducing Appium.

Is native app automation missing from your tool belt? Problem solved.

Watch the Videos

marketing recompiling

Appium Philosophy

Appium is built on the idea that testing native apps shouldn’t require including an SDK or recompiling your app. And that you should be able to use your preferred test practices, frameworks, and tools. Appium is an open source project and has made design and tool decisions to encourage a vibrant contributing community.

marketing favorite tool

Use your favorite tools

Appium aims to automate any mobile app from any language and any test framework, with full access to back-end APIs and DBs from test code. Write tests with your favorite dev tools using all the above programming languages, and probably more (with the Selenium WebDriver API and language-specific client libraries).

Источник

Apium тестирование мобильных приложений

First of all, make sure developer mode is turned on in your Safari preferences so that the remote debugger port is open.

Mobile Safari on a Real iOS Device

For XCUITest

We use appium-ios-device to handle Safari since Appium 1.15. You no longer need to install additional dependencies.

For Instruments

For instruction on how to install and run ios-webkit-debugger-proxy see iOS WebKit debug proxy documentation.

Setup for an iOS real device

Before you can run your tests against Safari on a real device you will need to:

Running your test

Android mobile web automation

Appium supports automating the Chrome browser both real and emulated Android devices.

Then, use desired capabilties like these to run your test in Chrome:

Note that on 4.4+ devices, you can also use the ‘Browser’ browserName cap to automate the built-in browser. On all devices you can use the ‘Chromium’ browserName cap to automate a build of Chromium which you have installed.

Troubleshooting Chromedriver

If your test target requires newer Chromedriver version, chromedriver_autodownload feature will help. It has been available since Appium 1.15.0 with the security option. Read the linked documentation to learn how to use it. chromedriverExecutableDir capability also helps when you need a specific Chromedriver version.

As of Chrome version 33, a rooted device is no longer required. If running tests on older versions of Chrome, devices needed to be rooted as Chromedriver required write access to the /data/local directory to set Chrome’s command line arguments.

If testing on Chrome app prior to version 33, ensure adb shell has read/write access to /data/local directory on the device:

For more Chromedriver specific documentation see ChromeDriver documentation.

Источник

Почем Appium для народа

ok389nh7vm8rd6yelh8wndunl5u

В этой статье мы рассмотрим инструмент Appium. Данная статья является вводным материалом для введения в автоматизированное тестирование мобильных приложений. Она покажет с какими трудностями возможно придется столкнуться при использовании данного инструмента.

Рассмотрим небольшую задачу на примере «калькулятора», попробуем написать автоматизированные тесты для тестирования его и… Начнем с саааамого начала :)

Содержание

Пару слов о мобильном тестировании. Можно дома не иметь компьютер, ноутбук, но свою жизнь мы не воспринимаем без мобильных девайсов. Тестирование мобильных приложений занимает большую нишу в… тестировании… Мммм… масло масленное, но это так. Эта ниша довольно-таки сложна.

Девайсов такое огромное количество со своими операционными системами, со своими графическими интерфейсами, разрешениями экранов и т.д. Мне кажется список этот нескончаемый. Так вот, в силу огромного разнообразия мобильных устройств, было бы неплохо иметь автоматизированные тесты для наших приложений, дабы уменьшить страдания тестировщиков и не превращать тестирование одной функциональности на сотнях девайсах в “сущий ад” (см. изображение ниже).

Существуют многочленные инструменты для написания автотестов под мобильные девайсы. Для решения поставленных передо мною задач, я выбрал Appium, так как он одновременно подходит для Android и iOS и можно писать автотесты используя «всеми любимую» Java.

Appium— это бесплатный кроссплатформенный инструмент с открытым исходным кодом, который помогает автоматизировать приложения как для Android, так и для iOS. Appium придерживается того же подхода, что и Selenium WebDriver, который получает HTTP-запросы в формате JSON от клиентов и преобразует их в зависимости от платформы, на которой он работает.

image loader

Необходимый минимум

Итак, что нам необходимо для работы с Appium?

Для создания тестов под Android выдвигаются следующие требования:

image loader

Постановка и решение задачи

Итак, представим, что нам необходимо написать автоматизированные тесты для приложения калькулятор для Android устройств. Для этого нам необходимо скачать Appium с официального сайта и установить его у себя на «машине».

image loader

image loader

По умолчанию Appium готов слушать localhost с портом 4723. Здесь оставим все без изменений и стартанем сервер.

image loader

Теперь Appium готов обрабатывать наши запросы.

Наш будущий автотест необходимо запускать либо на эмуляторе либо на реальном девайсе. Для универсальности данной статьи, рассмотрим работу теста на эмуляторе. Для этого нам понадобится Android Studio. Качаем и инсталим ее самостоятельно. Затем открываем и переходим в Tools — AVD Manager.

image loader

image loader

image loader

image loader

image loader

image loader

Теперь откроем терминал и выполним команду adb devices. Она покажет список приаттаченых девайсов.

image loader

Мы видим, что список девайсов пуст, потому что ни один эмулятор не запущен, ни один реальный девайс не подключен к нашей «машине».

Запустим все эмуляторы, которые у нас есть. В моем случае — это два эмулятора. Повторно выполним команду adb devices.

image loader

Теперь мы получили непустой список, который содержит ID наших приаттаченных устройств — эмуляторов и девайсов, если таковы имеются.

С эмулятором разобрались, приступим к написанию кода. Как было описано выше, в своих тестах я использую Java.

Для начала создадим экземпляр AndroidDriver. Конструктор данного класса ожидает на вход два параметра:

image loader

Desired capabilities — JSON-объект (набор пар ключ-значение), отправленный клиентом серверу.

Desired capabilities описывают особенности создаваемой сессии (имя девайса/эмулятора, операционную систему (ОС), версию ОС, запускаемое приложение и т.д.).

image loader

Опишем наши capabilities и создадим AndroidDriver.

image loader

deviceName — обязательный парасметр, но для Android он не проверяется. Если говорить о iOS, то при указании имени, необходимо использовать одно из зарезервированных имен (пример такиих имен приведен в комментариях к коду). Описание других параметров приведены в коде (см. изображение выше), но на некоторых из них мы заострим внимание.

udid — уникальный идентификатор устройства. Данный идентификатор устройства мы можем получить командой adb devices.

image loader

appPackage — имя Java пакета Android приложения, которое мы хотим запустить.

appActivities — имя activities, которое мы открываем.

appPackage и appActivities можно получать различными способами, но самый простой из них, установить приложение «APK Info» из Google Play.

После открытия данной программы Вы будете видеть список всех установленных приложений. Нас интересует Calculator. Выбираем его из списка.

image loader

И тут находится вся необходимая нам информация.

image loader

image loader

Заполнили их. Далее создаем экземпляр AndroidDriver: прописываем URL Appium и передаем вторым параметром объект capabilities.

image loader

Данный код, лишь запустит калькулятор на эмуляторе. Нам необходимо научиться как-то управлять элементами калькулятора, чтобы мы смогли написать простой тест. Принцип тут схож как и в Selenium Web Driver. Нам необходимо обращаться к элементам через какие-либо локаторы. Для их получения нам поможет Appium Inspector. Открываем Appium.

image loader

image loader

Теперь все наши capabilities описанные в коде, необходимо перенести в Inspector, во вкладку Desired Capabilities.

image loader

image loader

Инспектор транслирует то, что отображено на устройстве.Чуть правее расположено дерево всех элементов текущей Activity. Чтобы получить атрибуты элемента, необходимо лишь выбрать нужные нам элемент.

image loader

После выбора, отображается все атрибуты, которые доступны для данного элемента.В данном случае, нам не так важно как обращаться к элементу: по ID или xPath. Но в больших и сложных приложениях, лучше использовать ID, так как xPath очень замедляет прохождение тестов. Также, при тестировании гибридных приложений — ID будет один для Android и iOS, а xPath — разные. Мы научились получать необходимые атрибуты. Теперь по аналогии с Selenium Web Driver — получим необходимые элементы в коде.

image loader

Для получения элемента, я использую метод findElementById. Можно создавать экземпляр класса MobileElement и работать с ним, а можно и без создания. Тут мы определяем элементы цифры 2, + и 3. В конце ожидаю, что результат будет равен 5. В итоге получилось следующее:

image loader

Тест и работу по созданию сессии я вынес в отдельные методы. Теперь попробую продемонстрировать, что у нас получилось.

Конклюжен :)

image loader

В данной статье я показал, как быстро начать работу с Appium и что для этого необходимо. Как вы могли заметить, начать писать простые тесты не так уж и сложно. Дальше можно прикрутить отчет к проекту, к примеру, Allure. Но это уже совсем другая история :)

Возможно у вас возникнут индивидуальные проблемы при установке различных инструментов, которые необходимы для работы с Appium. Но все эти проблемы легко решаются поиском в Google :)

Тема тестирования под iOS не раскрыта, но я хочу «сказать», а точнее написать пару слов о ней.

Для того, чтобы запустить приложение через Appium на iOS, много времени я потратил на настройку среды (xCode, Appium, сертификаты разработчика и т.д.). Нужно было открыть проект Appium через xCode, указать сертификаты разработчика и иные настройки, собрать проект и лишь потом получилось выполнить команды через Appium на iOS девайсах. После каждого обновления Appium необходимо производить данную процедуру. Возможно, у вас все получится гораздо проще, стоит верить в это. Пока я не нашел другого решения, возможно оно и есть, но меня пока это устраивает.

Хочу еще раз отметить, что при обращении к элементам лучше использовать ID, чем xPath. Даже если элемент не содержит ID, то попросите/заставьте разработчика указывать ID. Это облегчит вам жизнь и увеличит скорость выполнения тестов.

И еще, чем больше у вас реальных устройств, тем больше вероятность найти баг до того, как найдут его конечные пользователи. В принципе, можно и создать свою фабрику девайсов. Но мне кажется, целесообразней все-таки смотреть в сторону облачных решений, например, BrowserStack, SauceLabs и другие.

Источник

Тестирование android приложений с использованием selenoid. Поиск location в мобильном приложении с помощью Appium

Я из компании Luxoft.
Предисловие из поста:

Selenoid — это программа, которая позволяет управлять браузерами и Android-эмуляторами с помощью специальных драйверов. Умеет запускать каждый из них изолированно в Docker-контейнере.

Основная идея Selenoid состоит в том, чтобы запускать новый контейнер для каждой сессии (запуска нового браузера или эмулятора) и останавливать его сразу же после закрытия сессии.

Selenoid позволяет поддерживать высокую нагрузку без дополнительных ресурсозатрат.

В этом посте будет запуск простых тестов в Android-эмуляторе.

Подготовка

Предварительно проверьте что ваша система может запускать виртуальные машины.

Аппаратная виртуализация должна поддерживаться вашим процессором. Это означает, что требуют­ся расширения процессора Intel­VT или AMD­V. Чтобы убедиться, поддерживает ли процессор одно из них, выполните команду:

Docker

На вашей операционной системе обязательно должен быть установлен и запущен Docker.

Установка Selenoid

Если у вас Redhat-based операционная система, вы можете использовать мой репозиторий для установки Configuration manager.

Если у вас не Redhat-based операционная система, то вы можете скачать и использовать бинарник Configuration manager.

Запуск Selenoid используя Configuration manager и формирование browsers.json

Если у вас нет прямого доступа в инет и docker образы вы скачиваете через registry:

Если у вас есть прямой доступ в инет.

Так как Selenoid Configuration manager пока что не умеет формировать browsers.json для мобильного Chrome, то его нужно поправить самостоятельно.

По умолчанию browsers.json формируется в директории

Итоговый файл browsers.json для тестирования Android приложений и Chrome внутри Android эмулятора.

Пока что версия мобильного хрома отстает от версии обычного хрома.
Скачиваем образ мобильного хрома

Изменение browsers.json

При изменении файла browsers.json нужно перезагрузить selenoid

Reloading configuration
Можно сделать Reloading configuration. Подробности по ссылке:
https://aerokube.com/selenoid/latest/#_reloading_configuration

Проверяем что docker контейнер запустился и образы скачались.

image loader

Запуск Selenoid UI используя Configuration manager

Проверяем что docker контейнер запустился и образы скачались.

image loader

Заходим в selenoid-ui по адресу ip-где-вы-запускали-selenoid-и-selenoid-ui:8080

У вас должно быть гореть зеленым 2 слова CONNECTED и написано android и chrome.

image loader

Чтобы получить доступ из Android на хостовую нужно в тестах использовать полное или короткое имя виртуальной машины, где запускается selenoid.

DEMO TEST

Во всех трех java файлах меняем путь в RemoteWebDriver на полное или короткое имя виртуальной машины, где запускается selenoid (надо поменять скриншот).

image loader

или на другой адрес, там где вы запустили selenoid.

В файле AndroidRemoteApkTest.java меняем путь где можно скачать вашу APK.

По этой ссылке http:/полное-или-короткое-имя-виртуальной-машины-где-запускается-selenoid/ваша-apk вы должны скачивать APK как с виртуальной машины так внутри docker образов (в том числе и android).

Можно протестировать так:

Если вы будете ссылаться на localhost из docker, то у вас будет вот такая ошибка, так как вы из сети docker пытаетесь обратиться к localhost основного сервера:

Как сделать доступной для скачивания ваши локальные файлы будет ниже.

В файле DemoTest.java добавляем setCapability для запуска chrome на Android чтобы получилось примерно так.

image loader

В каждом файле java вы можете включить или выключить запись видео, удаленный просмотр или управление через VNC и запись логов в файл. Чтобы выключить опцию нужно добавить 2 слеша в начало строки.

image loader

Чтобы сделать доступной для скачивания файлы из текущей директории, можно запустить в текущей консоли сервис static-server-in-dir:

Запуск тестов

В директории demo-tests запускаем тесты:

Если вам нужно указать настройки и у вас используется maven-прокси (Nexus, Artifactory)

Если запускаем с прямым доступом в инет и без каких-либо настроек

Скорость

Общее время разворачивания android эмулятора и запуск 1 теста занимает меньше 1 минуты.

Источник

Руководство по Appium для тестирования устройств под Andoid и iOS

Appium — это кроссплатформенный инструмент с открытым исходным кодом, который помогает автоматизировать тестирование мобильных приложений для Android и iOS.

Appium поддерживает мобильные, нативные и гибридные приложения.

Существует три типа мобильных приложений:

Appium tutorial for beginners

Почему Appium стал популярным инструментом для автоматизации мобильных приложений?

Appium — кроссплатформенный инструмент, т.е. позволяет писать тесты для мобильных платформ (iOS, Android, Windows), используя API. Это один из самых широко используемых инструментов для регрессионного тестирования приложений на смартфонах и планшетах.

Настройка Appium на Windows

Краткий перечень ПО и устройств, необходимых для автоматизации тестирования мобильного приложения с помощью Appium:

USB-драйвер для тестового устройства (Moto G)

Шаг #1: Установить инструментальный набор JDK.

Шаг #2: Задать путь для системной переменной Java (Environment Variable Path)

Шаг #3: Скачать и установить Android SDK здесь и обновить API.

Обновите API, как показано на скриншоте:

Android SDK manager

Шаг #4: Теперь понадобится установить Appium для Windows.

Шаг #5: Установите Node JS отсюда: Node JS download

Шаг #6: Установите путь для ANDROID_HOME и для JAVA_HOME

Уточните путь для инструментов в Android SDK.

Specify the path

Эти папки присутствуют в adt-bundle-windows-x86_64-20140702\sdk

Теперь понадобится обновить системную переменную (скриншот ниже)

Update the Environment variable

Обновите инструменты (папка присутствует в Android SDK).

Нажмите комбинацию клавиш Win+R

Впишите CMD. Теперь в CMD впишите «adb». adb будет доступен.

Подготовка мобильного устройства для автоматизации в Appium

Подключите свое мобильное устройство для тестирования к ПК через USB. Включите режим разработчика (Developer Mode) в устройстве перед автоматизацией приложения.

Как включить режим разработчика/опции на смартфоне Android или планшете:

1) Откройте настройки, нажмите вкладку «About», нажмите «Software Information», нажмите «More».

2) Нажмите «Build number» 7 раз, чтобы активировать опцию разработчика.

3) Вернитесь к настройкам — появились ли «Developer options»?

4) Нажмите «Developer options», выберите опцию «USB Debugging» из меню на следующем экране.

USB Debugging option

Более детальные инструкции — по ссылке.

5) Скачайте и установите USB-драйверы для тестового устройства на ПК.

6) В терминале впишите «adb devices»

Список подключенных устройств

adb devices

Это высветит список устройств, которые подключены к системе. В качестве примера автоматизации будет использован App Contact Manager.apk. Установите на устройство Contact Manager.apk.

Начало автоматизации Android-приложения с помощью Appium

Запустите appium.exe на ПК.

Run Appium

Appium должен быть запущен и соответствовать следующим условиям.

Примечание: не меняйте название устройства в настройках Android. При запуске Appium Server, адрес сервера, а также адрес порта будут установлены по умолчанию. Адрес порта по умолчанию будет 4723.

В настройках Android пользователю необходимо установить путь APK, где расположен APK, проверить путь приложения, пакет и запустить Activity.

Подключите своей андроидофон к ПК и включите режим отладки USB.

Откройте командную строку.

Впишите команду adb logcat.

Откройте приложение на своем андроидофоне. Сразу же нажмите CTRL + C в командной строке.

press CTRL C

com.example.android.contactmanager — название пакета и com.example.android.contactmanager.ContactManager — это название активности приложения Contact Manager.

Contact Manager app

На скриншоте выше заполнена вся необходимая информация в Appium, т.е. пакет, активность, название мобильного устройства.

Как обнаружить элемент, используя UIAutomatorViewer?

1) Для автоматизации приложения понадобится вначале найти элементы приложения, для которых нужна автоматизация. Будет использован UIAutomatorViewer.

2) Подключите к ПК устройство, на котором установлено приложение.

3) Откройте терминал.

Впишите ‘adb devices‘.

Список подключенных устройств

Так можно будет увидеть список устройств, которые подключены к ПК.

4) Откройте приложение, которое вы хотите автоматизировать в мобильном устройстве.

5) Откройте UIAutomatorViewer и пройдите по навигации:

adt bundle windows

6) На скриншоте устройства проверьте, что приложение и UIAutomaterViewer запущены.

7) Эта опция позволяет сделать скриншот приложения с полной информацией обо всех элементах, которые видны в приложении.

App with all the detailed information

Кликните кнопку Add Contact (добавить контакт) для тестового сценария.

В качестве указателя может использоваться By.name(“Add Contact”)

use locator By name

Указатель By.className (android.widget.EditText)

locator for Contact Name

Указатель By.name(“Save”) для кнопки Save.

Первая программа для автоматизации приложения на Appium

Запустите скрипт, размещенный ниже, приложение Contact Manager запустится на фактическом устройстве и все логи вводятся в консоли Appium. Так можно увидеть все действия, которые запустил этот скрипт.

Источник

Понравилась статья? Поделить с друзьями:
Добавить комментарий
  • Как сделать успешный бизнес на ритуальных услугах
  • Выездной кейтеринг в России
  • Риски бизнеса: без чего не обойтись на пути к успеху
  • apitor robot приложение не подключается
  • api программный интерфейс приложения