Урок за Selendroid за начинаещи с пример

Съдържание:

Anonim

Разработвали ли сте някога приложение за Android и го публикувате в Google Play? Какво ще направите, ако получите потребителски отзив като -

Когато публикувате приложение в Google Play, то трябва да бъде добре тествано, за да се избегнат потенциалните грешки. Има много тестови сценарии, които трябва да бъдат изпълнени преди публикуването на приложение. За да спестите усилията за тестване, имате нужда от инструмент за тестване. Един от най-добрите инструменти за тестване за приложение за Android е Selendroid.

  • Какво е Selendroid?
  • Защо се нуждаем от Selendroid?
  • Архитектура на Selendroid
  • Първи стъпки със Selendroid
  • Настройване на среда на Selendroid
  • Как да стартирам Selendroid
  • Основна команда на Selendroid
  • Започнете първия си тест със Selendroid

Какво е Selendroid?

Selendroid е тестова рамка за автоматизация за мулти-тип мобилни приложения: естествено и хибридно приложение за Android и мобилна мрежа.

Можете да напишете тестовете, като използвате API за клиент на Selenium 2. Тъй като Selendroid все още използва повторно съществуващата инфраструктура на Selenium за мрежата

Selendroid е мощен инструмент за тестване. Може да се използва на емулатори и реални устройства

Защо се нуждаем от Selendroid?

Selendroid е чудесен инструмент за тестване. Но все пак може да се съмнявате в полезността му.

Този раздел ще представи важните характеристики на Selendroid, за да отговори на въпроса защо се нуждаете от Selendroid.

  • Можете да тествате тестваното приложение с помощта на Selendroid, без да променяте приложението. Трябва ви само двоичен файл (APK), инсталиран на компютъра. За да инсталирате двоичния файл на устройството, тестовото приложение и мобилното приложение трябва да бъдат подписани с един и същ клавиш за знак
  • Тестовото приложение Selendroid може да взаимодейства едновременно с множество устройства или симулатори. Това е голямо предимство на Selendroid. Така че можете да тествате приложението си с различни устройства с Android, за да проверите съвместимостта.
  • Selendroid може да симулира действия на човешки потребител върху приложение, като докосване, плъзгане, плъзгане и пускане върху устройства
  • Можете да промените хардуерните устройства (Plug and unplug) по време на тестването, без да рестартирате или спрете теста. Selendroid автоматично разпознава новите устройства
  • Съответно на версията на Android API нагоре, Selendroid поддържа и новия Android API (от API 10 до API 19)
  • Selendroid има и вграден инструмент за инспектор, който ви помага да идентифицирате потребителския интерфейс на тестваното приложение. Например ID бутон, текстово поле, текстов изглед ...

Архитектура на Selendroid

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

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

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

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

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

Вече сте знаели значението на Selendroid. Сега нека си изцапаме ръцете със Selendroid.

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

Настройване на среда на Selendroid

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

След като изтеглянето приключи, копирайте този APK и горния файл на jar на Selendroid Standalone в папка с името " Guru99"

Стъпка 2) Стартирайте Selendroid

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

Изпълнете следната команда

Изходът ще се покаже както следва

След стартиране на тази команда се стартира самостоятелен HTTP сървър Selendroid! Номерът на порта по подразбиране на този сървър е 4444. Всички хардуерни устройства, както и Android Virtual Device, ще бъдат сканирани и разпознати автоматично. Selendroid ще идентифицира целевата версия на Android и размера на екрана на устройството.

За да проверите целевата версия на Android, както и информацията за устройството, можете да стартирате следния URL адрес в браузър:

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

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

Този раздел ви представя някои основни командни редове Selendroid-Standalone. Можете да ги използвате, за да настроите среда за тестване на Selendroid

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

    Портът по подразбиране на Selendroid е 4444. Но можете да преминете към друг порт, като добавите параметър към командата за стартиране на Selendroid

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

    Например:

    В горната команда 5555 е новият порт.

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

  1. Посочете местоположението на тестваното приложение (двоичен APK файл). Selendroid често изисква абсолютния път за този файл

    Параметър: -app [път на файла]

    Например:

    В горната команда Selendroid автоматично намира базата на двоичен файл на "C: \ Guru99App.apk", за да получи информацията за тестваното приложение.

    Проверете URL адреса http: // localhost: 4444 / wd / hub / status, ще видите тази информация

  2. Променете порта, който Selendroid използва за комуникация със сървър за измерване. Selendroid използва порта 8080 по подразбиране

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

    Пример

    Портът сега е променен на 9000

  3. Променете времето за изчакване, за да стартирате емулатори. Единицата е милисекунди.

    Параметър: -timeoutEmulatorStart

    По подразбиране Selendroid ще изчака 300 000 милисекунди, докато емулаторът стартира. Можете да преминете към нов таймаут (200 000 ms) чрез команда

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

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

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

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

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

    Selendroid отпечатва само дневника ПРЕДУПРЕЖДЕНИЕ

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

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

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

ИЗТЕГЛЕТЕ АПК ТУК

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

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

Състояние

Очакван резултат:

  1. Стартирайте приложението
  2. Въведете текст " Guru99 Test " в текстовото поле
  3. Натиснете бутона "Показване на текст"

Наличен е двоичен файл на тестваното приложение

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

Текстът "Показване на текст тук" се променя на текста

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

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

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

Щракнете с десния бутон върху Guru99Test Project -> Build Path -> Add External Archives

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

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

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

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

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

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

Щракнете с десния бутон върху Guru99Test -> Ново -> Пакет

Въведете com.guru.test в полето Name в диалоговия прозорец New Java Package à Finish

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

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

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

  • Име: TestNG
  • Местоположение: http://selendroid.io/

Натиснете OK -> Next, за да инсталирате TestNG

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

Стъпка 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-сървъра на устройството

След инициализиране на тестовата сесия успешно, тестовата команда започва да се изпълнява на устройство. (Като въвеждане на текст, натиснете бутона

...). Ако тестът добави тестовата сесия, емулаторът ще спре автоматично

Стъпка 8) Започнете новата тестова сесия

Стартирайте сървъра Selendroid, като използвате следната команда на терминала като стъпка 6

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

Започнете тестова сесия, като щракнете с десния бутон на проекта Guru99Test -> Debug As -> Testng Test.

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

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

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

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

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

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

  • Бутон Показване на текстов идентификатор: " btnShow "
  • Идент. № на текстовото поле: " edtText "
  • Идент. № на текста на етикета: " txtView "

Тези идентификатори ще бъдат използвани в следващата стъпка

Стъпка 10) Въведете тестовата програма, както по-долу

Тестова програма, използваща Selendroid, включва 3 раздела

Тест за настройка:

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

Кодът включва коментарите, за да обясни всяко твърдение.

пакет com.guru.test;импортиране на io.selendroid.SelendroidCapabilities;импортиране на io.selendroid.SelendroidConfiguration;импортиране на io.selendroid.SelendroidDriver;импортиране на io.selendroid.SelendroidLauncher;импортиране на io.selendroid.device.DeviceTargetPlatform;внос org.openqa.selenium.By;импортиране на org.openqa.selenium.WebDriver;внос org.openqa.selenium.WebElement;import org.testng.Assert;внос org.testng.annotations.AfterSuite;внос org.testng.annotations.BeforeSuite;внос org.testng.annotations.Test;/ *** @author Guru99 Test App с помощта на Selendroid* Тествано приложение: Guru99App** /публичноклас Guru99Test {// Деклариране на променлива на уеб драйверачастен драйвер за WebDriver;/ *** Настройте средата преди тестване* @throws Изключение* /@BeforeSuiteпубличноvoid setUp () хвърля изключение {// Стартирайте selendroid-standalone по време на тестаSelendroidConfiguration config = нов SelendroidConfiguration ();// Добавете selendroid-test-app към самостоятелния сървърconfig.addSupportedApp ("Guru99App.apk");// стартиране на самостоятелния сървърSelendroidLauncher selendroidServer = нов SelendroidLauncher (конфиг);selendroidServer.launchSelendroid ();// Създаване на възможностите на selendroidSelendroidCapabilities capa = нов SelendroidCapabilities ();// Посочете, за да използвате тестовото приложение на selendroidcapa.setAut ("com.guru99app: 1.0");// Посочете да използвате API на устройството с Android 19capa.setPlatformVersion (DeviceTargetPlatform.ANDROID19);// Не искайте симулатор, използвайте реално устройствоcapa.setEmulator (false);//capa.wait(10000000);// Създаване на екземпляр на Selendroid Driverдрайвер = нов SelendroidDriver (капа);}

Изпълнете тест

По-долу е даден кодът за изпълнение на тест. Кодът включва коментарите

Ето отново тестовите стъпки

  1. Въведете текста "Hello Guru"
  2. Щракнете върху бутона за показване на текст
  3. Почакай малко
  4. Уверете се, че приложението показва текста при въвеждане от потребителя в текстово поле (напр. Показване на текста "Hello Guru")
 / *** Започнете да изпълнявате тестовия случай* 01. Въведете текста "Selendroid" в текстовото поле* 02. Натиснете бутона OK* @throws Изключение* /@Тестпубличноvoid selendroidTest () хвърля изключение {// Отпечатваме дневникаSystem.out.print ("Започнете изпълнението на теста");// Намерете полето за въвеждане на текст на екрана// Идентификаторът на това текстово поле е получен от стъпка 9WebElement inputField = driver.findElement (By.id ("edtText"));// Проверете дали текстовото поле е активирано, за да може потребителят да въвежда текстAssert.assertEquals ("вярно", inputField.getAttribute ("активирано"));// Въведете текст в текстово полеinputField.sendKeys ("Здравей гуру");// щракнете върху бутона Показване на текст// Идентификационният номер на този бутон беше вземете от стъпка 9Бутон WebElement = driver.findElement (By.id ("btnShow"));button.click ();// Забавяне на времето, за да влезе в силаThread.sleep (5000);// Намерете етикета "Text Show Here" на екрана// Идентификационният номер на този етикет беше вземете от стъпка 9WebElement txtView = driver.findElement (By.id ("txtView"));// Вземете текстовото показване на екранаОчаква се низ = txtView.getText ();// Проверете дали текстът, който потребителят въвежда в текстовото поле, е същият като текстовия дисплей на екранаAssert.assertEquals (очаква се, inputField.getText ());}

Краен тест

Следният код ще завърши теста, като спре драйвера на Selendroid.

 / *** Спрете драйвера на Selendroid** /@AfterSuiteпубличноvoid tearDown () {driver.quit ();}

Можете да видите подробностите в примерния код, включен в тази статия.

Стъпка 10) Свържете Android устройството към компютъра чрез USB кабел. Точки за наблюдение -

  • Моля, уверете се, че устройството няма конфигурирано заключване на екрана.
  • Устройствата трябва да бъдат включени през USB към компютъра, на който се изпълнява самостоятелният компонент selendroid.
  • Устройството трябва да инсталира поне Android Target Version API 10

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

Стъпка 10) Стартирането на скрипта се изпълнява по следния начин

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

Добра работа, сега сте готови с теста.

Обобщение

Обобщение

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