Selendroid — это среда автоматизации тестирования для тестирования нативных и гибридных приложений Android. Тесты Selendroid написаны с использованием клиентского API Selenium Webdriver.
Преимущества Selendroid
-
Полностью совместим с протоколом проводов JSON / Selenium 3 Ready.
-
Не требуется модификация тестируемого приложения для его автоматизации.
-
Тестирование мобильного интернета с помощью встроенного приложения для просмотра драйверов Android.
-
Та же концепция для автоматизации нативных или гибридных приложений.
-
Элементы пользовательского интерфейса могут быть найдены различными типами локаторов.
-
Поддерживаются жесты: API расширенного взаимодействия с пользователем.
-
Существующие эмуляторы запускаются автоматически.
-
Selendroid поддерживает горячее подключение аппаратных устройств.
-
Полная интеграция как узел в Selenium Grid для масштабирования и параллельного тестирования.
-
Поддержка нескольких целевых API Android (от 10 до 19).
-
Встроенный инспектор для упрощения разработки тестовых случаев.
-
Selendroid может быть расширен во время выполнения с помощью ваших собственных расширений.
-
Selendroid может взаимодействовать с несколькими устройствами Android (эмуляторами или аппаратными устройствами) одновременно.
Полностью совместим с протоколом проводов JSON / Selenium 3 Ready.
Не требуется модификация тестируемого приложения для его автоматизации.
Тестирование мобильного интернета с помощью встроенного приложения для просмотра драйверов Android.
Та же концепция для автоматизации нативных или гибридных приложений.
Элементы пользовательского интерфейса могут быть найдены различными типами локаторов.
Поддерживаются жесты: API расширенного взаимодействия с пользователем.
Существующие эмуляторы запускаются автоматически.
Selendroid поддерживает горячее подключение аппаратных устройств.
Полная интеграция как узел в Selenium Grid для масштабирования и параллельного тестирования.
Поддержка нескольких целевых API Android (от 10 до 19).
Встроенный инспектор для упрощения разработки тестовых случаев.
Selendroid может быть расширен во время выполнения с помощью ваших собственных расширений.
Selendroid может взаимодействовать с несколькими устройствами Android (эмуляторами или аппаратными устройствами) одновременно.
Недостатки Selendroid
Недостаток этого инструмента в том, что он довольно медленный, и на некоторых машинах с объемом оперативной памяти менее 4 ГБ его невозможно использовать.
Как использовать Selendroid
Шаг 1 — Необходимыми условиями использования Robotium является Java SDK (минимум 1.6). Если в вашей системе не установлена Java, выполните следующие действия.
-
Загрузите JDK и JRE из Oracle JavaSE
-
Принять лицензионное соглашение.
-
Установите JDK и JRE.
-
Установите переменную среды, как показано на скриншоте ниже.
Загрузите JDK и JRE из Oracle JavaSE
Принять лицензионное соглашение.
Установите JDK и JRE.
Установите переменную среды, как показано на скриншоте ниже.
Шаг 2 — Загрузите Android Studio из SDK Android (это займет время из-за размера файла).
- Дважды щелкните по exe и запустите установщик.
- Продолжить со всеми параметрами по умолчанию.
- Установите ANDROID_HOME.
Шаг 3 — Загрузите файлы Selenium jar и тестовое приложение с Selendroid
- Загрузите файл jar селена и тестовое приложение.
- Поместите его в любую папку, например D: \ SelendroidJars.
Шаг 4 — Физическое устройство с USB-кабелем.
-
Убедитесь, что устройство подключено к рабочей станции с помощью USB-кабеля.
-
Убедитесь, что режим отладки по USB (в настройках → Параметры разработчика) включен.
Убедитесь, что устройство подключено к рабочей станции с помощью USB-кабеля.
Убедитесь, что режим отладки по USB (в настройках → Параметры разработчика) включен.
Протестируйте приложение с помощью Selendroid
Чтобы протестировать приложение с помощью Selendroid, выполните следующие действия:
Шаг 1 — Установите Eclipse.
Шаг 2 — Создайте проект Java.
Шаг 3 — Добавьте загруженный файл jar Selendroid во вновь созданный проект.
Шаг 4 — Добавьте загруженные файлы Selenium jar во вновь созданный проект.
Шаг 5 — Сконфигурируйте testNG в Eclipse.
Шаг 6 — Подключите мобильные устройства к системе с помощью USB-кабеля. Установите режим отладки USB из настроек разработчика в настройках.
Шаг 7 — Запустите сервер Selendroid. Откройте командную строку, введите следующий код и нажмите Enter —
java -jar selendroid-standalone-0.17.0-with-dependencies.jar -app selendroid-test-app-0.17.0.apk
Selendroid-standalone запустит http-сервер на порту 4444 и просканирует все виртуальные устройства Android (avd), созданные пользователем (~ / .android / avd /).
Откройте веб-браузер и перейдите по адресу : http: // localhost: 4444 / wd / hub / status .
Шаг 8 — Создание проекта Java; добавьте Selendroid Standalone библиотеки, Selenium jar и библиотеки JUnit в путь сборки.
Шаг 9 — Создание пакета под Java-проектом.
Шаг 10 — Создайте класс под пакетом и напишите следующий код.
package selTest; import io.selendroid.SelendroidDriver; import io.selendroid.common.SelendroidCapabilities; import io.selendroid.standalone.SelendroidConfiguration; import io.selendroid.standalone.SelendroidLauncher; 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; public class SelendroidTest { private WebDriver driver ; @BeforeSuite public void setUp() throws Exception { SelendroidConfiguration config = new SelendroidConfiguration(); config.addSupportedApp("selendroid-test-app-0.9.0.apk"); SelendroidLauncher selendroidServer = new SelendroidLauncher(config); selendroidServer.launchSelendroid(); SelendroidCapabilities caps = new SelendroidCapabilities("io.selendroid.testapp:0.9.0"); driver = new SelendroidDriver(caps); } @Test public void selendroidTest() throws Exception { WebElement inputField = driver.findElement(By.id("my_text_field")); Assert.assertEquals("true", inputField.getAttribute("enabled")); inputField.sendKeys("Selendroid"); Assert.assertEquals("Selendroid", inputField.getText()); WebElement button = driver.findElement(By.id("buttonTest")); button.click(); button = driver.findElement(By.id("button2")); button.click(); Thread.sleep(5000); button = driver.findElement(By.id("startUserRegistration")); button.click(); Thread.sleep(10000); WebElement element = driver.findElement(By.id("label_username")); String text = element.getText(); System.out.println(text); element = driver.findElement(By.id("inputUsername")); element.sendKeys("bob"); element = driver.findElement(By.id("inputEmail")); element.sendKeys("[email protected]"); element = driver.findElement(By.id("inputPassword")); element.clear(); element.sendKeys("test1233"); element = driver.findElement(By.id("inputName")); element.clear(); element.sendKeys("My Name "); element = driver.findElement(By.id("input_preferedProgrammingLanguage")); element.click(); element = driver.findElement(By.id("text1")); element.click(); element = driver.findElement(By.id("input_adds")); element.click(); element = driver.findElement(By.id("btnRegisterUser")); element.click(); element = driver.findElement(By.id("buttonRegisterUser")); element.click(); } @AfterSuite public void tearDown(){ driver.quit(); } }
Шаг 11 — Запустите класс с конфигурацией запуска testNG.