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 без никаква модификация на приложението. Трябва ви само двоичният файл (APK), инсталиран на компютъра. За да инсталирате двоичния файл на устройството, тестовото приложение и мобилното приложение трябва да бъдат подписани с един и същ знаков ключ
  • Selendroid тестовото приложение може да взаимодейства с множество устройства или симулатори едновременно. Това е голямо предимство на Selendroid. Така че можете да тествате приложението си с различни Android устройства за проверка на съвместимостта.
  • Selendroid може да симулира действия човек-потребител в приложение, като докосване, плъзгане, плъзгане и пускане на устройства
  • Можете да промените хардуерните устройства (включете и изключете) по време на тестването, без да рестартирате или спирате теста. Selendroid разпознава автоматично новите устройства
  • Съответстващи на Android API версия, Selendroid също поддържа новото Android API (от API 10 до API 19)
  • Selendroid също има вграден инструмент за инспектор, който да ви помогне да идентифицирате елемента на потребителския интерфейс на тестваното приложение. Например бутон ID, текстово поле, текстов изглед...

Selendroid Archiтекстура

Selendroid се основава на Android инструментална рамка. Selendroid тестовете са писмени въз основа на Selenium API на клиента на уеб драйвер, така че поддържа пълна интеграция с текущата Selenium рамки.

Следващата фигура описва архитектурата на Selendroid

Selendroid Archiтекстура

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

Selendroid Archiтекстура

  • Клиент на уеб драйвер – The Java клиентска библиотека, базирана на Selenium. Тази библиотека трябва да бъде инсталирана на компютъра (който се използва за разработване на тестови случаи)
  • Selendroid-Сървър – Сървърът, който работи, е в приложението, което се тества Android устройство или симулатор. Това са основните компоненти на a Selendroid архитектура
  • Android Driver-App – Вградено Android драйвер, приложение Web View за тестване на мобилната мрежа.
  • Selendroid-Standalone – Този компонент се използва за инсталиране на Selendroid сървър и тестваното приложение (AUT)

Първи стъпки с Selendroid

Вече разбрахте важността на Selendroid. А сега да си изцапаме ръцете Selendroid.

Трябва да се направят 3 стъпки преди първия тест с Selendroid

Първи стъпки с Selendroid

Настройване на a Selendroid заобикаляща среда

Selendroid може да работи на Window, Linux и Mac OS. В този урок ще настроим Selendroid в Windows OS.

Преди да използвате Selendroid, първо трябва да инсталирате следния пакет

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

    Трябва да приемете лицензионното споразумение и да изтеглите програмата за инсталиране на Java (Изберете x64 или x86 база на вашата операционна система)

    Настройване на a Selendroid Заобикаляща среда

    Изтеглете и инсталирайте Java SDK като нормален софтуер

  • Последна версия на Android SDK
  • Вашият компютър трябва да има поне един Android Виртуално устройство (AVD) или реално Android устройство, включено в компютъра.
  • Selendroid Самостоятелен със зависимости, Selendroid Удовлетвореност, и Selenium Удовлетвореност
  • Eclipse софтуер
  • Настройте JAVA_HOME и ANDROID_HOME

    Стъпка 1) В прозореца щракнете с десния бутон върху Компютър -> Имоти -> Разширена системна настройка

    Настройване на a Selendroid Заобикаляща среда

    Стъпка 2) Показване на прозореца със свойства на системата, изберете раздел Разширени -> Променливи на околната среда

    Настройване на a Selendroid Заобикаляща среда

    Стъпка 3) В прозореца на средата щракнете върху Нов -> Въведете променлива ANDROID_HOME, както следва

    Настройване на a Selendroid Заобикаляща среда

    Стойността на променливата е пътят към android-sdks, който вече сте инсталирали.

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

    Настройване на a Selendroid Заобикаляща среда

    Настройване на a Selendroid Заобикаляща среда

    Подобно на ANDROID_HOME, добавете нова променлива JAVA_HOME със стойност както по-долу

    Настройване на a Selendroid Заобикаляща среда

    Ценността е Пътят към вашия Java JDK инсталация

    Стъпка 4) Рестартирайте вашия компютър -> Направен

Как да стартирате Selendroid

Стъпка 1) Получаване на тестово приложение

Можете да използвате съществуващите Selendroid тествайте приложението, за да проверите как Selendroid работи (връзка към пробно приложение в тест)

След като изтеглянето приключи, копирайте този APK и горния Selendroid Самостоятелен буркан файл в папка с име „Guru99″

Стъпка 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 ms) чрез команда

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

    След изтичането на това време, ако емулаторът не може да стартира, Selendroid ще изведе грешка при изключение (Възникна грешка при търсене на устройства/емулатори.), след което ще спре да работи

  4. Когато стартирате Selendroid команда на терминала, ще видите дневник, отпечатан на екрана. Можете да промените вида на регистрационния файл, който виждате, като добавите следния параметър

    Параметър: -logLevel [тип дневник]

    Стойностите на нивото на регистрационния файл са ГРЕШКА, ПРЕДУПРЕЖДЕНИЕ, ИНФОРМАЦИЯ, ОТСТРАНЯВАНЕ НА ГРЕШКИ и ПОДРОБНО. По подразбиране: ГРЕШКА.

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

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

    - Selendroid отпечатайте само журнала ПРЕДУПРЕЖДЕНИЕ

Започнете първия си тест с Selendroid

Този раздел е ръководство стъпка по стъпка за създаване на вашия първи тестов скрипт с помощта на Selendroid

Да предположим, че имаме Android приложение под тестово име Guru99App. Приложението включва текстово поле и име на бутон „Покажи текст“.

ИЗТЕГЛЕТЕ APK ТУК

Първи тест с Selendroid

Трябва да изпълним следното Тестов случай използвайки Selendroid

Тестови Случаи състояние Очакван резултат
  1. Стартирайте приложението
  2. Въведете текст „Тест Guru99” към текстовото поле
  3. Натиснете бутона „Покажи текст“.
Двоичният файл на тестваното приложение е наличен

Устройството е свързано към компютър

Текстът „Покажи текст тук“ се променя на текста

които потребителят въвежда в текстово поле

Стъпка 1) Създаване на Java проект в Eclipse

Стъпка 2) Добавете селен и Selendroid jar файл в среди на eclipse

Щракнете с десния бутон върху Guru99Test Project -> Път за изграждане -> Добавяне на външен ArchiВес

Първи тест с Selendroid

Отидете до папката, която съхранява jar файловете

Трябва да се добавят 3 jar файла

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

Избери всички -> Изберете Отваряне, за да добавите jar файл към проекта

Първи тест с Selendroid

Стъпка 3) след добавяне на горната библиотека, тези библиотеки ще бъдат добавени към референтните библиотеки на тестовия проект. Тестерът може да използва API на тези библиотеки, за да разработи тестовата програма

Създайте пакет „com.guru.test“ и добавете java файл „Guru99Test.java“ като по-долу

Щракнете с десния бутон на Guru99Test -> НОВ -> Пакет

Първи тест с Selendroid

Въведете com.guru.test в полето Име на New Java Диалогов прозорец за пакетиране à Край

Първи тест с Selendroid

- Eclipse ще създаде списъчни папки и подпапки като тази в структурата на изходния код

Първи тест с Selendroid

Стъпка 4) Инсталирайте TestNG за Eclipse

In Eclipse, Помощ -> Инсталирайте нов софтуер, в диалоговия прозорец за инсталиране щракнете върху Добавяне и въведете следното

Натиснете OK -> След това инсталирайте TestNG

Първи тест с Selendroid

Стъпка 5) Копирайте Guru99App.apk в папката на Test App

Първи тест с Selendroid

Стъпка 6) Вземете ID на приложение, което се тества.

Да предположим, че имаме име на 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 Сървърът стартира, отворете примерния тестов проект Guru99test на Eclipse, задайте точка на прекъсване на ред 77 във файла Guru99Test.java, като щракнете двукратно върху ред 77 -> Ще се покаже точка като по-долу

Първи тест с Selendroid

Започнете тестова сесия, като щракнете с десния бутон върху проекта Guru99Test -> Отстраняване на грешки като -> Testng Тест.

Ще започне тестова сесия, както е показано по-долу

Първи тест с Selendroid

Стъпка 9) Вземете идентификатора на GUI елемента на тестваното приложение

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

Ще видите, че приложението под тест е стартирано, както е показано по-долу

Първи тест с Selendroid

Използвайте курсора на мишката върху всеки UI елемент на AUT (бутон, текстово поле, текстов етикет), идентификаторът на всеки елемент ще се маркира в десния панел

Първи тест с Selendroid

След тази стъпка можете да получите идентификатора на всеки горен UI елемент

  • Бутон Показване на ИД на текст: “btnShow"
  • ID на текстовото поле: „edtText"
  • ID на текста на етикета: „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 Версия API 10

Стъпка 11) Стартирайте тестовото приложение: щракнете с десния бутон върху Guru99test -> Бягай като -> TestNG тест

Първи тест с Selendroid

Стъпка 10) Скриптът стартира, както следва

Първи тест с Selendroid

Стъпка 12) След като тестът завърши изпълнението, TestNG автоматично генерира тестовия отчет, както следва

Първи тест с Selendroid

Първи тест с Selendroid

Браво, приключихте теста.

Oбобщение

  • Selendroid е много мощен инструмент за тестване Android родното приложение, хибридното приложение, както и уеб приложението.
  • Може да се използва на реални устройства, както и на симулатора.
  • Освен това ви позволява да провеждате тестове паралелно, като изпълнявате тест на няколко устройства.
  • Цялата Selendroid пакетът се състои от четири компонента:
    • Клиент на уеб драйвер,
    • Selendroid-Сървър,
    • Android Приложение шофьор
    • Selendroid- стой сам
  • да използвам Selendroid имате нужда Java JDK, Android SDK и Eclipse инсталирана.