Appium Підручник для початківців

⚡ Розумний підсумок

Appium Підручник для Android та тестування мобільних додатків для iOS представляє платформу автоматизації інтерфейсу користувача з відкритим кодом, яка керує нативними, гібридними та веб-додатками на обох платформах за допомогою єдиного Selenium-сумісний API. У цьому посібнику пояснюється, як Appium роботи, кроки встановлення, інспектор, кріплення емулятора та Java Тестовий випадок з калькулятором.

  • 📱 Основне визначення: Appium це фреймворк з відкритим кодом для автоматизації мобільного інтерфейсу, який підтримує нативні, гібридні та веб-додатки Android та iOS через один API.
  • 🔌 Модель HTTP-сервера: Appium працює як HTTP-сервер Node.js, який перетворює команди WebDriver JSON на виклики автоматизації, специфічні для платформи.
  • 🧰 Стек інструментів: Необхідні передумови включають Android SDK, JDK, Eclipse, TestNG, Selenium JAR-файл сервера Appium клієнтська бібліотека та Appium Робочий стіл
  • 🔍 Інспектор та реєстратор: Appium Інспектор перевіряє ієрархії елементів та генерує шаблонні скрипти, тоді як UIAutomator Viewer — це Windows відступати.
  • Java Робочий процес тестування: Використовуйте DesiredCapabilities, RemoteWebDriver та TestNG анотації для запуску та перевірки нативних Android такі програми, як Калькулятор.

Appium Підручник для Android та тестування мобільних додатків для iOS

Що таке Appium?

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 це HTTP-сервер, написаний на Node.js платформа, яка працює з iOS та Android сеанси за допомогою протоколу зв'язку WebDriver JSON. Node.js має бути попередньо встановлений у системі перед запуском Appium сервера.
  • Коли Appium Після завантаження та встановлення на локальному комп'ютері налаштовується сервер, який надає доступ до REST API.
  • Сервер приймає запити на підключення та команди від клієнта та виконує команди на мобільному пристрої (Android або iOS).
  • Він відповідає HTTP-відповідями. Щоб виконати запити, Appium виклики до нативних фреймворків мобільної автоматизації для керування інтерфейсом застосунку:
    • Apple Instruments для iOS (Інструменти доступні лише в Xcode 3.0 або пізнішої версії з OS X версії 10.5 та пізнішої).
    • Google UIAutomator для Android Рівень API 16 або вище.
    • Selendroid та цінності Android Рівень API 15 або нижче.

Передумови для використання Appium

  1. Встановлювати Android SDK (Студія) [посилання].
  2. Встановлювати JDK (Java Набір для розробки) [посилання].
  3. Встановлювати Eclipse [посилання].
  4. Встановлювати TestNG та цінності Eclipse [посилання].
  5. Встановлювати Selenium Сервер JAR [посилання].
  6. Appium Клієнтська бібліотека [посилання].
  7. Інформація про програму APK on Google Грати [посилання].
  8. Node.js (не обов'язково — коли Appium Сервер встановлено, Node.exe та NPM постачаються разом із поточною версією. Appium версія).
  9. Встановлювати Appium робочий стіл.

Встановлювати Appium робочий стіл

Appium Desktop — це програма з відкритим кодом інтерфейсу користувача, яка встановлює та запускає Appium Сервер. Він постачається з усіма необхідними компонентами для використання Appium Сервер, і він постачається з Інспектором для відображення базової інформації про ваші програми та Рекордером для створення шаблонного коду, який автоматизує мобільні програми.

Крок 1) Перейдіть до http://appium.io/ і натисніть «Завантажити» Appium.

Appium сторінка завантаження з офіційного сайту

Крок 2) Для Windows, виберіть файл .exe та завантажте його. Файл має розмір близько 162 МБ, і його завантаження займе певний час залежно від швидкості вашого інтернет-з’єднання.

Оберіть Windows Appium Інсталятор для робочого столу

Крок 3) Натисніть на завантажений файл .exe.

прогін Appium Виконуваний інсталятор робочого столу

Крок 4) На Windows машина, немає майстра встановлення — Appium запускається безпосередньо з .exe-файлу. Після натискання на .exe на кілька хвилин з'являється наступне сплеш-повідомлення.

Appium Анімація завантаження робочого столу

Для macOS, вам потрібно встановити .dmg.

Крок 5) Відкриється вікно «Запуск сервера». У ньому буде заповнено хост і порт за замовчуванням (які ви можете змінити) та відображено Appium версія, що використовується.

Appium Вікно запуску сервера з хостом та портом

Крок 6) Натисніть Запустити серверНовий сервер запускається на вказаному хості та порту, а вивід журналу сервера відображається в консолі.

Appium Вивід журналу сервера після запуску

Крок 7) Натисніть Нове вікно сеансу.

Відкрити нове вікно сеансу в Appium робочий стіл

Крок 8) Введіть бажані можливості та розпочніть сеанс.

Введіть бажані можливості, щоб розпочати Appium Сесія

Appium інспектор

Як Selenium інструмент запису та відтворення IDE, Appium має інспектор для запису та відтворення тестів. Він записує та відтворює поведінку нативної програми, перевіряючи DOM, та генерує тестові скрипти будь-якою підтримуваною мовою. Зверніть увагу, що Appium Інспектор не підтримується на Microsoft Windows: увімкнено Windows він запускає Appium Сервер, але не може перевірити елементи. UIAutomator Viewer є рекомендованим резервним варіантом для перевірки елементів на Windows.

Кроки для початку Appium Інспектор на комп'ютері Mac:

Крок 1) Завантажте та почніть свій Appium сервер, використовуючи IP-адресу за замовчуванням 0.0.0.0 та порт 4725.

  1. Виберіть вихідний файл або файл .app з локального диска для тестування.
  2. Поставте прапорець «Шлях до програми», щоб увімкнути кнопку «Вибрати».

Крок 2) Натисніть кнопку «Вибрати», щоб знайти та вибрати тестовий файл на локальному диску.

Appium Вибір шляху програми Inspector на Mac

Крок 3) Запустіть симулятор iOS на комп'ютері Mac.

Крок 4) Натисніть Запуск кнопка у верхньому правому куті. Це активує синій значок — натисніть на нього, щоб відкрити Appium Інспектор та симулятор із попередньо вибраним застосунком.

Запуск Appium Інспектор із симулятором iOS

Крок 5) Після запуску, Appium Інспектор показує ієрархію елементів у стовпцевому порядку. Користувач також може застосовувати такі дії, як дотик, свайп та подібні жести.

Appium Ієрархічний вигляд елементів інспектора

Крок 6) Натисніть Стоп щоб завершити запис.

Додайте Android Емулятор до Appium

Крок 1) Встановлювати Android SDK у вашій системі.

Відкрийте Панель керування > Система та безпека > Система. На лівій панелі натисніть Додаткові параметри системиУ спливаючому вікні «Властивості системи» натисніть Розширені налаштування вкладку, а потім Змінні оточення.

Відкрити змінні середовища Windows

Крок 2) У спливаючому вікні «Змінні середовища» двічі клацніть Шлях і встановіть ANDROID_HOME змінну, яка вказуватиме на каталог вашого SDK. Додайте повний шлях до папки SDK. Наприклад:

C:\User\ABC\Desktop\adt-bundled-windows-x86_64-20140321\sdk

Встановіть ANDROID_HOME у змінних середовища

Крок 3) Запустіть Android емулятор або приєднайте Android пристрій до вашої системи. Переконайтеся, що налагодження USB увімкнено на Android пристрій: перейдіть до Налаштування пристрою > Параметри розробника > увімкніть «Налагодження через USB».

Крок 4) Відкрийте командний рядок і перейдіть до Android SDK \platform-tools\ каталог (наприклад, D:\adt-bundle-windows-x86_64-20130514\sdk\platform-tools).

Крок 5) Запустіть adb devices команда. Підключений пристрій з’явиться у вікні командного рядка. Повна форма: adb -s emulator-5554 install <Location of .apk file>.

Вивід команди adb devices, що показує підключений емулятор

Крок 6) Запустіть adb start-server команда. Сервер ADB запускається, і Appium використовуватиме його для надсилання команд вашому Android пристрої.

Крок 7) перейдіть до Appium каталог у вашій системі та запустіть Appium натиснувши кнопку Appiumфайл .exe.

Крок 8) Не змінюйте IP-адресу або номер порту за замовчуванням. Натисніть Запуск. Твій Appium Консоль починається з адреси 127.0.0.1:4723, як показано нижче.

Appium консоль працює на 127.0.0.1:4723

Крок 9) Натисніть Старт, Appium Сервер зараз працює на вашій системі.

Appium Тестовий випадок для нативного користувача Android Додаток (Калькулятор)

Крок 1) Завантажте ADT Eclipse плагін або окремо завантажте пакет ADT з тут.

Крок 2) відкритий Eclipse та створіть новий Проект > Пакет > Клас.

Крок 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.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 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");
        // Package name of the app (get it from an APK info app)
        capabilities.setCapability("appActivity", "com.android.calculator2.Calculator");
        // Launcher activity of the app (get it from an APK info app)

        // Create a RemoteWebDriver instance and connect to the Appium server
        // Launches the Calculator app on the Android device using the capabilities above
        driver = new RemoteWebDriver(new URL("http://127.0.0.1:4723/wd/hub"), capabilities);
    }

    @Test
    public void testCal() throws Exception {
        // Locate the keys on the calculator 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 calculator output by tag name
        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, а потім натисніть «Виконати» > TestNGПрограма запускає Calculator.app на вибраному емуляторі, а результат відображається в Eclipse консоль за допомогою TestNG рамки.

Обмеження Appium

  1. Appium не підтримує тестування на Android версії нижче 4.2.
  2. Обмежена підтримка тестування гібридних додатків — наприклад, неможливо протестувати перемикання між веб-переглядом та нативним переглядом в будь-якому напрямку.
  3. Немає підтримки для запуску Appium Інспектор на Microsoft Windows.

Типові помилки та кроки з усунення несправностей у Appium

помилка Етапи усунення несправностей
помилка: Наступні бажані можливості є обов'язковими, але не були надані: deviceName, platformName Додайте потрібні можливості deviceName та platformName до Appium скрипт. Наприклад: capabilities.setCapability("deviceName", "Emulator"); та capabilities.setCapability("platformName", "Android");
помилка: не вдалося знайти adb. Установіть змінну середовища ANDROID_HOME за допомогою Android Шлях кореневого каталогу SDK. Встановіть кореневий каталог SDK у системних змінних середовища в розділі Шлях.
помилка: org.openqa.selenium.SessionNotCreatedException: Не вдалося створити новий сеанс. Встановіть правильний шлях до програми та перезапустіть Appium сервера.
Як знайти елемент DOM або XPath в мобільному додатку? Використовуйте UIAutomator Viewer для перевірки елементів DOM на наявність Android додатків.

Поширені запитання

Selenium автоматизує веббраузери; Appium автоматизує роботу мобільних додатків. Appium повторно використовує протокол WebDriver, тому Selenium користувачі швидко це освоюють, але Appium також запускає нативні, гібридні та мобільні веб-додатки на Android та iOS за допомогою специфічних для платформи механізмів автоматизації.

Appium підтримує кожну мову, яка має Selenium Клієнт WebDriver, включаючи Java, Python, JavaСкрипт з Node.js, Ruby, C#, PHP та Objective-C. Це робить Appium адаптований для різних інженерних команд без необхідності зміни мови.

Так. Appium тестує нативні програми, встановлені на пристрої, гібридні програми з вбудованими веб-преглядами та мобільні веб-програми, що працюють у Chrome або Safari. Єдиний API на основі WebDriver керує всіма трьома типами, що спрощує кросплатформне тестування.

Штучний інтелект покращується Appium пакети за допомогою самовідновлювальних локаторів, візуальної перевірки та кроків тестування, згенерованих штучним інтелектом. Механізми штучного інтелекту виявляють дрейф локаторів між оновленнями програм, рекомендують стабільні альтернативи XPath та автоматично класифікують нестабільні тести, щоб інженери могли зосередитися на реальних дефектах, а не на обслуговуванні.

Так. Інструменти для мобільного тестування на основі штучного інтелекту аналізують екрани додатків, визначають інтерактивні елементи та генерують Appium скрипти з бажаними можливостями та локаторами. Потім тестувальники переглядають та вдосконалюють скрипти, що зменшує шаблони та пришвидшує адаптацію для команд, які вперше працюють Appium автоматизація.

Підсумуйте цей пост за допомогою: