Appium Inspector

Что такое Appium Inspector и как он работает

Это инструмент с графическим интерфейсом пользователя (GUI), который позволяет автоматизировать процесс проверки, тестирования и отладки мобильных приложений с помощью Appium.

Он работает на сервере Appium, который является главным инструментом автоматизированного тестирования мобильных приложений

Appium Inspector особенно полезен при поиске локаторов элементов для создания и отладки скриптов в Appium.

Он подключается к Appium-серверу и выступает в качестве визуального интерфейса для работы с интерфейсом приложения, на реальном девайсе или эмуляторе, с помощью point-and-click действий

Appium Inspector позволяет исследовать интерфейс, искать элементы и свойства, а также генерировать тестовые сценарии на выбранном языке. Для начала работы в Inspector не нужно знание языков программирования. Просто наводите, кликаете и делаете свайп.

Как работает Appium Inspector:

  1. Запускаем сервер Appium.
  2. Откройте Appium Inspector и подключите его к серверу.
  3. Выберите мобильное устройство или эмулятор.
  4. Inspector отобразит экран мобильного устройства или эмулятора.
  5. С помощью Inspector можно нажимать на элементы, проверять их расположение и делать скриншоты.

Функциональность Appium Inspector

Во первых, это бесплатный инструмент с открытым кодом. Также: 

  • Визуальный интерфейс drag-and-drop — упрощает создание и коррекцию сценариев без знания ЯП. Можно вручную выделять элементы, вводить тестовые данные и строить сквозные тестовые потоки.
  • Кроссплатформенность — тесты, созданные с помощью Appium Inspector, будут работать как на Android, так и на iOS, поэтому можно исследовать приложения на нескольких платформах с помощью одного набора тестов.
  • Большое сообщество — Часть экосистемы Appium, пользуется поддержкой крупного сообщества разработчиков, можно получить советы и лучшие практики.
  • Реальные девайсы или эмуляторы — Inspector поддерживает тестирование как на физических мобильных устройствах, так и на эмуляторах и симуляторах устройств, подобных тем, что есть в Android Studio и Xcode. У вас есть варианты запуска автотестов.
  • Инструменты отладки — В интерфейсе Inspector есть инструменты для дебага автотестов. Можно прерывать выполнение, проходить ноды и инспектировать значения.
  • Поддержка расширенных возможностей — Несмотря на простоту интерфейса, Inspector предоставляет доступ к таким мощным функциям, как поддержка page object, data-driven тестирование и многих языков программирования.

Интерфейс

Прежде чем приступить к задачам в Appium Inspector, необходимо ознакомиться с его интерфейсом. 

Интерфейс Inspector состоит из нескольких частей:

  • Панель управления записью и воспроизведением: Начать и остановить запись тестов, воспроизвести их.
  • Редактор селекторов: Просмотр и изменение селекторов для поиска элементов на экране.
  • Редактор тестов: Здесь отображается фактический код теста (в формате Selenium).
  • Устройство: Что отображается на экране устройства, и взаимодействие с ним.

Пример — калькулятор (Windows/C#)

Прежде чем приступить, убедитесь, что сделано следующее:

  • Appium Desktop Inspector: Загрузите последнюю стабильную версию для Windows со страницы Appium Desktop Inspector на GitHub и установите ее. Также в окне командной строки введите следующую команду:

npm install -g appium

  • Windows-приложение: Приложение, которое будем тестировать (для простоты — на платформе Windows).

В нашем случае будем использовать простое приложение-калькулятор на шаблоне Windows Forms из этого репозитория.

  • Среда разработки C#: Visual Studio для запуска приложения.
  • Что нужно знать: C# и базовое знакомство с Appium (здесь большой гайд).

Установка Desktop Inspector

  1. Загружаем инсталлятор (по ссылке выше).
  2. Запускаем его. Если появится предупреждение о безопасности, все равно нажимаем Запустить (Run anyway).
  3. Проходим по шагам установки.
  4. Завершаем установку кнопкой Finish. Inspector автоматически запустится.

Приступаем

Desktop Inspector открыт и запущен, теперь нужно подключить его к приложению-калькулятору (которое открыто в Visual Studio).

Мы будем инспектировать элементы, которые нужно протестировать (в данном случае это будут операции сложения, вычитания и умножения на калькуляторе). 

Наша фокус сейчас: ID, имена и XPath кнопок.

Интерфейс Inspector будет выглядеть следующим образом:

Теперь мы готовы записать наш первый тест, взаимодействуя с интерфейсом калькулятора. Мы будем нажимать на элементы, вводить текст, скроллить и так далее.

Каждое наше действие записывается десктопным клиентом Inspector. При запуске его драйвер для Windows выглядит следующим образом:

Написание простого теста

Внутри нашего файла Program.cs мы напишем небольшой фрагмент кода на C#, чтобы протестировать функцию сложения, когда пользователь нажимает 1 + 2, результат должен быть 3.

Это произойдет после инициализации Appium WebDriver, который будет использовать Appium Inspector. Весь сценарий будет выглядеть следующим образом:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using System.Windows.Forms;

using OpenQA.Selenium.Appium;
using OpenQA.Selenium.Appium.Windows;

namespace Win_CalcUI
{
    static class Program
    {
        /// <summary>
        /// The main entry point for the application.
        /// </summary>
        [STAThread]
        static void Main()
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            Application.Run(new CalculatorUI());

            // Define Appium Options
            var appiumOptions = new AppiumOptions();
            appiumOptions.AddAdditionalCapability("app","Microsoft.WindowsCalculator_8wekyb3d8bbwe!App");
            appiumOptions.AddAdditionalCapability("platformName", "Windows");
            // Create Appium Windows Driver
            WindowsDriver<WindowsElement> driver = new WindowsDriver<WindowsElement>(new Uri("http://127.0.0.1:4723"), appiumOptions);

                // Find and Click Number Buttons
                WindowsElement btn1 = driver.FindElementByAccessibilityId("num1Button");
                WindowsElement btn2 = driver.FindElementByAccessibilityId("num2Button");
                WindowsElement btnPlus = driver.FindElementByAccessibilityId("plusButton");
                WindowsElement btnEquals = driver.FindElementByAccessibilityId("equalButton");
                btn1.Click();
                btnPlus.Click();
                btn2.Click();
                btnEquals.Click();

            if (driver == null)
            {
                Console.WriteLine("App not started.");
                return;
            }
            //Taking test screenshots 
            driver.Manage().Window.Maximize();
            var screenShot = driver.GetScreenshot();
            screenShot.SaveAsFile(
            $".\\Screenshot{DateTime.Now.ToString("ddMMyyyyhhmmss")}.png",
            OpenQA.Selenium.ScreenshotImageFormat.Png);

            // Find and Verify Result
            WindowsElement resultText = driver.FindElementByAccessibilityId("CalculatorResults");
                string actualResult = resultText.Text;
                string expectedResult = "Display is 3";

                if (actualResult == expectedResult)
                {
                    Console.WriteLine("Test Passed!");
                }
                else
                {
                    Console.WriteLine("Test Failed!");
                }
         
              driver.Quit();

            }
        }
}

Результаты успешного теста выглядят следующим образом (если была нажата кнопка калькулятора, обозначающая цифру 3):

Как видим, тест прошел.

Если мы нажмем другие кнопки, тест не пройдет. В окне вывода появится сообщение «Test Failed».

Советы по отладке тестов

  • Посмотреть логи: Откройте панель «Логи», они журналы дают представление об ошибках, указывая такие детали, как номера строк с ошибками и трассировки.
  • Анализ элементов: Чтобы найти причину проблемы, используйте панель «Элементы» для просмотра элементов в приложении.
  • Просмотр записи: Посмотреть и воспроизвести запись, чтобы найти точку сбоя.

Ограничения Inspector

Несмотря на то, что Inspector весьма полезен и удобен, есть некоторые ограничения (как и у любого другого инструмента).

1. Основное ограничение: зависимость от Appium

Inspector ограничен проверкой приложений, совместимых с Appium. Это означает, что его нельзя использовать для проверки приложений, написанных не на нативном коде или не использующих протокол WebDriver. Если Appium не может работать с устройством, приложением или эмулятором, Inspector также не будет с ним работать. Для более широкого охвата приложений есть Xcode, Android Studio или Sauce Labs Inspector.

2. Не поддерживает тестирование гибридных приложений

В настоящее время Appium Inspector работает только с мобильными веб- и нативными приложениями. Он не поддерживает другие типы приложений, такие как гибридные, Ionic или React Native. Поэтому, если нужно протестировать эти типы приложений, Inspector не подойдет.

3. Ограниченный локально

Appium Inspector требует ручной установки на локальной машине каждого тестировщика — в отличие от других инструментов, таких как Sauce Lab’s Inspector, которые используют облачное тестирование без локальной установки. Исключительно локальная установка может замедлить процесс тестирования и привести к торможению внутри команд тестирования.

4.Только одно приложение одновременно

Учитывая, что Inspector позволяет работать только с одним приложением одновременно, это ограничивает автоматизацию рабочих процессов, связанных с переключением между приложениями. В отличие от Appium, такие инструменты, как Perfecto и TestComplete, обеспечивают тестирование в нескольких приложениях, позволяя валидировать взаимосвязанные рабочие процессы (например, перевод средств между различными приложениями).

Лучшие практики

Чтобы получить максимальную отдачу от этого инструмента:

Начните с тест-плана

Прежде чем работать с Inspector, подготовьте надежный план тестирования, в котором будут указаны объем и цели тестирования. Уточните, какие функции приложения вы хотите протестировать. Это сделает вашу работу более целенаправленной и эффективной.

Документируйте инспекцию и делайте скриншоты

Inspector позволяет делать скриншоты во время записи и воспроизведения теста. Вы также можете фиксировать значения локаторов, атрибуты, наблюдения и все остальное, что может пригодиться при написании тестов. Воспользуйтесь этой возможностью, чтобы визуально проверить состояние приложения в процессе тестирования. Документация и скриншоты пригодятся при отладке упавших тестов и повышении тестового покрытия.

Динамические локаторы

При создании локаторов для поиска элементов используйте атрибуты, которые с наименьшей вероятностью будут меняться, например accessibility ID, XPath или имя класса. Избегайте использования таких атрибутов, как текстовое содержимое, индекс или CSS-селекторы, которые могут легко меняться и ломать ваши тесты.

Используйте Page Object Model

Для больших тестовых наборов лучше всего организовать тесты с помощью объектной модели страницы (Page Object Model). Это позволяет соблюдать DRY-принцип (Don’t Repeat Yourself), храня локаторы и методы страниц в вашем приложении в классах объектов страниц. Затем тесты взаимодействуют с этими объектами страниц.

Моделируйте взаимодействие с пользователем

Взаимодействуйте с как можно большим количеством элементов. Нажимайте кнопки, вводите текст, пролистывайте страницу. Это поможет убедиться в правильности выбора локаторов, а также даст представление о том, как элементы функционируют и соотносятся друг с другом.

Видео по теме

Источник


Какой была ваша первая зарплата в QA и как вы искали первую работу?

Мега обсуждение в нашем телеграм-канале о поиске первой работы. Обмен опытом и мнения.

Подписаться
Уведомить о
guest

0 комментариев
Межтекстовые Отзывы
Посмотреть все комментарии

Мы в Telegram

Наш официальный канал
Полезные материалы и тесты
Готовимся к собеседованию
Project- и Product-менеджмент

? Популярное

? Telegram-обсуждения

Наши подписчики обсуждают, как искали первую работу в QA. Некоторые ищут ее прямо сейчас.
Наши подписчики рассказывают о том, как не бояться задавать тупые вопросы и чувствовать себя уверенно в новой команде.
Обсуждаем, куда лучше податься - в менеджмент или по технической ветке?
Говорим о конфликтных ситуациях в команде и о том, как их избежать
$1100*
медианная зарплата в QA в июне 2023

*по результатам опроса QA-инженеров в нашем телеграм-канале

Собеседование

19%*
IT-специалистов переехало или приняло решение о переезде из России по состоянию на конец марта 2022

*по результатам опроса в нашем телеграм-канале

live

Обсуждают сейчас