Selendroid Tutorial pentru începători cu exemplu
Ați dezvoltat vreodată un Android aplicație și să o publice pe Google Play? Ce veți face dacă primiți o recenzie de utilizator precum -
Când publicați o aplicație pe Google Play, aceasta trebuie să fie bine testată pentru a evita potențialele erori. Există o mulțime de scenarii de testare care ar trebui executate înainte de a publica o aplicație. Pentru a salva Testarea efort, aveți nevoie de un instrument de testare. Unul dintre cele mai bune instrumente de testare pentru Android aplicația este Selendroid.
Ce Este Selendroid?
Selendroid este un cadru de automatizare de testare pentru mai multe tipuri de aplicații mobile: nativ și hibrid Android aplicație și mobil web.
Puteți scrie testele folosind Selenium 2 API-uri client. Deoarece Selendroid încă reutilizarea celor existente Selenium infrastructura pentru web
Selendroid este un instrument puternic de testare. Poate fi folosit pe emulatoare si reale Dispozitive
De ce avem nevoie? Selendroid?
Selendroid este un instrument excelent de testare. Dar s-ar putea să vă îndoiți de utilitatea acestuia.
Această secțiune va prezenta caracteristicile importante ale Selendroid pentru a răspunde la întrebarea de ce aveți nevoie Selendroid.
- Puteți testa aplicația testată folosind Selendroid fără nicio modificare a aplicației. Ai nevoie doar de fișierul binar (APK) instalat pe computer. Pentru a instala fișierul binar pe dispozitiv, aplicația de testare și aplicația mobilă trebuie să fie semnate cu aceeași cheie de semnare
- Selendroid Aplicația de testare poate interacționa cu mai multe dispozitive sau simulatoare simultan. Este un mare avantaj al Selendroid. Deci, puteți testa aplicația dvs. cu diverse Android dispozitive pentru a verifica compatibilitatea.
- Selendroid poate simula acțiunile utilizatorului uman într-o aplicație, cum ar fi atingerea, glisarea, glisarea și plasarea pe dispozitive
- Puteți schimba dispozitivele hardware (Plug and unplug) în timpul testării fără a reporni sau opri testul. Selendroid recunoaște automat noile dispozitive
- Corespunzător la Android Versiunea API sus, Selendroid susține și noul Android API (de la API 10 la API 19)
- Selendroid are, de asemenea, un instrument de inspector încorporat pentru a vă ajuta să identificați elementul UI al unei aplicații testate. De exemplu, butonul ID, câmpul de text, vizualizarea text...
Selendroid Architectură
Selendroid se bazează pe Android cadrul de instrumentare. Selendroid testele sunt scrise pe baza Selenium Web driver client API, astfel încât acceptă integrarea completă cu actualul Selenium cadre.
Următoarea figură descrie arhitectura Selendroid
Selendroid contine 4 componente majore:
- Web Driver Client – The Java bibliotecă client bazată pe Selenium. Această bibliotecă ar trebui să fie instalată pe computer (care este folosită pentru a dezvolta cazurile de testare)
- Selendroid-Server – Serverul care rulează să fie în aplicația testată Android dispozitiv sau simulator. Acestea sunt componentele principale ale a Selendroid arhitectură
- Android Driver-App – O aplicație încorporată Android driver, aplicația Web View pentru a testa web-ul mobil.
- Selendroid-Standalone – Această componentă este utilizată pentru a instala Selendroid server și aplicația testată (AUT)
Noțiuni de bază cu Selendroid
Ați cunoscut deja importanța Selendroid. Acum hai să ne murdărim mâinile Selendroid.
Există 3 pași care trebuie făcuți înainte de primul test cu Selendroid
Configurarea a Selendroid mediu inconjurator
Selendroid poate lucra pe Windows, Linux și Mac OS. În acest tutorial, vom configura Selendroid în Windows OS.
Înainte de a utiliza Selendroid, mai întâi trebuie să instalați următorul pachet
- Java SDK (minimum 1.6)
Trebuie să acceptați acordul de licență și să descărcați programul de instalare java (Alegeți baza x64 sau x86 pe sistemul de operare)
Descărcați și instalați Java SDK ca software normal
- Ultima versiune a Android SDK
- Computerul dvs. trebuie să aibă cel puțin unul Android Dispozitiv virtual (AVD), sau un real Android dispozitiv conectat la PC.
- Selendroid Standalone cu dependențe, Selendroid Client și Selenium Client
- Eclipse software-ul
- Configurați JAVA_HOME și ANDROID_HOME
Pas 1) În fereastră, faceți clic dreapta pe Computer -> Proprietăţi -> Setări avansate de sistem
Pas 2) Afișează fereastra System Properties, selectați fila Advanced -> variabile de mediu
Pas 3) Se afișează fereastra Mediu, faceți clic pe Nou -> Introduceți o variabilă ANDROID_HOME după cum urmează
Valoarea variabilei este calea către Android-sdks pe care le-ați instalat deja.
Găsiți variabila de sistem Path -> Editati -> Adăugați următoarea linie după linia curentă
Similar cu ANDROID_HOME, adăugați o nouă variabilă JAVA_HOME cu valoarea de mai jos
Valoarea este Calea către dumneavoastră Java Instalare JDK
Pasul 4) Reporniți computerul -> Terminat
Cum se lansează Selendroid
Pasul 1) Obținerea unei aplicații în curs de testare
Puteți utiliza cele existente Selendroid testați aplicația pentru a verifica așa cum Selendroid lucrări (Link pentru a eșantiona aplicația supusă testului)
Odată ce descărcarea este completă, copiați acest APK și cele de mai sus Selendroid Borcan de sine stătător fișier într-un folder cu numele „Guru99″
Pasul 2) Lansați Selendroid
Deschideți terminalul Windows & navigați la folderul Guru99 creat la pasul 1.
Rulați următoarea comandă
Ieșirea se va afișa după cum urmează
După rularea acestei comenzi, Selendroid-Pornește serverul HTTP independent! Numărul de port implicit al acestui server este 4444. Toate dispozitivele hardware, precum și Android Dispozitivul virtual, va fi scanat și recunoscut automat. Selendroid va identifica Android versiunea țintă și dimensiunea ecranului dispozitivului.
Pentru a verifica Android versiunea țintă, precum și informațiile despre dispozitiv, puteți lansa următoarea adresă URL pe un browser: http://localhost:4444/wd/hub/status
.
Selendroid comanda de bază
Această secțiune vă prezintă câteva elemente de bază Selendroid-Linie de comandă autonomă. Le puteți folosi pentru a configura Selendroid mediu de testare
- Setarea portului pentru Selendroid
Portul implicit al Selendroid este 4444. Dar puteți trece la alt port adăugând un parametru la comanda de lansare Selendroid
Parametru: -port [numarul portului]
De exemplu:
În comanda de mai sus, 5555 este noul port.
Deci URL-ul pentru a verifica Android versiunea țintă este schimbată în: http://localhost:5555/wd/hub/status
- Specificați locația aplicației testate (fișier APK binar). Selendroid adesea necesita calea absolută pentru acest fișier
Parametru: -app [calea fișierului]
De exemplu:
În comanda de mai sus, Selendroid găsiți automat baza fișierului binar pe „C:\Guru99App.apk” pentru a obține informațiile despre aplicația testată.
Verificați adresa URL
http://localhost:4444/wd/hub/status
, veți vedea aceste informații - Schimbați portul Selendroid folosește pentru a comunica cu serverul de instrumente. Selendroid folosește portul 8080 ca implicit
Parametru: -selendroidServerPort [numarul portului]
Exemplu
Portul este acum schimbat la 9000
- Modificați timpul de expirare pentru a porni emulatorii. Unitatea este milisecunde.
Parametru: -timeoutEmulatorStart
În mod implicit, Selendroid va aștepta 300,000 de milisecunde până când emulatorul pornește. Puteți trece la un nou timeout (200,000 ms) prin comandă
După acest timp a expirat, dacă emulatorul nu poate porni, emul Selendroid va arunca eroarea de excepție (Eroare a apărut în timpul căutării dispozitivelor/emulatorilor.) apoi opriți rularea
- Când porniți Selendroid comanda pe terminal, veți vedea un jurnal tipărit pe ecran. Puteți schimba tipul de jurnal pe care îl vedeți adăugând următorul parametru
Parametru: -logLevel [tip de jurnal]
Valorile nivelului de jurnal sunt ERROR, WARNING, INFO, DEBUG și VERBOSE. Implicit: EROARE.
De exemplu, setați Selendroid pentru a tipări numai jurnalul de AVERTIZARE, puteți utiliza această comandă
Selendroid tipăriți doar jurnalul de AVERTIZARE
Începeți primul test cu Selendroid
Această secțiune este un ghid pas cu pas pentru crearea primului script de testare folosind Selendroid
Să presupunem că avem un Android aplicație sub numele de test Guru99App. Aplicația include un câmp de text și un nume de buton „Afișează text”.
Trebuie să executăm următoarele Caz de testare folosind Selendroid
Cazuri de testare | Condiție | Rezultat așteptat |
---|---|---|
|
Binarul aplicației testate este disponibil
Un dispozitiv este conectat la PC |
Textul „Text Show here” este schimbat în text
pe care utilizatorul îl introduce într-un câmp de text |
Pas 1) Crearea unei Java proiect in Eclipse
Pas 2) Adăugați seleniu și Selendroid jar în medii eclipse
Faceți clic dreapta pe Proiectul Guru99Test -> Construiți calea -> Adăugați extern Archives
Navigați la folderul care a stocat fișierele jar
Ar trebui adăugate 3 fișiere jar
- selendroid-client-0.10.0.jar : Selendroid biblioteca client java
- selendroid-standalone-0.11.0-cu-dependențe : Selendroid bibliotecă de server autonomă
- selenium-java-2.40.0.jar : Selenium Biblioteca Web Driver
selectați toate -> Alegeți Deschidere pentru a adăuga un fișier jar la proiect
Pas 3) după adăugarea bibliotecii de mai sus, acele biblioteci vor fi adăugate la Bibliotecile de referință ale proiectului de testare. Un tester poate folosi API-urile acelor biblioteci pentru a dezvolta programul de testare
Creați pachetul „com.guru.test” și adăugați fișierul java „Guru99Test.java” ca mai jos
Faceți clic dreapta pe Guru99Test -> Nou -> Pachet
Tastați com.guru.test în câmpul Nume din Nou Java Dialog pachet à Terminare
Eclipse va crea liste de foldere și subdosare ca acesta în structura codului sursă
Pas 4) Instalare TestNG pentru Eclipse
In Eclipse, Ajutor -> Instalați software nou, în caseta de dialog Instalare, faceți clic pe Adăugare și introduceți următoarele
- Nume: TestNG
- Locație: https://github.com/selendroid/selendroid
Apăsați OK -> În continuare pentru a instala TestNG
Pas 5) Copiați Guru99App.apk în folderul Test App
Pas 6) Obțineți ID-ul unei aplicații testate.
Să presupunem că avem un nume de fișier APK Guru99App.apk. Urmați pasul descris în secțiunea anterioară, executați comanda pe terminal
Deschideți următorul link într-un browser: http://localhost:4444/wd/hub/status
.
Se afișează informațiile dispozitivului, copiați valoarea appId „com.guru99app:1.0”
Pas 7) Deschideți fișierul Guru99Test.java (în exemplul de cod) și modificați după cum urmează
Pentru a crea o nouă sesiune de testare cu Selendroid, trebuie să furnizați id-ul aplicației în formatul: com.guru99app:1.0. Acest ID de aplicație poate este identificat la pasul 6. Dacă nu setați ID-ul aplicației care să se potrivească cu Android dispozitiv, sesiunea de testare va genera o eroare și nu va porni.
După inițializarea dispozitivului găsit, Selendroid creează un server selendroid personalizat și instalează Selendroid server de pe el
Selendroid de asemenea, instalează aplicația testată și pornește serverul selendroid pe dispozitiv
După inițializarea cu succes a sesiunii de testare, comanda de testare începe să se execute pe un dispozitiv. (De exemplu, introducerea textului, apăsarea butonului...). Dacă testul adaugă sesiunea de testare, emulatorul se va opri automat
Pas 8) Începeți noua sesiune de testare
Lansarea Selendroid server folosind următoarea comandă pe terminal, ca la pasul 6
După Selendroid Serverul a pornit, deschideți exemplul de proiect de testare Guru99test pe Eclipse, setați un punct de întrerupere la linia 77 din fișierul Guru99Test.java făcând dublu clic pe linia 77 -> Se va afișa un punct ca mai jos
Începeți o sesiune de testare prin clic dreapta pentru proiectul Guru99Test -> Depanare ca -> Testng Test.
O sesiune de testare va începe ca mai jos
Pas 9) Obțineți ID-ul elementului GUI al unei aplicații testate
După ce sesiunea de testare a început cu succes, deschideți browserul, navigați la adresa URL http://localhost:4444/inspector
Veți vedea că aplicația în curs de testare este lansată ca mai jos
Folosiți mouse-ul la fiecare element UI al AUT (Button, TextField, Text Label), ID-ul fiecărui element va fi evidențiat în panoul din dreapta
După acest pas, puteți obține ID-ul fiecărui element UI de mai sus
- Butonul Afișează ID text: „btnShow
- ID câmp text: „edtText
- ID text etichetă: „txtView
Aceste ID-uri vor fi folosite la pasul următor
Pas 10) Intrați în programul de testare ca mai jos
Un program de testare folosind Selendroid include 3 secțiuni
Test de configurare:
Următorul este codul pentru testul de configurare, acesta va configura condiția pentru o sesiune de testare. În cazul unei erori, Selendroid va arunca excepția și aplicația de testare se va opri.
Codul include comentarii pentru a explica fiecare afirmație.
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); }
Executați testul
Mai jos este codul pentru a executa un test. Codul include comentariile
Iată din nou pașii de testare
- Introdu textul „Hello Guru”
- Faceți clic pe Afișați butonul text
- Așteaptă un pic
- Verificați dacă aplicația afișează textul pe măsură ce utilizatorul introduce într-un câmp de text (de ex. Afișați textul „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()); }
Terminați testul
Următorul cod va finaliza testul prin oprirea Selendroid conducător auto.
/** * Stop the Selendroid driver * */ @AfterSuite public void tearDown() { driver.quit(); }
Puteți vedea detaliile în exemplu de cod inclus în acest articol.
Pas 10) Connect Android dispozitiv la PC prin cablu USB. Puncte de observat -
- Asigurați-vă că dispozitivul nu are configurată blocarea ecranului.
- Dispozitivele trebuie să fie conectate prin USB la computerul pe care rulează componenta autonomă selendroid.
- Dispozitivul ar trebui să se instaleze cel puțin Android Target Versiunea API 10
Pas 11) Rulați aplicația de testare: faceți clic dreapta pe Guru99test -> Aleargă ca -> TestNG test
Pas 10) Scriptul a început executat după cum urmează
Pas 12) După terminarea execuției testului, TestNG automat generează raportul de testare după cum urmează
Bravo, ai terminat testul acum.
Rezumat
- Selendroid este un instrument foarte puternic pentru testare Android aplicația nativă, aplicația hibridă, precum și aplicația web.
- Poate fi folosit pe dispozitive reale, precum și pe simulator.
- De asemenea, vă permite să rulați teste în paralel, rulând un test pe mai multe dispozitive.
- Intregul Selendroid suita este compusă din patru componente:
- Client Web Driver,
- Selendroid-Server,
- Android Aplicația Driver
- Selendroid-de sine stătătoare
- A folosi Selendroid ai nevoie Java JDK, Android SDK și Eclipse instalat.