Selendroid Учебник для начинающих с примером

Вы когда-нибудь разрабатывали Android приложение и опубликовать его в Google Play? Что вы будете делать, если получите отзыв пользователя типа:

Selendroid Обучение

Когда вы публикуете приложение в Google Play, оно должно быть тщательно протестировано, чтобы избежать потенциальных ошибок. Существует множество тестовых сценариев, которые необходимо выполнить перед публикацией приложения. Чтобы сохранить Тестирование усилия, вам нужен инструмент тестирования. Один из лучших инструментов тестирования для Android приложение Selendroid.

Что такое Selendroid?

Selendroid — это платформа автоматизации тестирования для мобильных приложений разных типов: родной и гибрид Android приложение и мобильный веб.

Что такое Selendroid

Вы можете написать тесты, используя Selenium 2 клиентских API. Потому что Selendroid все еще повторно использует существующие Selenium инфраструктура для Интернета

Selendroid является мощным инструментом тестирования. Его можно использовать на эмуляторы и настоящий устройств

Что такое Selendroid

Зачем нам Selendroid?

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 Archiтекстура

Selendroid содержит 4 основных компонента:

Selendroid Archiтекстура

  • Клиент веб-драйвера – Java клиентская библиотека на основе Selenium. Эта библиотека должна быть установлена ​​на компьютере (который используется для разработки тестовых примеров).
  • Selendroid-Сервер – сервер, на котором работает тестируемое приложение. Android устройство или симулятор. Это основные компоненты Selendroid архитектура
  • Android Driver-App – встроенное Android драйвер, приложение Web View для тестирования мобильного Интернета.
  • Selendroid-Standalone – этот компонент используется для установки Selendroid сервер и тестируемое приложение (AUT)

Начало работы с Selendroid

Вы уже поняли важность Selendroid. Теперь давайте запачкаем руки Selendroid.

Перед первым тестом необходимо выполнить 3 шага Selendroid

Начало работы с Selendroid

Настройка Selendroid охрана окружающей среды

Selendroid может работать в окне, Linux и Mac OS. В этом уроке мы настроим Selendroid в ОС Windows.

Перед использованием Selendroid, вам необходимо сначала установить следующий пакет

  • Java SDK (минимум 1.6)

    Вам необходимо принять лицензионное соглашение и загрузить установщик Java (выберите базу x64 или x86 в зависимости от вашей ОС)

    Настройка Selendroid Окружающая среда

    Загрузите и установите Java SDK как обычное программное обеспечение

  • Последняя версия Android SDK
  • На вашем компьютере должен быть хотя бы один Android Виртуальное устройство (AVD) или реальное Android устройство подключено к ПК.
  • Selendroid Автономный с зависимостями, Selendroid Клиент и Selenium Клиент
  • Eclipse программное обеспечение
  • Настройте JAVA_HOME и ANDROID_HOME.

    Шаг 1) В окне щелкните правой кнопкой мыши Компьютер. -> Проекты -> Расширенные настройки системы

    Настройка Selendroid Окружающая среда

    Шаг 2) Отображение окна «Свойства системы», выберите вкладку «Дополнительно». -> Переменные среды

    Настройка Selendroid Окружающая среда

    Шаг 3) В окне «Среда» нажмите «Создать». -> Введите переменную ANDROID_HOME следующим образом:

    Настройка Selendroid Окружающая среда

    Значение переменной — это путь к уже установленному вами android-sdks.

    Найдите системную переменную Path -> Редактировать -> Добавьте следующую строку после текущей строки

    Настройка Selendroid Окружающая среда

    Настройка Selendroid Окружающая среда

    Аналогично ANDROID_HOME, добавьте новую переменную JAVA_HOME со значением, указанным ниже.

    Настройка Selendroid Окружающая среда

    Значение – это путь к вашему Java Установка JDK

    Шаг 4) Перезагрузите компьютер -> Готово

Как запустить Selendroid

Шаг 1) Получение приложения на тестирование

Вы можете использовать существующие Selendroid протестируйте приложение, чтобы проверить, как это работает Selendroid работает (Ссылка образец тестируемого приложения)

После завершения загрузки скопируйте этот APK и приведенный выше файл. Selendroid Автономная банка файл в папку с именем «Гуру99″

Шаг 2) Запустите Selendroid

Откройте терминал на Windows и перейдите к папке Guru99, созданной на шаге 1.

Запустите следующую команду

Запуск Selendroid

Вывод будет выглядеть следующим образом:

Запуск Selendroid

После запуска этой команды Selendroid-запускается автономный HTTP-сервер! Номер порта этого сервера по умолчанию — 4444. Все аппаратные устройства, а также Android Виртуальное устройство будет сканироваться и распознаваться автоматически. Selendroid определит Android целевая версия и размер экрана устройства.

Чтобы проверить Android целевую версию, а также информацию об устройстве, вы можете запустить следующий URL в браузере: http://localhost:4444/wd/hub/status.

Запуск Selendroid

Selendroid основная команда

В этом разделе представлены некоторые основные Selendroid- Автономная командная строка. Вы можете использовать их для настройки Selendroid среда тестирования

  1. Настройка порта Selendroid

    Порт по умолчанию Selendroid равен 4444. Но вы можете переключиться на другой порт, добавив параметр в команду для запуска. Selendroid

    Параметр: -порт [номер порта]

    Например:

    Selendroid Базовая команда

    В приведенной выше команде 5555 — это новый порт.

Таким образом, URL-адрес для проверки Android целевая версия изменена на: http://localhost:5555/wd/hub/status

  1. Укажите местоположение тестируемого приложения (двоичный APK-файл). Selendroid часто требовался абсолютный путь к этому файлу

    Параметр: -приложение [Путь файла]

    Например:

    Selendroid Базовая команда

    В приведенной выше команде Selendroid автоматически найти базу двоичных файлов в папке «C:\Guru99App.apk», чтобы получить информацию о тестируемом приложении.

    Проверить URL http://localhost:4444/wd/hub/status, вы увидите эту информацию

    Selendroid Базовая команда

  2. Измените порт Selendroid использует для связи с сервером инструментов. Selendroid использует порт 8080 по умолчанию

    Параметр: -selendroidServerPort [номер порта]

    Пример

    Selendroid Базовая команда

    Порт теперь изменен на 9000.

  3. Измените таймаут запуска эмуляторов. Единица миллисекунды.

    Параметр: -timeoutEmulatorStart

    По умолчанию Selendroid будет ждать 300,000 200,000 миллисекунд до запуска эмулятора. Вы можете изменить тайм-аут (XNUMX XNUMX мс) с помощью команды

    Selendroid Базовая команда

    По истечении этого времени срок действия нашего эмулятора истечет, если эмулятор не запустится, Selendroid выдаст ошибку исключения (произошла ошибка при поиске устройств/эмуляторов.), а затем остановит работу

  4. Когда вы запускаете Selendroid команду на терминале, вы увидите журнал, распечатанный на экране. Вы можете изменить тип журнала, который вы видите, добавив следующий параметр

    Параметр: -logLevel [тип журнала]

    Значения уровня журнала: ОШИБКА, ПРЕДУПРЕЖДЕНИЕ, ИНФОРМАЦИЯ, ОТЛАДКА и ПОДРОБНО. По умолчанию: ОШИБКА.

    Например, установите Selendroid чтобы распечатать только журнал ПРЕДУПРЕЖДЕНИЙ, вы можете использовать эту команду

    Selendroid Базовая команда

    Территория Selendroid распечатывать только журнал ПРЕДУПРЕЖДЕНИЙ

Начните свой первый тест с Selendroid

Этот раздел представляет собой пошаговое руководство по созданию вашего первого тестового сценария с использованием Selendroid

Предположим, у нас есть Android тестируемое приложение Guru99App. Приложение включает в себя текстовое поле и кнопку с названием «Показать текст».

СКАЧАТЬ APK ЗДЕСЬ

Первый тест с Selendroid

Нам необходимо выполнить следующее Тестовый кейс через Selendroid

Тестовые кейсы Состояние Ожидаемый результат
  1. Запустить приложение
  2. Введите текст «Гуру99 Тест» в текстовое поле
  3. Нажмите кнопку «Показать текст».
Доступен двоичный файл тестируемого приложения.

Устройство подключено к ПК

Текст «Показать текст здесь» заменяется на текст

какой пользователь вводит в текстовое поле

Шаг 1) Создайте Java проекта в Eclipse

Шаг 2) Добавьте селен и Selendroid jar-файл в среде eclipse

Щелкните правой кнопкой мыши Guru99Test Project. -> Путь сборки -> Добавить внешний ArchiVES

Первый тест с Selendroid

Перейдите в папку, в которой хранятся файлы 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 в проект.

Первый тест с Selendroid

Шаг 3) после добавления указанной выше библиотеки эти библиотеки будут добавлены в справочные библиотеки тестового проекта. Тестировщик может использовать API этих библиотек для разработки тестовой программы.

Создайте пакет «com.guru.test» и добавьте Java-файл «Guru99Test.java», как показано ниже.

Щелкните правой кнопкой мыши Guru99Test -> Новое -> Упаковка

Первый тест с Selendroid

Введите com.guru.test в поле «Имя» в разделе «Создать». Java Диалоговое окно пакета à Finish

Первый тест с Selendroid

Территория Eclipse создаст папки и подпапки списков, подобные этой, в структуре исходного кода

Первый тест с Selendroid

Шаг 4) Установите TestNG для Eclipse

In Eclipse, Помощь -> Установите новое программное обеспечение, в диалоговом окне установки нажмите кнопку «Добавить» и введите следующее.

Нажмите ОК. -> Далее для установки TestNG

Первый тест с Selendroid

Шаг 5) Скопируйте Guru99App.apk в папку тестового приложения.

Первый тест с Selendroid

Шаг 6) Получите идентификатор тестируемого приложения.

Предположим, у нас есть APK-файл с именем Guru99App.apk. Выполните шаг, описанный в предыдущем разделе, выполните команду на терминале.

Первый тест с Selendroid

Откройте следующую ссылку в браузере: http://localhost:4444/wd/hub/status.

Отобразится информация об устройстве, скопируйте значение appId «com.guru99app:1.0».

Первый тест с Selendroid

Шаг 7) Откройте файл Guru99Test.java (в примере кода) и измените его следующим образом:

Первый тест с Selendroid

Чтобы создать новую тестовую сессию с Selendroid, вам необходимо указать идентификатор приложения в формате: com.guru99app:1.0. Этот идентификатор приложения можно определить на шаге 6. Если вы не установите идентификатор приложения, соответствующий Android устройстве, тестовый сеанс выдаст ошибку и не запустится.

После инициализации найденного устройства, Selendroid создает настроенный selendroid-сервер и устанавливает Selendroid сервер на нем

Selendroid также устанавливает тестируемое приложение и запускает selendroid-server на устройстве

После успешной инициализации тестового сеанса на устройстве начинается выполнение тестовой команды. (Например, для ввода текста нажмите кнопку…). Если тест добавит тестовый сеанс, эмулятор автоматически остановится.

Шаг 8) Начать новую тестовую сессию

Запустить Selendroid сервер, используя следующую команду на терминале, как в шаге 6

Первый тест с Selendroid

После Selendroid Сервер запущен, откройте образец тестового проекта Guru99test на Eclipseустановите точку останова в строке 77 файла Guru99Test.java, дважды щелкнув строку 77. -> Отобразится точка, как показано ниже.

Первый тест с Selendroid

Начните тестовый сеанс, щелкнув правой кнопкой мыши, чтобы перейти к проекту Guru99Test. -> Отладка как -> TestNG Контрольная работа.

Тестовая сессия начнется, как показано ниже.

Первый тест с Selendroid

Шаг 9) Получите идентификатор элемента графического интерфейса тестируемого приложения.

После успешного запуска тестового сеанса откройте браузер и перейдите по URL-адресу. http://localhost:4444/inspector

Вы увидите, что тестируемое приложение запускается, как показано ниже.

Первый тест с Selendroid

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

Первый тест с Selendroid

После этого шага вы можете получить идентификатор каждого вышеуказанного элемента пользовательского интерфейса.

  • Кнопка «Показать идентификатор текста»: «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);
					       
		    }
		

Выполнить тест

Ниже приведен код для выполнения теста. Код включает комментарии

Вот еще этапы тестирования

  1. Введите текст «Привет, Гуру»
  2. Нажмите кнопку «Показать текст».
  3. Подожди некоторое время
  4. Убедитесь, что приложение отображает текст, который пользователь вводит в текстовое поле (например, отображает текст «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 тест

Первый тест с Selendroid

Шаг 10) Скрипт запускается следующим образом:

Первый тест с Selendroid

Шаг 12) После завершения выполнения теста TestNG автоматически генерирует отчет об испытании следующим образом

Первый тест с Selendroid

Первый тест с Selendroid

Молодец, ты закончил тест.

Резюме

  • Selendroid это очень мощный инструмент для тестирования Android собственное приложение, гибридное приложение, а также веб-приложение.
  • Его можно использовать как на реальных устройствах, так и в симуляторе.
  • Это также позволяет запускать тесты параллельно, запуская тест на нескольких устройствах.
  • Целиком Selendroid Пакет состоит из четырех компонентов:
    • Клиент веб-драйвера,
    • Selendroid-Сервер,
    • Android Приложение для драйвера
    • Selendroid-стоять в одиночестве
  • Использовать Selendroid всего в нескольких шагах. Java ЯДК, Android SDK и Eclipse установлен.