Вы когда-нибудь разрабатывали приложение для Android и публиковали его в Google Play? Что вы будете делать, если получите отзыв пользователя вроде -
Когда вы публикуете приложение в Google Play, оно должно быть хорошо протестировано, чтобы избежать потенциальных ошибок. Перед публикацией приложения необходимо выполнить множество тестовых сценариев. Чтобы сэкономить усилия на тестировании, вам понадобится инструмент тестирования. Один из лучших инструментов для тестирования Android-приложений - Selendroid.
- Что такое Selendroid?
- Зачем нам Selendroid?
- Selendroid Архитектура
- Начало работы с Selendroid
- Настройка среды Selendroid
- Как запустить Selendroid
- Базовая команда Selendroid
- Начните свой первый тест с Selendroid
Что такое Selendroid?
Selendroid - это среда автоматизации тестирования для мобильных приложений разных типов: нативных и гибридных приложений для Android и мобильного Интернета.
Вы можете писать тесты, используя клиентские API Selenium 2. Поскольку Selendroid по-прежнему повторно использует существующую инфраструктуру Selenium для Интернета
Selendroid - мощный инструмент для тестирования. Его можно использовать на эмуляторах и реальных устройствах.
Зачем нам Selendroid?
Selendroid - отличный инструмент для тестирования. Но вы все равно можете сомневаться в его полезности.
В этом разделе представлены важные функции Selendroid, чтобы ответить на вопрос, зачем вам нужен Selendroid.
- Вы можете протестировать тестируемое приложение с помощью Selendroid без каких-либо изменений приложения. Вам просто нужен двоичный файл (APK), установленный на компьютере. Чтобы установить двоичный файл на устройство, тестовое приложение и мобильное приложение должны быть подписаны одним и тем же ключом подписи.
- Тестовое приложение Selendroid может одновременно взаимодействовать с несколькими устройствами или симуляторами. Это большое преимущество Selendroid. Таким образом, вы можете протестировать свое приложение на различных устройствах Android, чтобы проверить совместимость.
- Selendroid может имитировать действия человека и пользователя в приложении, такие как касание, смахивание, перетаскивание на устройствах.
- Вы можете менять аппаратные устройства (подключать и отключать) во время тестирования без перезапуска или остановки теста. Selendroid автоматически распознает новые устройства
- В соответствии с более поздней версией Android API, Selendroid также поддерживает новый Android API (от API 10 до API 19).
- Selendroid также имеет встроенный инструмент инспектора, который поможет вам идентифицировать элемент пользовательского интерфейса тестируемого приложения. Например, кнопка ID, текстовое поле, текстовое представление…
Selendroid Архитектура
Selendroid основан на инструментальной платформе Android. Тесты Selendroid написаны на основе клиентского API драйвера Selenium Web, поэтому он поддерживает полную интеграцию с текущими платформами Selenium.
На следующем рисунке описана архитектура Selendroid.
Selendroid состоит из 4 основных компонентов:
- Клиент веб-драйвера - клиентская библиотека Java на основе Selenium. Эта библиотека должна быть установлена на компьютере (который используется для разработки тестовых случаев).
- Selendroid-Server - сервер, который запускается в тестируемом приложении на устройстве Android или симуляторе. Это основные компоненты архитектуры Selendroid.
- Android Driver-App - встроенный драйвер Android, приложение Web View для тестирования мобильного Интернета.
- Selendroid-Standalone - этот компонент используется для установки сервера Selendroid и тестируемого приложения (AUT).
Начало работы с Selendroid
Вы уже знаете о важности Selendroid. Теперь займемся Selendroid.
Перед первым тестом с Selendroid необходимо выполнить 3 шага.
Настройка среды Selendroid
Selendroid может работать в Windows, Linux и Mac OS. В этом руководстве мы настроим Selendroid в ОС Windows.
Перед использованием Selendroid вам необходимо сначала установить следующий пакет
- Java SDK (минимум 1.6)
Вы должны принять лицензионное соглашение и загрузить установщик java (выберите базу x64 или x86 в вашей ОС)
Загрузите и установите Java SDK как обычное программное обеспечение
- Последняя версия Android SDK
- На вашем компьютере должно быть хотя бы одно виртуальное устройство Android (AVD) или реальное устройство Android, подключенное к компьютеру.
- Selendroid Standalone с зависимостями, клиент Selendroid и клиент Selenium
- Программное обеспечение Eclipse
- Настройте JAVA_HOME и ANDROID_HOME
Шаг 1) В окне щелкните правой кнопкой мыши Компьютер -> Свойства -> Расширенные настройки системы.
Шаг 2) Откроется окно «Свойства системы», выберите вкладку «Дополнительно» -> « Переменные среды».
Шаг 3) В открывшемся окне Environment нажмите New -> Введите переменную ANDROID_HOME, как показано ниже.
Значение переменной - это путь к уже установленному android-sdks.
Найдите системную переменную Path -> Edit -> Добавьте следующую строку после текущей строки
Подобно ANDROID_HOME, добавьте новую переменную JAVA_HOME со значением, как показано ниже.
Значение - это путь к вашей установке Java JDK.
Шаг 4) Перезагрузите компьютер -> Готово
Как запустить Selendroid
Шаг 1) Тестирование приложения
Вы можете использовать существующее тестовое приложение Selendroid, чтобы проверить, как работает Selendroid (ссылка на образец тестируемого приложения)
После завершения загрузки скопируйте этот APK и указанный выше файл jar-файла Selendroid Standalone в папку с именем " Guru99".
Шаг 2) Запустите Selendroid
Откройте терминал в Windows и перейдите в папку Guru99, созданную на шаге 1.
Выполните следующую команду
Результат будет отображаться следующим образом
После выполнения этой команды запускается автономный HTTP-сервер Selendroid! Номер порта по умолчанию для этого сервера - 4444. Все аппаратные устройства, а также виртуальные устройства Android будут сканироваться и распознаваться автоматически. Selendroid определит целевую версию Android и размер экрана устройства.
Чтобы проверить целевую версию Android, а также информацию об устройстве, вы можете запустить в браузере следующий URL-адрес:
http: // localhost: 4444 / wd / hub / status.
Базовая команда Selendroid
Этот раздел знакомит вас с базовой командной строкой Selendroid-Standalone. Вы можете использовать их для настройки тестовой среды Selendroid.
- Настройка порта Selendroid
Порт по умолчанию для Selendroid - 4444. Но вы можете изменить его на другой порт, добавив параметр в команду для запуска Selendroid.
Параметр: -port [номер порта]
Например:
В приведенной выше команде 5555 - это новый порт.
Таким образом, URL-адрес для проверки целевой версии Android изменен на: http: // localhost: 5555 / wd / hub / status.
- Укажите местоположение тестируемого приложения (двоичный файл APK). Selendroid часто требовал абсолютного пути к этому файлу
Параметр: -app [путь к файлу]
Например:
В приведенной выше команде Selendroid автоматически находит базу двоичных файлов в «C: \ Guru99App.apk», чтобы получить информацию о тестируемом приложении.
Проверьте URL-адрес http: // localhost: 4444 / wd / hub / status, вы увидите эту информацию.
- Измените порт, который Selendroid использует для связи с сервером инструментовки. Selendroid использует порт 8080 по умолчанию
Параметр: -selendroidServerPort [номер порта]
Пример
Порт теперь изменен на 9000
- Измените тайм-аут для запуска эмуляторов. Единица измерения - миллисекунды.
Параметр: -timeoutEmulatorStart
По умолчанию Selendroid будет ждать 300 000 миллисекунд до запуска эмулятора. Вы можете перейти на новый тайм-аут (200000 мс) командой
По истечении этого времени наш срок истек, если эмулятор не может запуститься, Selendroid выдаст ошибку исключения (ошибка произошла при поиске устройств / эмуляторов.), А затем прекратит работу.
- Когда вы запустите команду Selendroid на терминале, вы увидите распечатанный журнал на экране. Вы можете изменить тип журнала, который вы видите, добавив следующий параметр
Параметр: -logLevel [тип журнала]
Значения уровня журнала: ERROR, WARNING, INFO, DEBUG и VERBOSE. По умолчанию: ОШИБКА.
Например, настройте Selendroid на печать только журнала WARNING, вы можете использовать эту команду
Selendroid печатает только журнал ПРЕДУПРЕЖДЕНИЙ.
Начните свой первый тест с Selendroid
Этот раздел представляет собой пошаговое руководство по созданию вашего первого тестового скрипта с помощью Selendroid.
Предположим, у нас есть Android-приложение под тестовым названием Guru99App. Приложение включает текстовое поле и название кнопки «Показать текст».
СКАЧАТЬ APK ЗДЕСЬ
Нам нужно выполнить следующий тестовый пример с помощью Selendroid
Тестовые кейсы |
Условие |
Ожидаемый результат: |
|
Доступен бинарный файл тестируемого приложения. Устройство подключено к ПК |
Текст «Показать здесь текст» заменен на текст какой пользователь вводит в текстовое поле |
Шаг 1) Создайте проект Java в Eclipse
Шаг 2) Добавьте файл jar selenium и Selendroid в среду eclipse
Щелкните правой кнопкой мыши Guru99Test Project -> Путь сборки -> Добавить внешние архивы.
Перейдите в папку, в которой хранятся файлы jar.
Нужно добавить 3 файла jar
- selendroid-client-0.10.0.jar: клиентская библиотека Java Selendroid
- selendroid-standalone-0.11.0-with-dependencies: автономная серверная библиотека Selendroid
- selenium-java-2.40.0.jar: библиотека веб-драйверов Selenium
Выбрать все -> Выбрать "Открыть", чтобы добавить в проект файл jar.
Шаг 3) после добавления указанной выше библиотеки эти библиотеки будут добавлены в справочные библиотеки тестового проекта. Тестировщик может использовать API этих библиотек для разработки тестовой программы.
Создайте пакет com.guru.test и добавьте файл Java "Guru99Test.java", как показано ниже.
Щелкните правой кнопкой мыши Guru99Test -> Создать -> Пакет
Введите com.guru.test в поле «Имя» в диалоговом окне «Новый пакет Java» и нажмите «Готово».
Eclipse создаст такие папки и подпапки списков в структуре исходного кода.
Шаг 4) Установите TestNG для Eclipse
В Eclipse, Справка -> Установить новое программное обеспечение, в диалоговом окне установки щелкните Добавить и введите следующее
- Имя: TestNG
- Расположение: http://selendroid.io/
Нажмите OK -> Далее, чтобы установить TestNG.
Шаг 5) Скопируйте Guru99App.apk в папку Test App
Шаг 6) Получите идентификатор тестируемого приложения.
Предположим, у нас есть APK-файл с именем Guru99App.apk. Следуйте шагу, описанному в предыдущем разделе, выполните команду на терминале
Открыть следующую ссылку в браузере
http: // localhost: 4444 / wd / hub / status.
Отображается информация об устройстве, скопируйте значение appId "com.guru99app: 1.0"
Шаг 7) Откройте файл Guru99Test.java (в примере кода) и измените его следующим образом.
Чтобы создать новый тестовый сеанс с Selendroid, вы должны предоставить идентификатор приложения в формате: com.guru99app: 1.0. Этот идентификатор приложения можно определить на шаге 6. Если вы не установите идентификатор приложения, соответствующий устройству Android, тестовый сеанс выдаст ошибку и не запустится.
После инициализации найденного устройства Selendroid создает настроенный selendroid-сервер и устанавливает на него сервер Selendroid.
Selendroid также устанавливает тестируемое приложение и запускает селендроид-сервер на устройстве.
После успешной инициализации тестового сеанса тестовая команда запускается на устройстве. (Например, для ввода текста нажмите кнопку
…). Если тест добавляет тестовый сеанс, эмулятор автоматически останавливается.Шаг 8) Запустите новую тестовую сессию
Запустите сервер Selendroid, используя следующую команду на терминале, как на шаге 6
После запуска сервера Selendroid откройте образец тестового проекта Guru99test в Eclipse, установите точку останова в строке 77 в файле Guru99Test.java, дважды щелкнув строку 77 -> появится точка, как показано ниже.
Запустите тестовый сеанс, щелкнув правой кнопкой мыши проект Guru99Test -> Отладка как -> Testng Test.
Тестовая сессия начнется, как показано ниже
Шаг 9) Получите идентификатор элемента графического интерфейса тестируемого приложения.
После успешного запуска тестового сеанса откройте браузер, перейдите по URL-адресу http: // localhost: 4444 / Inspector.
Вы увидите, что тестируемое приложение запущено, как показано ниже.
Используйте наведение мыши на каждый элемент пользовательского интерфейса AUT (кнопка, текстовое поле, текстовая метка), идентификатор каждого элемента будет выделен на правой панели.
После этого шага вы можете получить идентификатор каждого указанного выше элемента пользовательского интерфейса.
- Кнопка Показать текстовый идентификатор: " btnShow "
- Идентификатор текстового поля: " edtText "
- Идентификатор текста ярлыка: " txtView "
Эти идентификаторы будут использоваться на следующем шаге.
Шаг 10) Войдите в тестовую программу, как показано ниже.
Программа тестирования с использованием Selendroid включает 3 раздела.
Тест настройки:
Ниже приведен код для теста настройки, он устанавливает условия для тестового сеанса. В случае ошибки Selendroid выдаст исключение, и тестовое приложение остановится.
Код включает комментарии для объяснения каждого утверждения.
пакет com.guru.test;import io.selendroid.SelendroidCapabilities;import io.selendroid.SelendroidConfiguration;import io.selendroid.SelendroidDriver;import io.selendroid.SelendroidLauncher;import io.selendroid.device.DeviceTargetPlatform;import org.openqa.selenium.By;import org.openqa.selenium.WebDriver;import org.openqa.selenium.WebElement;import org.testng.Assert;import org.testng.annotations.AfterSuite;import org.testng.annotations.BeforeSuite;import org.testng.annotations.Test;/ *** @author Guru99 Тестовое приложение с использованием Selendroid* Тестируемое приложение: Guru99App** /общественныйclass Guru99Test {// Объявить переменную веб-драйверачастный драйвер WebDriver;/ *** Настройте среду перед тестированием* @throws Exception* /@BeforeSuiteобщественныйvoid setUp () выдает исключение {// Запускаем selendroid-standalone во время тестаКонфигурация SelendroidConfiguration = новый SelendroidConfiguration ();// Добавляем приложение selendroid-test на автономный серверconfig.addSupportedApp («Guru99App.apk»);// запускаем автономный серверSelendroidLauncher selendroidServer = новый SelendroidLauncher (config);selendroidServer.launchSelendroid ();// Создаем возможности селендроидаSelendroidCapabilities capa = new SelendroidCapabilities ();// Указываем, что нужно использовать тестовое приложение selendroidcapa.setAut ("com.guru99app: 1.0");// Указываем использование API устройства Android 19capa.setPlatformVersion (DeviceTargetPlatform.ANDROID19);// Не запрашивать симулятор, использовать реальное устройствоcapa.setEmulator (ложь);//capa.wait(10000000);// Создаем экземпляр драйвера Selendroidдрайвер = новый SelendroidDriver (capa);}
Выполнить тест
Ниже приведен код для выполнения теста. Код включает комментарии
Вот еще раз шаги теста
- Введите текст «Привет, Гуру».
- Нажмите кнопку Показать текст
- Подожди некоторое время
- Убедитесь, что приложение отображает текст при вводе пользователем в текстовое поле (например, отображение текста «Hello Guru»)
/ *** Начать выполнение тестового примера* 01. Введите текст «Selendroid» в текстовое поле.* 02. Нажмите кнопку ОК.* @throws Exception* /@Тестобщественныйvoid selendroidTest () выдает исключение {// Распечатать журналSystem.out.print («Начать выполнение теста»);// Находим текстовое поле ввода на экране// Идентификатор этого текстового поля был получен на шаге 9WebElement inputField = driver.findElement (By.id ("edtText"));// Проверяем, что текстовое поле включено, чтобы пользователь мог вводить текстAssert.assertEquals («истина», inputField.getAttribute («включен»));// Вводим текст в текстовое полеinputField.sendKeys («Привет, Гуру»);// нажимаем кнопку Показать текст// Идентификатор этой кнопки был получен на шаге 9Кнопка WebElement = driver.findElement (By.id ("btnShow"));button.click ();// Время задержки для вступления в силуThread.sleep (5000);// Находим метку "Text Show Here" на экране// Идентификатор этой метки был получен на шаге 9WebElement txtView = driver.findElement (By.id ("txtView"));// Получаем отображение текста на экранеОжидаемая строка = txtView.getText ();// Проверяем, что текст, вводимый пользователем в текстовое поле, совпадает с текстом, отображаемым на экранеAssert.assertEquals (ожидается, inputField.getText ());}
Завершить тест
Следующий код завершит тест, остановив драйвер Selendroid.
/ *** Остановите драйвер Selendroid** /@AfterSuiteобщественныйvoid tearDown () {driver.quit ();}
Вы можете увидеть подробности в образце кода, включенном в эту статью.
Шаг 10) Подключите Android-устройство к ПК через USB-кабель. Пункты для наблюдения -
- Убедитесь, что на устройстве не настроена блокировка экрана.
- Устройства должны быть подключены через USB к компьютеру, на котором работает автономный компонент selendroid.
- На устройстве должно быть установлено как минимум Android Target Version API 10.
Шаг 11) Запустите тестовое приложение: щелкните правой кнопкой мыши Guru99test -> Запуск от имени -> TestNG test.
Шаг 10) Запуск сценария выполняется следующим образом
Шаг 12) После завершения теста TestNG автоматически сгенерирует отчет о тестировании, как показано ниже.
Хорошая работа, вы прошли тест.
Резюме
Резюме
- Selendroid - очень мощный инструмент для тестирования собственного приложения Android, гибридного приложения, а также веб-приложения.
- Его можно использовать как на реальных устройствах, так и на симуляторе.
- Он также позволяет запускать тесты параллельно, выполняя тест на нескольких устройствах.
- Весь пакет Selendroid состоит из четырех компонентов:
- Клиент веб-драйвера,
- Селендроид-Сервер,
- Приложение для драйверов Android
- Selendroid-автономный
- Чтобы использовать Selendroid, вам необходимо установить Java JDK, Android SDK и Eclipse.