Selendroid Учебник для начинающих с примером
Вы когда-нибудь разрабатывали Android приложение и опубликовать его в Google Play? Что вы будете делать, если получите отзыв пользователя типа:
Когда вы публикуете приложение в Google Play, оно должно быть тщательно протестировано, чтобы избежать потенциальных ошибок. Существует множество тестовых сценариев, которые необходимо выполнить перед публикацией приложения. Чтобы сохранить Тестирование усилия, вам нужен инструмент тестирования. Один из лучших инструментов тестирования для Android приложение Selendroid.
Что такое Selendroid?
Selendroid — это платформа автоматизации тестирования для мобильных приложений разных типов: родной и гибрид Android приложение и мобильный веб.
Вы можете написать тесты, используя Selenium 2 клиентских API. Потому что Selendroid все еще повторно использует существующие Selenium инфраструктура для Интернета
Selendroid является мощным инструментом тестирования. Его можно использовать на эмуляторы и настоящий устройств
Зачем нам Selendroid?
Selendroid это отличный инструмент тестирования. Но вы все еще можете сомневаться в его полезности.
В этом разделе будут представлены важные особенности Selendroid ответить на вопрос, зачем вам это нужно Selendroid.
- Вы можете протестировать тестируемое приложение, используя Selendroid без каких-либо изменений приложения. Вам просто нужен двоичный файл (АПК), установленный на компьютере. Чтобы установить двоичный файл на устройство, тестовое приложение и мобильное приложение должны быть подписаны одним и тем же ключом подписи.
- Selendroid Тестовое приложение может взаимодействовать с несколькими устройствами или симуляторами одновременно. Это большое преимущество Selendroid. Таким образом, вы можете протестировать свое приложение с различными Android устройства для проверки совместимости.
- Selendroid может имитировать действия человека и пользователя в приложении, такие как прикосновение, пролистывание, перетаскивание на устройствах.
- Вы можете менять аппаратные устройства (подключать и отключать) во время тестирования, не перезапуская и не останавливая тест. Selendroid автоматически распознает новые устройства
- Соответствующий Android версия API выше, Selendroid также поддерживает новый Android API (от API 10 до API 19)
- Selendroid также имеет встроенный инструмент инспектора, который поможет вам определить элемент пользовательского интерфейса тестируемого приложения. Например, кнопка идентификатора, текстовое поле, текстовое представление…
Selendroid Archiтекстура
Selendroid основана на Android инструментальная система. Selendroid тесты написаны на основе Selenium Клиентский API веб-драйвера, поэтому он поддерживает полную интеграцию с текущими Selenium рамки.
На следующем рисунке показана архитектура Selendroid
Selendroid содержит 4 основных компонента:
- Клиент веб-драйвера – Java клиентская библиотека на основе Selenium. Эта библиотека должна быть установлена на компьютере (который используется для разработки тестовых примеров).
- Selendroid-Сервер – сервер, на котором работает тестируемое приложение. Android устройство или симулятор. Это основные компоненты Selendroid архитектура
- Android Driver-App – встроенное Android драйвер, приложение Web View для тестирования мобильного Интернета.
- Selendroid-Standalone – этот компонент используется для установки Selendroid сервер и тестируемое приложение (AUT)
Начало работы с Selendroid
Вы уже поняли важность Selendroid. Теперь давайте запачкаем руки Selendroid.
Перед первым тестом необходимо выполнить 3 шага Selendroid
Настройка Selendroid охрана окружающей среды
Selendroid может работать в окне, Linux и Mac OS. В этом уроке мы настроим Selendroid в ОС Windows.
Перед использованием Selendroid, вам необходимо сначала установить следующий пакет
- Java SDK (минимум 1.6)
Вам необходимо принять лицензионное соглашение и загрузить установщик Java (выберите базу x64 или x86 в зависимости от вашей ОС)
Загрузите и установите Java SDK как обычное программное обеспечение
- Последняя версия Android SDK
- На вашем компьютере должен быть хотя бы один Android Виртуальное устройство (AVD) или реальное Android устройство подключено к ПК.
- Selendroid Автономный с зависимостями, Selendroid Клиент и Selenium Клиент
- Eclipse программное обеспечение
- Настройте JAVA_HOME и ANDROID_HOME.
Шаг 1) В окне щелкните правой кнопкой мыши Компьютер. -> Проекты -> Расширенные настройки системы
Шаг 2) Отображение окна «Свойства системы», выберите вкладку «Дополнительно». -> Переменные среды
Шаг 3) В окне «Среда» нажмите «Создать». -> Введите переменную ANDROID_HOME следующим образом:
Значение переменной — это путь к уже установленному вами android-sdks.
Найдите системную переменную Path -> Редактировать -> Добавьте следующую строку после текущей строки
Аналогично ANDROID_HOME, добавьте новую переменную JAVA_HOME со значением, указанным ниже.
Значение – это путь к вашему Java Установка JDK
Шаг 4) Перезагрузите компьютер -> Готово
Как запустить Selendroid
Шаг 1) Получение приложения на тестирование
Вы можете использовать существующие Selendroid протестируйте приложение, чтобы проверить, как это работает Selendroid работает (Ссылка образец тестируемого приложения)
После завершения загрузки скопируйте этот APK и приведенный выше файл. Selendroid Автономная банка файл в папку с именем «Гуру99″
Шаг 2) Запустите Selendroid
Откройте терминал на Windows и перейдите к папке Guru99, созданной на шаге 1.
Запустите следующую команду
Вывод будет выглядеть следующим образом:
После запуска этой команды Selendroid-запускается автономный HTTP-сервер! Номер порта этого сервера по умолчанию — 4444. Все аппаратные устройства, а также Android Виртуальное устройство будет сканироваться и распознаваться автоматически. Selendroid определит Android целевая версия и размер экрана устройства.
Чтобы проверить Android целевую версию, а также информацию об устройстве, вы можете запустить следующий URL в браузере: http://localhost:4444/wd/hub/status
.
Selendroid основная команда
В этом разделе представлены некоторые основные Selendroid- Автономная командная строка. Вы можете использовать их для настройки Selendroid среда тестирования
- Настройка порта Selendroid
Порт по умолчанию Selendroid равен 4444. Но вы можете переключиться на другой порт, добавив параметр в команду для запуска. Selendroid
Параметр: -порт [номер порта]
Например:
В приведенной выше команде 5555 — это новый порт.
Таким образом, URL-адрес для проверки Android целевая версия изменена на: http://localhost:5555/wd/hub/status
- Укажите местоположение тестируемого приложения (двоичный APK-файл). Selendroid часто требовался абсолютный путь к этому файлу
Параметр: -приложение [Путь файла]
Например:
В приведенной выше команде Selendroid автоматически найти базу двоичных файлов в папке «C:\Guru99App.apk», чтобы получить информацию о тестируемом приложении.
Проверить URL
http://localhost:4444/wd/hub/status
, вы увидите эту информацию - Измените порт Selendroid использует для связи с сервером инструментов. Selendroid использует порт 8080 по умолчанию
Параметр: -selendroidServerPort [номер порта]
Пример
Порт теперь изменен на 9000.
- Измените таймаут запуска эмуляторов. Единица миллисекунды.
Параметр: -timeoutEmulatorStart
По умолчанию Selendroid будет ждать 300,000 200,000 миллисекунд до запуска эмулятора. Вы можете изменить тайм-аут (XNUMX XNUMX мс) с помощью команды
По истечении этого времени срок действия нашего эмулятора истечет, если эмулятор не запустится, Selendroid выдаст ошибку исключения (произошла ошибка при поиске устройств/эмуляторов.), а затем остановит работу
- Когда вы запускаете Selendroid команду на терминале, вы увидите журнал, распечатанный на экране. Вы можете изменить тип журнала, который вы видите, добавив следующий параметр
Параметр: -logLevel [тип журнала]
Значения уровня журнала: ОШИБКА, ПРЕДУПРЕЖДЕНИЕ, ИНФОРМАЦИЯ, ОТЛАДКА и ПОДРОБНО. По умолчанию: ОШИБКА.
Например, установите Selendroid чтобы распечатать только журнал ПРЕДУПРЕЖДЕНИЙ, вы можете использовать эту команду
Территория Selendroid распечатывать только журнал ПРЕДУПРЕЖДЕНИЙ
Начните свой первый тест с Selendroid
Этот раздел представляет собой пошаговое руководство по созданию вашего первого тестового сценария с использованием Selendroid
Предположим, у нас есть Android тестируемое приложение Guru99App. Приложение включает в себя текстовое поле и кнопку с названием «Показать текст».
Нам необходимо выполнить следующее Тестовый кейс через Selendroid
Тестовые кейсы | Состояние | Ожидаемый результат |
---|---|---|
|
Доступен двоичный файл тестируемого приложения.
Устройство подключено к ПК |
Текст «Показать текст здесь» заменяется на текст
какой пользователь вводит в текстовое поле |
Шаг 1) Создайте Java проекта в Eclipse
Шаг 2) Добавьте селен и Selendroid jar-файл в среде eclipse
Щелкните правой кнопкой мыши Guru99Test Project. -> Путь сборки -> Добавить внешний ArchiVES
Перейдите в папку, в которой хранятся файлы jar.
Необходимо добавить 3 файла jar.
- selendroid-client-0.10.0.jar : Selendroid клиентская библиотека Java
- selendroid-standalone-0.11.0-с-зависимостями : Selendroid автономная серверная библиотека
- selenium-java-2.40.0.jar : Selenium Библиотека веб-драйверов
Выбрать все -> Выберите «Открыть», чтобы добавить файл jar в проект.
Шаг 3) после добавления указанной выше библиотеки эти библиотеки будут добавлены в справочные библиотеки тестового проекта. Тестировщик может использовать API этих библиотек для разработки тестовой программы.
Создайте пакет «com.guru.test» и добавьте Java-файл «Guru99Test.java», как показано ниже.
Щелкните правой кнопкой мыши Guru99Test -> Новое -> Упаковка
Введите com.guru.test в поле «Имя» в разделе «Создать». Java Диалоговое окно пакета à Finish
Территория Eclipse создаст папки и подпапки списков, подобные этой, в структуре исходного кода
Шаг 4) Установите TestNG для Eclipse
In Eclipse, Помощь -> Установите новое программное обеспечение, в диалоговом окне установки нажмите кнопку «Добавить» и введите следующее.
- Имя: TestNG
- Локации: https://github.com/selendroid/selendroid
Нажмите ОК. -> Далее для установки TestNG
Шаг 5) Скопируйте Guru99App.apk в папку тестового приложения.
Шаг 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 также устанавливает тестируемое приложение и запускает selendroid-server на устройстве
После успешной инициализации тестового сеанса на устройстве начинается выполнение тестовой команды. (Например, для ввода текста нажмите кнопку…). Если тест добавит тестовый сеанс, эмулятор автоматически остановится.
Шаг 8) Начать новую тестовую сессию
Запустить Selendroid сервер, используя следующую команду на терминале, как в шаге 6
После Selendroid Сервер запущен, откройте образец тестового проекта Guru99test на Eclipseустановите точку останова в строке 77 файла Guru99Test.java, дважды щелкнув строку 77. -> Отобразится точка, как показано ниже.
Начните тестовый сеанс, щелкнув правой кнопкой мыши, чтобы перейти к проекту Guru99Test. -> Отладка как -> TestNG Контрольная работа.
Тестовая сессия начнется, как показано ниже.
Шаг 9) Получите идентификатор элемента графического интерфейса тестируемого приложения.
После успешного запуска тестового сеанса откройте браузер и перейдите по URL-адресу. http://localhost:4444/inspector
Вы увидите, что тестируемое приложение запускается, как показано ниже.
Наведите указатель мыши на каждый элемент пользовательского интерфейса AUT (кнопка, текстовое поле, текстовая метка), идентификатор каждого элемента будет выделен на правой панели.
После этого шага вы можете получить идентификатор каждого вышеуказанного элемента пользовательского интерфейса.
- Кнопка «Показать идентификатор текста»: «btnShow
- Идентификатор текстового поля: «edtText
- Идентификатор текста этикетки: «txtView
Эти идентификаторы будут использоваться на следующем этапе.
Шаг 10) Введите тестовую программу, как показано ниже.
Тестовая программа, использующая Selendroid включает в себя 3 раздела
Тест настройки:
Ниже приведен код для настройки теста, он установит условие для сеанса тестирования. В случае ошибки Selendroid выдаст исключение, и тестовое приложение остановится.
Код включает комментарии для объяснения каждого утверждения.
package 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 Test App using Selendroid * Application under test: Guru99App * */ public class Guru99Test { //Declare web driver variable private WebDriver driver; /** * Setup the environment before testing * @throws Exception */ @BeforeSuite public void setUp() throws Exception { //Start selendroid-standalone during test SelendroidConfiguration config = new SelendroidConfiguration(); // Add the selendroid-test-app to the standalone server config.addSupportedApp("Guru99App.apk"); //start the standalone server SelendroidLauncher selendroidServer = new SelendroidLauncher(config); selendroidServer.launchSelendroid(); // Create the selendroid capabilities SelendroidCapabilities capa = new SelendroidCapabilities(); // Specify to use selendroid's test app capa.setAut("com.guru99app:1.0"); // Specify to use the Android device API 19 capa.setPlatformVersion(DeviceTargetPlatform.ANDROID19); // Don't request simulator, use real device capa.setEmulator(false); //capa.wait(10000000); // Create instance of Selendroid Driver driver = new SelendroidDriver(capa); }
Выполнить тест
Ниже приведен код для выполнения теста. Код включает комментарии
Вот еще этапы тестирования
- Введите текст «Привет, Гуру»
- Нажмите кнопку «Показать текст».
- Подожди некоторое время
- Убедитесь, что приложение отображает текст, который пользователь вводит в текстовое поле (например, отображает текст «Hello Guru»).
/** * Start execute the test case * 01. Enter the text "Selendroid" to the textfield * 02. Press OK button * @throws Exception */ @Test public void selendroidTest() throws Exception { // Print the log System.out.print("Start executing test"); // Find the input text field on screen // The id of this text field was get from step 9 WebElement inputField = driver.findElement(By.id("edtText")); // Verify that the text field enabled so user can enter text Assert.assertEquals("true", inputField.getAttribute("enabled")); // Enter a text to text field inputField.sendKeys("Hello Guru"); // click Show Text button // The id of this button was get from step 9 WebElement button = driver.findElement(By.id("btnShow")); button.click(); // Delay time to take effect Thread.sleep(5000); //Find the label "Text Show Here" on screen // The id of this label was get from step 9 WebElement txtView = driver.findElement(By.id("txtView")); //Get the text display on screen String expected = txtView.getText(); // Verify that the text which user enter on text field is same as text display on screen Assert.assertEquals(expected, inputField.getText()); }
Завершить тест
Следующий код завершит тест, остановив Selendroid Водитель.
/** * Stop the Selendroid driver * */ @AfterSuite public void tearDown() { driver.quit(); }
Подробности можно увидеть в примере кода, включенном в эту статью.
Шаг 10) Объединяйтесь Android устройство к ПК через USB-кабель. На что следует обратить внимание –
- Убедитесь, что на устройстве не настроена блокировка экрана.
- Устройства необходимо подключить через USB к компьютеру, на котором работает автономный компонент selendroid.
- Устройство должно быть установлено как минимум Android Target Версия API 10
Шаг 11) Запустите тестовое приложение: щелкните правой кнопкой мыши Guru99test. -> Беги как -> TestNG тест
Шаг 10) Скрипт запускается следующим образом:
Шаг 12) После завершения выполнения теста TestNG автоматически генерирует отчет об испытании следующим образом
Молодец, ты закончил тест.
Резюме
- Selendroid это очень мощный инструмент для тестирования Android собственное приложение, гибридное приложение, а также веб-приложение.
- Его можно использовать как на реальных устройствах, так и в симуляторе.
- Это также позволяет запускать тесты параллельно, запуская тест на нескольких устройствах.
- Целиком Selendroid Пакет состоит из четырех компонентов:
- Клиент веб-драйвера,
- Selendroid-Сервер,
- Android Приложение для драйвера
- Selendroid-стоять в одиночестве
- Использовать Selendroid всего в нескольких шагах. Java ЯДК, Android SDK и Eclipse установлен.