Учебники

11) Введение в Selendroid

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

Введение в Selendroid

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

Что такое Селендроид?

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

Введение в Selendroid

 

You can write the tests using the Selenium 2 client APIs. Because Selendroid still reuses of the existing Selenium infrastructure for the web

Selendroid is a powerful testing tool. It can be used on emulators and real devices

Введение в Selendroid

Why do we need Selendroid?

Selendroid is a great testing tool. But you may still doubt its usefulness.

Введение в Selendroid

This section will introduce the important features of the Selendroid to answer the question why you need Selendroid.

Введение в Selendroid

  • You can test the application under test using Selendroid without any modification of the app. You just need the binary file (APK) installed on the computer. In order to install the binary file on the device, the test app and mobile app must be signed with same sign key
  • Selendroid test app can interact with multiple devices or simulators simultaneously. It’s a great advantage of Selendroid. So you can test your app with various Android devices to check compatibility.
  • Selendroid can simulate human-user actions on an app, such as touch, swipe, drag and drop on devices
  • You can change the hardware devices (Plug and unplug) during the testing without restarting or stopping the test. Selendroid recognizes the new devices automatically
  • Corresponding to the Android API version up, Selendroid also supports the new Android API (From API 10 to API 19)
  • Selendroid also has some built-in inspector tool to help you identify the UI element of an application under test. For example the ID button, text field, text view…

Selendroid Architecture

Selendroid основан на инструментарии Android . Тесты Selendroid написаны на основе клиентского API веб-драйвера Selenium, поэтому он поддерживает полную интеграцию с текущими платформами Selenium.

На следующем рисунке описана архитектура Selendroid

Введение в Selendroid

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

Введение в Selendroid

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

 

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

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

Перед первым тестом с Selendroid нужно сделать 3 шага

Введение в Selendroid

Настройка среды Selendroid

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

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

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

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

    Введение в Selendroid

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

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

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

    Введение в Selendroid

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

    Введение в Selendroid

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

    Введение в Selendroid  

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

    Найдите системную переменную Path -> Edit -> Add следующую строку после текущей строки

    Введение в Selendroid

    Введение в Selendroid

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

    Введение в Selendroid

    Значение — это путь к вашей установке Java JDK.

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

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

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

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

После завершения загрузки скопируйте этот APK и вышеуказанный автономный файл JAR Selendroid в папку с именем « Guru99».

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

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

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

Введение в Selendroid

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

Введение в Selendroid

 

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

Чтобы проверить целевую версию Android, а также информацию об устройстве, вы можете запустить следующий URL в браузере:

http: // localhost: 4444 / wd / hub / status .

Введение в Selendroid

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

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

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

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

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

    Например:

    Введение в Selendroid

    В приведенной выше команде 5555 является новым портом.

    Поэтому URL-адрес для проверки целевой версии Android изменился на: http: // localhost: 5555 / wd / hub / status

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

    Параметр: -app [путь к файлу]

    Например:

    Введение в 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 мс) по команде

    Введение в Selendroid

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

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

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

    Значениями уровня журнала являются ERROR, WARNING, INFO, DEBUG и VERBOSE. По умолчанию: ОШИБКА.

    Например, установите Selendroid для печати только журнала WARNING, вы можете использовать эту команду

    Введение в Selendroid

    Selendroid печатает только журнал WARNING

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

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

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

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

Введение в Selendroid

Нам нужно выполнить следующий тестовый пример с помощью Selendroid

Тестовые случаи 

Состояние 

Ожидаемый результат: 

  1. Запустите приложение
  2. Введите текст « Тест Гуру99 » в текстовое поле
  3. Нажмите кнопку «Показать текст»

Доступен бинарный файл тестируемого приложения

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

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

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

 

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

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

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

 

Введение в Selendroid

Перейдите в папку, в которой хранятся файлы JAR

Там должны быть добавлены 3 jar-файла

  • selendroid-client-0.10.0.jar: клиентская библиотека Selendroid java
  • selendroid-standalone-0.11.0-with-dependencies: библиотека автономного сервера Selendroid
  • selenium-java-2.40.0.jar: библиотека веб-драйверов Selenium

Выбрать все -> Выбрать Открыть, чтобы добавить файл JAR в проект

 

Введение в Selendroid

 

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

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

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

Введение в Selendroid

Введите com.guru.test в поле «Имя» в диалоговом окне «Новый пакет Java» à «Готово».

Введение в Selendroid

 

Eclipse создаст список папок и подпапок, как это в структуре исходного кода

Введение в Selendroid

 

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

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

Нажмите OK -> Далее, чтобы установить TestNG

Введение в Selendroid

Шаг 5) Скопируйте Guru99App.apk в папку Test App

Введение в 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-сервер на устройстве.

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

Шаг 8) Начните новый тестовый сеанс

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

Введение в Selendroid

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

Введение в Selendroid

Начните тестовую сессию правой кнопкой мыши. Выберите проект Guru99Test -> Debug As -> Testng Test.

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

Введение в Selendroid

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

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

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

Введение в Selendroid

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

Введение в 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. Убедитесь, что приложение отображает текст, когда пользователь вводит текстовое поле (например, отображать текст «Привет, Гуру»)
 /**
		     * 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 Version API 10

Шаг 11) Запустите тестовое приложение: щелкните правой кнопкой мыши Guru99test -> Run as -> TestNG test

Введение в Selendroid

 

Шаг 10) Запуск скрипта выполняется следующим образом

Введение в Selendroid

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

Введение в Selendroid

Введение в Selendroid

Хорошая работа, вы сделали тест сейчас.

Резюме

 

Резюме

  • Selendroid — очень мощный инструмент для тестирования нативного приложения для Android, гибридного приложения и веб-приложения.
  • Может использоваться как на реальных устройствах, так и на симуляторе.
  • Это также позволяет вам запускать тесты параллельно, выполняя тест на нескольких устройствах.
  • Весь пакет Selendroid состоит из четырех компонентов:
    • Клиент веб-драйвера,
    • Selendroid-сервер,
    • Приложение для Android-драйвера
    • Selendroid-одинокий
  • Для использования Selendroid вам необходимо установить Java JDK, Android SDK и Eclipse.