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

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

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

  • Нативные. Их создают с помощью комплекта средств разработки (SDK) для iOS, Android или Windows. Для каждой платформы нужен свой комплект.
  • Гибридные. Веб-приложения, разработанные с использованием HTML и CSS + обертка нативного приложения поверх компонента UIWebView для iOS-приложений и WebView — для Android.
  • Мобильные веб-приложения. Приложения, доступ к которым предоставляют мобильные браузеры.

appium инструмент

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

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

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

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

  • На вашем ПК должны присутствовать: JDK, Appium Server, Eclipse, Android SDK.
  • Apk. Мобильное приложение для автоматизации. В данном случае речь идет о ContactManager.apk
  • Устройство для теста: в данном случае — Moto G.
  • Jar: Java-client и Selenium.

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

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

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

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

Чтобы обновить API, откройте Eclipse -> кликните Window в Eclipse Menu, затем -> выберите Android SDK manager

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

appium на windows

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

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

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

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

appium настройка

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

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

android sdk инструменты

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

C:\Program Files\nodejs\;%ANDROID_HOME%\tools;%ANDROID_HOME%\platform-tools

Шаг #7: Доступ к adb

Нажмите комбинацию клавиш 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» из меню на следующем экране.

appium для android

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

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

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

C:\Users\NEERAJ>adb devices

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

TA93305G0L      device

appium автоматизация приложений

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

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

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

appium приложения для андроид

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

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

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

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

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

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

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

appium - тестирование по

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

appium как настроить

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

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

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

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

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

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

C:\Users\NEERAJ>adb devices

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

TA93305G0L      device

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

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

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

adt-bundle-windows-x86_64-20140702\sdk\tools

appium настройки для работы

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

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

appium руководство

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

appium - подробное руководство

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

appium - как пользоваться

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

аппиум подробное руководство

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

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

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

1 | importjava.io.File;

2 | importjava.net.MalformedURLException;

3 | import java.net.URL;

4 | importjava.util.List;

5 |

6 | importorg.openqa.selenium.By;

7 | importorg.openqa.selenium.WebDriver;

8 | importorg.openqa.selenium.WebElement;

9 | importorg.openqa.selenium.remote.CapabilityType;

10 | importorg.openqa.selenium.remote.DesiredCapabilities;

11 | importorg.openqa.selenium.remote.RemoteWebDriver;

12 | importorg.testng.annotations.*;

13 |

14 | public class appium {

15 |

16 | WebDriver driver;

17 |

18 | @BeforeClass

19 | public void setUp() throws Exception {

20 |

21 | //location of the app

22 | File app = new File(“C:\\Users\\NEERAJ\\Downloads”, “ContactManager.apk”);

23 |

24 | //To create an object of Desired Capabilities

25 | DesiredCapabilities capability = newDesiredCapabilities();

26 | //OS Name

27 | capability.setCapability(“device”,”Android”);

28 | capability.setCapability(CapabilityType.BROWSER_NAME, “”);

29 | //Mobile OS version. In My case its running on Android 4.2

30 | capability.setCapability(CapabilityType.VERSION, “4.2”);

31 | capability.setCapability(“app”, app.getAbsolutePath());

32 | //To Setup the device name

33 | capability.setCapability(“deviceName”,”Moto G”);

34 | capability.setCapability(“platformName”,”Android”);

35 | //set the package name of the app

36 | capability.setCapability(“app-package”, “com.example.android.contactmanager-1”);

37 | //set the Launcher activity name of the app

38 | capability.setCapability(“app-activity”, “.ContactManager”);

39 | //driver object with new Url and Capabilities

40 | driver = new RemoteWebDriver(newURL(“http://127.0.0.1:4723/wd/hub”), capability);

41 | }

42 |

43 | @Test

44 | public void testApp() throws MalformedURLException{

45 |

46 | System.out.println(“App launched”);

47 | // locate Add Contact button and click it

48 | WebElementaddContactButton = driver.findElement(By.name(“Add Contact”));

49 | addContactButton.click();

50 | //locate input fields and type name and email for a new contact and save it

51 | List<WebElement>textFields = driver.findElements(By.className(“android.widget.EditText”));

52 | textFields.get(0).sendKeys(“Neeraj Test”);

53 | textFields.get(1).sendKeys(“9999999999”);

54 | textFields.get(2).sendKeys(“testemail@domain.com”);

55 | driver.findElement(By.name(“Save”)).click();

56 | //insert assertions here

57 | }

58 | }

Итог

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