Appium — это кроссплатформенный инструмент с открытым исходным кодом, который помогает автоматизировать тестирование мобильных приложений для Android и iOS.
Appium поддерживает мобильные, нативные и гибридные приложения.
Существует три типа мобильных приложений:
- Нативные. Их создают с помощью комплекта средств разработки (SDK) для iOS, Android или Windows. Для каждой платформы нужен свой комплект.
- Гибридные. Веб-приложения, разработанные с использованием HTML и CSS + обертка нативного приложения поверх компонента UIWebView для iOS-приложений и WebView — для Android.
- Мобильные веб-приложения. Приложения, доступ к которым предоставляют мобильные браузеры.
Содержание
- Почему Appium стал популярным инструментом для автоматизации мобильных приложений?
- Настройка Appium на Windows
- Подготовка мобильного устройства для автоматизации в Appium
- Начало автоматизации Android-приложения с помощью Appium
- Как обнаружить элемент, используя UIAutomatorViewer?
- Первая программа для автоматизации приложения на 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, как показано на скриншоте:
Шаг #4: Теперь понадобится установить Appium для Windows.
Шаг #5: Установите Node JS отсюда: Node JS download
Шаг #6: Установите путь для ANDROID_HOME и для JAVA_HOME
Уточните путь для инструментов в Android SDK.
Эти папки присутствуют в adt-bundle-windows-x86_64-20140702\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» из меню на следующем экране.
Более детальные инструкции — по ссылке.
5) Скачайте и установите USB-драйверы для тестового устройства на ПК.
6) В терминале впишите «adb devices»
C:\Users\NEERAJ>adb devices
Список подключенных устройств
TA93305G0L device
Это высветит список устройств, которые подключены к системе. В качестве примера автоматизации будет использован App Contact Manager.apk. Установите на устройство Contact Manager.apk.
Начало автоматизации Android-приложения с помощью Appium
Запустите appium.exe на ПК.
Appium должен быть запущен и соответствовать следующим условиям.
Примечание: не меняйте название устройства в настройках Android. При запуске Appium Server, адрес сервера, а также адрес порта будут установлены по умолчанию. Адрес порта по умолчанию будет 4723.
В настройках Android пользователю необходимо установить путь APK, где расположен APK, проверить путь приложения, пакет и запустить Activity.
Подключите своей андроидофон к ПК и включите режим отладки USB.
Откройте командную строку.
Впишите команду adb logcat.
Откройте приложение на своем андроидофоне. Сразу же нажмите CTRL + C в командной строке.
com.example.android.contactmanager — название пакета и com.example.android.contactmanager.ContactManager — это название активности приложения Contact Manager.
На скриншоте выше заполнена вся необходимая информация в 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
6) На скриншоте устройства проверьте, что приложение и UIAutomaterViewer запущены.
7) Эта опция позволяет сделать скриншот приложения с полной информацией обо всех элементах, которые видны в приложении.
Кликните кнопку Add Contact (добавить контакт) для тестового сценария.
В качестве указателя может использоваться By.name(“Add Contact”)
Указатель 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, во многом за счет простоты использования.