
Что такое Appium?
Appium — это свободно распространяемый фреймворк с открытым исходным кодом, предназначенный для тестирования пользовательского интерфейса мобильных приложений. Он помогает тестировать нативные, гибридные и веб-приложения и проводить автоматизированное тестирование на физических устройствах, а также с помощью эмулятора и симулятора. Он предлагает кросс-платформенное тестирование приложений — единый API работает для сценариев тестирования платформы Android и iOS.
Он не отягощен зависимостью от операционной системы мобильного устройства — у Appium есть фреймворк или оболочка, которые переводят команды Selenium Webdriver в команды UIAutomation (iOS) или UIAutomator (Android) в зависимости от типа устройства, а не любого типа ОС.
Appium поддерживает все языки с клиентскими библиотеками Selenium, такие как: Java, Objective-C, JavaScript с node.js, PHP, Ruby, Python, C# и т. д.
В этой статье мы поговорим о таких моментах:
-
Как Appium работает?
-
Необходимые условия для использования Appium
-
Установка Appium Desktop
-
Appium Inspector
-
Подключение эмулятора Android к Appium
-
Тест-кейс Appium для нативного Android-приложения (калькулятор)
-
Ограничения использования Appium
-
Распространенные ошибки и шаги по устранению неполадок в Appium
Как работает Appium?
-
Appium — это «HTTP-сервер», написанный с использованием платформы Node.js и управляющий сессиями iOS и Android с использованием проводного протокола Webdriver JSON. Следовательно, перед инициализацией Appium Server в системе необходимо предварительно установить Node.js.
-
Когда Appium скачан и установлен, на компьютере настраивается сервер с REST API.
-
Он получает запрос на подключение и команду от клиента и выполняет эту команду на мобильных устройствах (Android/iOS).
-
Он отвечает ответами HTTP. Опять же, чтобы выполнить этот запрос, он использует платформы автоматизации мобильного тестирования для управления пользовательским интерфейсом приложений. Фреймворк вроде:
— Apple Instruments для iOS (Instruments доступен только в Xcode 3.0 или более поздних версиях с OS X v10.5 и более поздних версиях).
— Google UIAutomator для Android API уровня 16 или выше.
— Selendroid для Android API уровня 15 или ниже.
Необходимое условие для использования APPIUM
-
Установить ANDROID SDK (Studio)
-
Установить JDK (Java Development Kit)
-
Установить Eclipse
-
Установить TestNg для Eclipse
-
Установить JAR Selenium Server
-
Клиентская библиотека Appium
-
Информация о приложении APK в Google Play
-
js (не требуется — всякий раз, когда сервер Appium установлен, он по умолчанию поставляется с «Node.exe» и NPM. Он включен в текущую версию Appium)
-
Установить Appium Desktop
Установка Appium Desktop:
Appium Studio — это приложение с GUI с открытым исходным кодом для установки Appium Server. Он поставляется в комплекте со всеми зависимостями для установки и использования Appium Server. Включает в себя Inspector для получения основной информации о приложениях. А также поставляется с Recorder для создания шаблонного кода для автоматизации мобильных приложений.
Шаг 1) Перейдите на http://appium.io/ и загрузите Appium.

Шаг 2) Для Windows выберите исполняемый файл и загрузите его. Размер файла составляет около 162 МБ. Загрузка займет какое-то время в зависимости от скорости интернета.

Шаг 3) Нажмите на скачанный файл exe.

Шаг 4) На компьютере с Windows устанавливать Appium нет необходимости — он запускается прямо из exe. После нажатия на exe в течение нескольких минут увидите следующее.

Если вы пользуетесь Mac, необходимо установить dmg.
Шаг 5) Далее вы увидите окно запуска сервера с предзаполненными параметрами хоста и порта по умолчанию, которые можно изменить. На кнопке старта упоминается используемая версия Appium.

Шаг 6) При нажатии на кнопку запуска сервера на указанном хосте и порту запускается новый сервер. Отобразится журнал работы сервера.

Шаг 7) Нажмите на «New Session Window».

Шаг 8) Можно ввести необходимые данные и начать сеанс.

APPIUM Inspector
Подобно инструменту записи и воспроизведения Selenium IDE, Appium содержит инструмента Inspector для тех же целей. Он записывает и воспроизводит поведение нативного приложения, проверяя DOM, и генерирует тестовые сценарии на любом языке. Однако в настоящее время поддержка Appium Inspector для Microsoft Windows отсутствует. В Windows он запускает Appium Server, но не может проверить элементы. Однако в качестве инструмента для проверки элементов можно использовать UIAutomator viewer.
Шаги для начала работы с Appium Inspector на Mac:
Шаг 1) Загрузите и запустите сервер Appium с IP-адресом по умолчанию 0.0.0.0 и портом 4725.
-
Выберите исходный файл или файлы .app из локального для тестирования.
-
Поставьте галочку в поле «App Path», чтобы активировать кнопку выбора.
Шаг 2) Теперь нажмите кнопку «Choose», чтобы получить возможность просмотреть и выбрать тестовый файл с локального диска.

Шаг 3) Запустите симулятор на Mac.
Шаг 4) Нажмите кнопку «Launch» в правом верхнем углу, которая активирует значок синего цвета. Снова нажмите на значок синего цвета, он откроет инспектор Appium и симулятор с предварительно выбранным приложением.

Шаг 5). Запуск Appium Inspector покажет иерархию элементов в виде столбцов. Кроме того, пользователь может применять действия с помощью таких кнопок, как Tap, Swipe и т. д.

Шаг 6) Нажмите кнопку «Stop», чтобы остановить запись.
Подключение эмулятора Android к Appium
Шаг 1) Установите Android SDK в свою систему.
Перейдите в Панель управления [Control panel] >> Система и безопасность [System and Security] >> Система [System] и на левой панели нажмите «Продвинутые настройки системы» [Advanced System Settings]. Во всплывающем окне «Свойства системы» [System Properties] перейдите на вкладку «Дополнительно» [Advanced], а затем нажмите кнопку «Переменные среды» [Environment Variables].

Шаг 2) Теперь во всплывающем окне «Переменные среды» [Environment variables] дважды щелкните «Путь» [Path] и установите переменную ANDROID_HOME, которая указывает на ваш каталог SDK. В пути добавьте весь путь к папке SDK.
например –
C:\User\ABC\Desktop\adt-bundled-windows-x86_64-20140321\sdk

Шаг 3) Запустите эмулятор Android или подключите любое устройство Android к вашей системе (убедитесь, что на устройстве Android включена опция отладки Android. Чтобы проверить параметр отладки, перейдите в «Настройки устройства» >> «Параметры разработчика» >> Установите флажок «Параметры отладки» [Debugging Option]).
Шаг 4) Откройте командную строку и перейдите в каталог \platform-tools\ вашего Android SDK (например, D:\adt-bundle-windows-x86_64-20130514\sdk\platform-tools).
Шаг 5) Запустите команду adb devices. Подключенное устройство можно увидеть в списке в окне командной строки. (В CMD наберите >adb devices — эта команда выведет список подключенных экземпляров эмулятора. Например: adb –s emulator-5554 install <Location of .apk file>)

Шаг 6) Запустите команду adb start-server. Она запустит сервер ADB, который будет использоваться Appium для отправки команд на ваше Android-устройство.
Шаг 7) Теперь перейдите в каталог Appium в системе и запустите Appium.exe.
Шаг 8) Не меняйте IP-адрес или номер порта, нажмите кнопку запуска. Ваша консоль Appium начинается с адреса 127.0.0.1:4723, как показано ниже.

Шаг 9) Нажмите кнопку «Пуск», сервер Appium запустится в вашей системе.
Тестовый пример APPIUM для нативного приложения Android (калькулятор)
Шаг 1) Загрузите плагин ADT eclipse или загрузите ADT в комплекте отдельно здесь.
Шаг 2) Откройте Eclipse и создайте новый проект >> Пакет >> Класс (a new Project >> Package >> Class).
Шаг 3) Импортируйте библиотеку Selenium и Testng в этот новый проект.
Шаг 4) Теперь создайте небольшую тестовую программу для «Calculator.app», чтобы суммировать два числа.
package src_Appium; import java.net.MalformedURLException; import java.net.URL; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; //import org.openqa.selenium.remote.CapabilityType; import org.openqa.selenium.remote.DesiredCapabilities; import org.openqa.selenium.remote.RemoteWebDriver; import org.testng.annotations.*; public class Calculator { WebDriver driver; @BeforeClass public void setUp() throws MalformedURLException{ //Set up desired capabilities and pass the Android app-activity and app-package to Appium DesiredCapabilities capabilities = new DesiredCapabilities(); capabilities.setCapability("BROWSER_NAME", "Android"); capabilities.setCapability("VERSION", "4.4.2"); capabilities.setCapability("deviceName","Emulator"); capabilities.setCapability("platformName","Android"); capabilities.setCapability("appPackage", "com.android.calculator2"); // This package name of your app (you can get it from apk info app) capabilities.setCapability("appActivity","com.android.calculator2.Calculator"); // This is Launcher activity of your app (you can get it from apk info app) //Create RemoteWebDriver instance and connect to the Appium server //It will launch the Calculator App in Android Device using the configurations specified in Desired Capabilities driver = new RemoteWebDriver(new URL("https://127.0.0.1:4723/wd/hub"), capabilities); } @Test public void testCal() throws Exception { //locate the Text on the calculator by using By.name() WebElement two=driver.findElement(By.name("2")); two.click(); WebElement plus=driver.findElement(By.name("+")); plus.click(); WebElement four=driver.findElement(By.name("4")); four.click(); WebElement equalTo=driver.findElement(By.name("=")); equalTo.click(); //locate the edit box of the calculator by using By.tagName() WebElement results=driver.findElement(By.tagName("EditText")); //Check the calculated value on the edit box assert results.getText().equals("6"):"Actual value is : "+results.getText()+" did not match with expected value: 6"; } @AfterClass public void teardown(){ //close the app driver.quit(); } }
Сервер Appium и эмулятор Android из «AVD Manager» и нажмите «Run» >> TestNG. Вышеупомянутая программа запустит Calculator.app на выбранном эмуляторе, и результат отобразится в консоли Eclipse с использованием среды TestNG.
Ограничения использования APPIUM
-
Appium не поддерживает тестирование версии Android ниже 4.2.
-
Ограниченная поддержка тестирования гибридных приложений, например: невозможно протестировать действие переключения приложения с веб-приложения на нативное и наоборот.
-
Нет поддержки запуска Appium Inspector в Microsoft Windows.
Распространенные ошибки и шаги по устранению неполадок в Appium
|
Ошибка |
Действия по устранению ошибок |
|
Ошибка: Требуются следующие параметры, но они не были даны: имя устройства, имя платформы |
Добавьте нужные параметры: имя устройства, имя платформы в сценарии APPIUM. например: |
|
Ошибка: Не удалось найти adb. Задайте для переменной среды ANDROID_HOME путь к корневому каталогу Android SDK. |
Вероятно, необходимо указать путь к корневому каталогу SDK в системных настройках [Environment Variables] в поле «Path». |
|
error: org.openqa.selenium.SessionNotCreatedException: не удалось создать новый сеанс. |
Необходимо указать правильный путь к приложению и перезапустить сервер Appium. |
|
Как найти элемент DOM или XPath в мобильном приложении? |
Используйте UIAutomatorviewer, чтобы найти элемент DOM для приложения Android. |
Приглашаем всех желающих на открытое занятие «Install Selenoid cluster». На этом открытом уроке рассмотрим разворачивание Selenoid кластера с использованием Docker и разберем, как организовать балансировку нагрузки между Selenoid инстансами. Регистрация — по ссылке.
ссылка на оригинал статьи https://habr.com/ru/company/otus/blog/682268/
Добавить комментарий