Selendroid Урок за начинаещи с пример
Разработили ли сте някога Android приложение и да го публикувате в Google Play? Какво ще направите, ако получите потребителска рецензия като -
Когато публикувате приложение в Google Play, то трябва да бъде добре тествано, за да избегнете потенциални грешки. Има много тестови сценарии, които трябва да се изпълнят преди публикуване на приложение. За да запазите Тестване усилия, имате нужда от инструмент за тестване. Един от най-добрите инструменти за тестване на Android приложението е Selendroid.
Какво е Selendroid?
Selendroid е тестова автоматизирана рамка за многотипове мобилни приложения: роден намлява хибрид Android приложение и Подвижен уеб.
Можете да напишете тестовете с помощта на Selenium 2 клиентски API. защото Selendroid все още повторно използване на съществуващото Selenium инфраструктура за уеб
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 съдържа 4 основни компонента:
- Клиент на уеб драйвер – The Java клиентска библиотека, базирана на Selenium. Тази библиотека трябва да бъде инсталирана на компютъра (който се използва за разработване на тестови случаи)
- Selendroid-Сървър – Сървърът, който работи, е в приложението, което се тества Android устройство или симулатор. Това са основните компоненти на a Selendroid архитектура
- Android Driver-App – Вградено Android драйвер, приложение Web View за тестване на мобилната мрежа.
- Selendroid-Standalone – Този компонент се използва за инсталиране на Selendroid сървър и тестваното приложение (AUT)
Първи стъпки с Selendroid
Вече разбрахте важността на Selendroid. А сега да си изцапаме ръцете Selendroid.
Трябва да се направят 3 стъпки преди първия тест с Selendroid
Настройване на a Selendroid заобикаляща среда
Selendroid може да работи на Window, Linux и Mac OS. В този урок ще настроим Selendroid в Windows OS.
Преди да използвате Selendroid, първо трябва да инсталирате следния пакет
- Java SDK (минимум 1.6)
Трябва да приемете лицензионното споразумение и да изтеглите програмата за инсталиране на Java (Изберете x64 или x86 база на вашата операционна система)
Изтеглете и инсталирайте Java SDK като нормален софтуер
- Последна версия на Android SDK
- Вашият компютър трябва да има поне един Android Виртуално устройство (AVD) или реално Android устройство, включено в компютъра.
- Selendroid Самостоятелен със зависимости, Selendroid Удовлетвореност, и Selenium Удовлетвореност
- Eclipse софтуер
- Настройте JAVA_HOME и ANDROID_HOME
Стъпка 1) В прозореца щракнете с десния бутон върху Компютър -> Имоти -> Разширена системна настройка
Стъпка 2) Показване на прозореца със свойства на системата, изберете раздел Разширени -> Променливи на околната среда
Стъпка 3) В прозореца на средата щракнете върху Нов -> Въведете променлива ANDROID_HOME, както следва
Стойността на променливата е пътят към android-sdks, който вече сте инсталирали.
Намерете системната променлива Path -> редактирам -> Добавете следния ред след текущия ред
Подобно на ANDROID_HOME, добавете нова променлива JAVA_HOME със стойност както по-долу
Ценността е Пътят към вашия Java JDK инсталация
Стъпка 4) Рестартирайте вашия компютър -> Направен
Как да стартирате Selendroid
Стъпка 1) Получаване на тестово приложение
Можете да използвате съществуващите Selendroid тествайте приложението, за да проверите как Selendroid работи (връзка към пробно приложение в тест)
След като изтеглянето приключи, копирайте този APK и горния Selendroid Самостоятелен буркан файл в папка с име „Guru99″
Стъпка 2) Стартирайте Selendroid
Отворете терминала на Windows & отидете до папката Guru99, създадена в стъпка 1.
Изпълнете следната команда
Резултатът ще се покаже както следва
След като изпълните тази команда, Selendroid-самостоятелен HTTP сървър стартира! Номерът на порта по подразбиране на този сървър е 4444. Всички хардуерни устройства, както и Android Виртуално устройство ще бъде сканирано и разпознато автоматично. Selendroid ще идентифицира Android целева версия и размер на екрана на устройството.
За да проверите Android целевата версия, както и информацията за устройството, можете да стартирате следния URL адрес в браузър: http://localhost:4444/wd/hub/status
.
Selendroid основна команда
Този раздел ви представя някои основни Selendroid-Самостоятелен команден ред. Можете да ги използвате, за да настроите Selendroid тестова среда
- Задаване на порт на Selendroid
Портът по подразбиране на Selendroid е 4444. Но можете да промените на друг порт, като добавите параметър към командата за стартиране Selendroid
Параметър: -порт [номер на порт]
Например:
В горната команда 5555 е новият порт.
Така че URL адресът за проверка Android целевата версия се променя на: http://localhost:5555/wd/hub/status
- Посочете местоположението на тестваното приложение (двоичен APK файл). Selendroid често се изисква абсолютният път за този файл
Параметър: -прил [път на файла]
Например:
В горната команда, Selendroid автоматично намира базата на двоичен файл в „C:\Guru99App.apk“, за да получи информацията за тестваното приложение.
Проверете URL адреса
http://localhost:4444/wd/hub/status
, ще видите тази информация - Сменете порта Selendroid използва за комуникация със сървъра за измерване. Selendroid използва порт 8080 по подразбиране
Параметър: -selendroidServerPort [номер на порт]
Пример
Сега портът е променен на 9000
- Променете времето за изчакване, за да стартирате емулатори. Единицата е милисекунди.
Параметър: -timeoutEmulatorStart
По подразбиране Selendroid ще изчака 300,000 200,000 милисекунди, докато емулаторът стартира. Можете да промените на ново изчакване (XNUMX XNUMX ms) чрез команда
След изтичането на това време, ако емулаторът не може да стартира, Selendroid ще изведе грешка при изключение (Възникна грешка при търсене на устройства/емулатори.), след което ще спре да работи
- Когато стартирате Selendroid команда на терминала, ще видите дневник, отпечатан на екрана. Можете да промените вида на регистрационния файл, който виждате, като добавите следния параметър
Параметър: -logLevel [тип дневник]
Стойностите на нивото на регистрационния файл са ГРЕШКА, ПРЕДУПРЕЖДЕНИЕ, ИНФОРМАЦИЯ, ОТСТРАНЯВАНЕ НА ГРЕШКИ и ПОДРОБНО. По подразбиране: ГРЕШКА.
Например, задайте Selendroid за да отпечатате само журнала ПРЕДУПРЕЖДЕНИЕ, можете да използвате тази команда
- Selendroid отпечатайте само журнала ПРЕДУПРЕЖДЕНИЕ
Започнете първия си тест с Selendroid
Този раздел е ръководство стъпка по стъпка за създаване на вашия първи тестов скрипт с помощта на Selendroid
Да предположим, че имаме Android приложение под тестово име Guru99App. Приложението включва текстово поле и име на бутон „Покажи текст“.
Трябва да изпълним следното Тестов случай използвайки Selendroid
Тестови Случаи | състояние | Очакван резултат |
---|---|---|
|
Двоичният файл на тестваното приложение е наличен
Устройството е свързано към компютър |
Текстът „Покажи текст тук“ се променя на текста
които потребителят въвежда в текстово поле |
Стъпка 1) Създаване на Java проект в Eclipse
Стъпка 2) Добавете селен и Selendroid jar файл в среди на eclipse
Щракнете с десния бутон върху Guru99Test Project -> Път за изграждане -> Добавяне на външен ArchiВес
Отидете до папката, която съхранява 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 файл към проекта
Стъпка 3) след добавяне на горната библиотека, тези библиотеки ще бъдат добавени към референтните библиотеки на тестовия проект. Тестерът може да използва API на тези библиотеки, за да разработи тестовата програма
Създайте пакет „com.guru.test“ и добавете java файл „Guru99Test.java“ като по-долу
Щракнете с десния бутон на Guru99Test -> НОВ -> Пакет
Въведете com.guru.test в полето Име на New Java Диалогов прозорец за пакетиране à Край
- Eclipse ще създаде списъчни папки и подпапки като тази в структурата на изходния код
Стъпка 4) Инсталирайте TestNG за Eclipse
In Eclipse, Помощ -> Инсталирайте нов софтуер, в диалоговия прозорец за инсталиране щракнете върху Добавяне и въведете следното
- Име: TestNG
- Местоположение: https://github.com/selendroid/selendroid
Натиснете OK -> След това инсталирайте TestNG
Стъпка 5) Копирайте Guru99App.apk в папката на Test App
Стъпка 6) Вземете ID на приложение, което се тества.
Да предположим, че имаме име на 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 Сървърът стартира, отворете примерния тестов проект Guru99test на Eclipse, задайте точка на прекъсване на ред 77 във файла Guru99Test.java, като щракнете двукратно върху ред 77 -> Ще се покаже точка като по-долу
Започнете тестова сесия, като щракнете с десния бутон върху проекта Guru99Test -> Отстраняване на грешки като -> Testng Тест.
Ще започне тестова сесия, както е показано по-долу
Стъпка 9) Вземете идентификатора на GUI елемента на тестваното приложение
След като тестовата сесия започне успешно, отворете браузъра, навигирайте до URL адреса http://localhost:4444/inspector
Ще видите, че приложението под тест е стартирано, както е показано по-долу
Използвайте курсора на мишката върху всеки UI елемент на AUT (бутон, текстово поле, текстов етикет), идентификаторът на всеки елемент ще се маркира в десния панел
След тази стъпка можете да получите идентификатора на всеки горен 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); }
Изпълнете тест
По-долу е кодът за изпълнение на тест. Кодът включва коментарите
Ето отново тестовите стъпки
- Въведете текста „Здравей Гуру“
- Щракнете върху бутона Показване на текст
- Почакай малко
- Проверете дали приложението показва текста, когато потребителят въвежда текстово поле (Напр. Показване на текста „Здравей гуру“)
/** * 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 тест
Стъпка 10) Скриптът стартира, както следва
Стъпка 12) След като тестът завърши изпълнението, TestNG автоматично генерира тестовия отчет, както следва
Браво, приключихте теста.
Oбобщение
- Selendroid е много мощен инструмент за тестване Android родното приложение, хибридното приложение, както и уеб приложението.
- Може да се използва на реални устройства, както и на симулатора.
- Освен това ви позволява да провеждате тестове паралелно, като изпълнявате тест на няколко устройства.
- Цялата Selendroid пакетът се състои от четири компонента:
- Клиент на уеб драйвер,
- Selendroid-Сървър,
- Android Приложение шофьор
- Selendroid- стой сам
- да използвам Selendroid имате нужда Java JDK, Android SDK и Eclipse инсталирана.