Что такое 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 инстансами. Регистрация — по ссылке.
