Selendroid Udžbenik za početnike s primjerom
Jeste li ikada razvili Android aplikaciju i objaviti je na Google Playu? Što ćete učiniti ako dobijete recenziju korisnika poput –
Kada objavite aplikaciju na Google Playu, ona mora biti dobro testirana kako biste izbjegli moguće greške. Postoji gomila testnih scenarija koje treba izvršiti prije objavljivanja aplikacije. Da biste spasili Ispitivanje napor, potreban vam je alat za testiranje. Jedan od najboljih alata za testiranje Android aplikacija je Selendroid.
Što je Selendroid?
Selendroid je okvir za automatizaciju testiranja za više vrsta mobilnih aplikacija: rođen i hibrid Android app i mobilni Web.
Testove možete pisati pomoću Selenium 2 klijentska API-ja. Jer Selendroid još uvijek ponovne upotrebe postojećeg Selenium infrastruktura za web
Selendroid je moćan alat za testiranje. Može se koristiti na emulators i pravi uređaji
Zašto nam treba Selendroid?
Selendroid je izvrstan alat za testiranje. Ali još uvijek možete sumnjati u njegovu korisnost.
Ovaj odjeljak predstavit će važne značajke Selendroid odgovoriti na pitanje zašto vam je potrebno Selendroid.
- Testiranu aplikaciju možete testirati pomoću Selendroid bez ikakvih izmjena aplikacije. Trebate samo binarnu datoteku (APK) instaliran na računalu. Kako bi se binarna datoteka instalirala na uređaj, testna aplikacija i mobilna aplikacija moraju biti potpisane istim znakovnim ključem
- Selendroid testna aplikacija može komunicirati s više uređaja ili simulatora istovremeno. To je velika prednost Selendroid. Tako da možete testirati svoju aplikaciju s različitim Android uređaja za provjeru kompatibilnosti.
- Selendroid može simulirati radnje čovjeka i korisnika u aplikaciji, kao što su dodir, prevlačenje, povlačenje i ispuštanje na uređajima
- Možete promijeniti hardverske uređaje (uključi i isključi) tijekom testiranja bez ponovnog pokretanja ili zaustavljanja testa. Selendroid automatski prepoznaje nove uređaje
- Odgovarajući na Android API verzija gore, Selendroid također podržava novi Android API (od API 10 do API 19)
- Selendroid također ima neki ugrađeni alat za nadzor koji vam pomaže identificirati UI element aplikacije koja se testira. Na primjer gumb ID, tekstno polje, prikaz teksta…
Selendroid Architektura
Selendroid temelji se na Android okvir instrumentacije. Selendroid testovi se pišu na temelju Selenium API klijenta web upravljačkog programa, tako da podržava punu integraciju s trenutnim Selenium okviri.
Sljedeća slika opisuje arhitekturu Selendroid
Selendroid sadrži 4 glavne komponente:
- Web Driver Client – The Java klijentska knjižnica temeljena na Selenium. Ova biblioteka treba biti instalirana na računalu (koje se koristi za razvoj testnih slučajeva)
- Selendroid-Poslužitelj – Poslužitelj koji radi nalazi se u aplikaciji koja se testira Android uređaj ili simulator. Ovo su glavne komponente a Selendroid arhitektura
- Android Aplikacija za vozača – ugrađena Android vozač, aplikacija Web View za testiranje mobilnog weba.
- Selendroid-Standalone – Ova se komponenta koristi za instaliranje Selendroid poslužitelj i aplikacija koja se testira (AUT)
Početak rada Selendroid
Već ste upoznati s važnosti Selendroid. Sada zaprljajmo ruke Selendroid.
Prije prvog testa potrebno je napraviti 3 koraka Selendroid
Postavljanje a Selendroid okolina
Selendroid može raditi na Windowsu, Linux i Mac OS. U ovom vodiču ćemo postaviti Selendroid u OS-u Windows.
Prije korištenja Selendroid, prvo trebate instalirati sljedeći paket
- Java SDK (minimalno 1.6)
Morate prihvatiti licencni ugovor i preuzeti java instalacijski program (odaberite x64 ili x86 bazu na vašem OS-u)
Preuzmite i instalirajte Java SDK kao uobičajeni softver
- Najnovija verzija Android SDK
- Vaše računalo mora imati barem jedan Android Virtualni uređaj (AVD), ili pravi Android uređaj priključen na računalo.
- Selendroid Samostalan s ovisnostima, Selendroid Klijenti Selenium Klijent
- Eclipse softver
- Postavite JAVA_HOME i ANDROID_HOME
Korak 1) U prozoru desnom tipkom miša kliknite Računalo -> Nekretnine -> Napredne postavke sustava
Korak 2) Prikaz prozora Svojstva sustava, odaberite karticu Napredno -> Varijable okoline
Korak 3) U prozoru okruženja kliknite Novo -> Unesite varijablu ANDROID_HOME na sljedeći način
Vrijednost varijable je put do android-sdks koji ste već instalirali.
Pronađite sistemsku varijablu Path -> Uredi -> Dodajte sljedeći redak nakon trenutnog retka
Slično ANDROID_HOME, dodajte novu varijablu JAVA_HOME s vrijednošću kao u nastavku
Vrijednost je Put do vašeg Java JDK instalacija
Korak 4) Ponovno pokrenite računalo -> Gotovo
Kako pokrenuti Selendroid
Korak 1) Testiranje aplikacije
Možete koristiti postojeće Selendroid testiraj aplikaciju da provjeriš kako Selendroid radi (Veza na uzorak aplikacije koja se testira)
Kada preuzimanje završi, kopirajte ovaj APK i gornji Selendroid Samostalna staklenka datoteku u mapu s nazivom "Guru99″
Korak 2) Pokrenite Selendroid
Otvorite terminal na Windows & idite do mape Guru99 stvorene u koraku 1.
Pokrenite sljedeću naredbu
Izlaz će se prikazati na sljedeći način
Nakon pokretanja ove naredbe, Selendroid-pokreće se samostalni HTTP poslužitelj! Zadani broj porta ovog poslužitelja je 4444. Svi hardverski uređaji, kao i Android Virtualni uređaj automatski će se skenirati i prepoznati. Selendroid će identificirati Android ciljanu verziju i veličinu zaslona uređaja.
Da biste provjerili Android ciljanu verziju kao i informacije o uređaju, možete pokrenuti sljedeći URL u pregledniku: http://localhost:4444/wd/hub/status
.
Selendroid osnovna naredba
Ovaj vam odjeljak predstavlja neke osnovne Selendroid-Samostalna naredbena linija. Možete ih koristiti za postavljanje Selendroid okolina za testiranje
- Postavljanje luke Selendroid
Zadana luka Selendroid je 4444. Ali možete promijeniti na drugi port dodavanjem parametra naredbi za pokretanje Selendroid
Parametar: -port [broj porta]
Na primjer:
U gornjoj naredbi, 5555 je novi port.
Dakle, URL za provjeru Android ciljna verzija je promijenjena u: http://localhost:5555/wd/hub/status
- Navedite lokaciju aplikacije koja se testira (binarna APK datoteka). Selendroid često zahtijeva apsolutni put za ovu datoteku
Parametar: -ap [put do datoteke]
Na primjer:
U gornjoj naredbi, Selendroid automatski pronađite bazu binarnih datoteka na “C:\Guru99App.apk” kako biste dobili informacije o aplikaciji koja se testira.
Provjerite URL
http://localhost:4444/wd/hub/status
, vidjet ćete ove informacije - Promijenite priključak Selendroid koristi za komunikaciju s instrumentacijskim poslužiteljem. Selendroid koristi port 8080 kao zadani
Parametar: -selendroidServerPort [broj porta]
Primjer
Port je sada promijenjen u 9000
- Promijenite vrijeme čekanja za pokretanje emulatora. Jedinica je milisekunda.
Parametar: -timeoutEmulatorStart
Po defaultu, Selendroid čekat će 300,000 200,000 milisekundi dok se emulator ne pokrene. Naredbom možete promijeniti na novi timeout (XNUMX XNUMX ms).
Nakon tog vremena naš je istekao, ako se emulator ne može pokrenuti, Selendroid izbacit će pogrešku iznimke (Došlo je do pogreške prilikom traženja uređaja/emulatora.) zatim prestati s radom
- Kada pokrenete Selendroid naredbu na terminalu, vidjet ćete dnevnik ispisan na ekranu. Možete promijeniti vrstu zapisnika koji vidite dodavanjem sljedećeg parametra
Parametar: -logLevel [vrsta dnevnika]
Vrijednosti razine zapisnika su ERROR, WARNING, INFO, DEBUG i VERBOSE. Zadano: POGREŠKA.
Na primjer, postavite Selendroid za ispis samo dnevnika UPOZORENJA, možete koristiti ovu naredbu
The Selendroid ispisati samo dnevnik UPOZORENJA
Započnite svoj prvi test sa Selendroid
Ovaj odjeljak je korak po korak vodič za stvaranje vaše prve testne skripte pomoću Selendroid
Pretpostavimo da imamo Android aplikacija pod testnim imenom Guru99App. Aplikacija uključuje tekstualno polje i naziv gumba "Prikaži tekst".
Moramo izvršiti sljedeće Testni slučaj koristeći Selendroid
Testni slučajevi | Stanje | Očekivani učinak |
---|---|---|
|
Dostupna je binarna datoteka aplikacije koja se testira
Uređaj je spojen na računalo |
Tekst "Tekst Prikaži ovdje" mijenja se u tekst
koje korisnik unosi u tekstualno polje |
Korak 1) Napravite Java projekt u Eclipse
Korak 2) Dodajte selen i Selendroid jar datoteka u eclipse okruženjima
Desnom tipkom miša kliknite Guru99Test Project -> Put izgradnje -> Dodaj vanjski Archives
Dođite do mape u kojoj su pohranjene jar datoteke
Treba dodati 3 jar datoteke
- selendroid-client-0.10.0.jar : Selendroid biblioteka java klijenta
- selendroid-standalone-0.11.0-with-dependencies: Selendroid knjižnica samostalnog poslužitelja
- selen-java-2.40.0.jar : Selenium Web Driver biblioteka
Odaberi sve -> Odaberite Otvori za dodavanje jar datoteke u projekt
Korak 3) nakon dodavanja gornje biblioteke, te će biblioteke biti dodane Referentnim bibliotekama testnog projekta. Ispitivač može koristiti API-je tih biblioteka za razvoj testnog programa
Napravite paket “com.guru.test” i dodajte java datoteku “Guru99Test.java” kao ispod
Desni klik Guru99Test -> Novo -> Paket
Upišite com.guru.test u polje Name na New Java Dijaloški okvir paketa do kraja
The Eclipse će stvoriti popisne mape i podmape poput ove u strukturi izvornog koda
Korak 4) Instalirati TestNG za Eclipse
In Eclipse, Pomoć -> Instalirajte novi softver, u dijaloškom okviru za instalaciju kliknite Dodaj i unesite sljedeće
- Ime: TestNG
- Mjesto: https://github.com/selendroid/selendroid
Pritisnite OK -> Sljedeći za instaliranje TestNG
Korak 5) Kopirajte Guru99App.apk u mapu Test App
Korak 6) Dobijte ID aplikacije koja se testira.
Pretpostavimo da imamo APK datoteku naziva Guru99App.apk. Slijedite korak koji je opisan u prethodnom odjeljku, izvršite naredbu na terminalu
Otvorite sljedeću vezu u pregledniku: http://localhost:4444/wd/hub/status
.
Prikazuju se informacije o uređaju, kopirajte appId vrijednost “com.guru99app:1.0”
Korak 7) Otvorite datoteku Guru99Test.java (u uzorku koda) i promijenite na sljedeći način
Za stvaranje nove testne sesije s Selendroid, morate navesti ID aplikacije u formatu: com.guru99app:1.0. Ovaj ID aplikacije može se identificirati u koraku 6. Ako ne postavite ID aplikacije koji odgovara Android uređaja, testna sesija će izbaciti pogrešku i neće se pokrenuti.
Nakon inicijalizacije pronađenog uređaja, Selendroid stvara prilagođeni selendroid-poslužitelj i instalira Selendroid poslužitelj na njemu
Selendroid također instalira aplikaciju koja se testira i pokreće selendroid-poslužitelj na uređaju
Nakon uspješnog pokretanja testne sesije, testna naredba počinje se izvršavati na uređaju. (Kao što je unos teksta, pritisnite gumb…). Ako test doda testnu sesiju, emulator će se automatski zaustaviti
Korak 8) Započnite novu testnu sesiju
Pokrenite Selendroid poslužitelj koristeći sljedeću naredbu na terminalu poput koraka 6
Nakon što Selendroid Poslužitelj je pokrenut, otvorite primjer testnog projekta Guru99test na Eclipse, postavite prijelomnu točku na liniji 77 u datoteci Guru99Test.java dvostrukim klikom na liniju 77 -> Prikazat će se točka kao ispod
Započnite testnu sesiju desnim klikom na Guru99Test projekt -> Debug As -> Testng Test.
Testna sesija započet će kao u nastavku
Korak 9) Dohvatite ID GUI elementa aplikacije koja se testira
Nakon uspješnog pokretanja testne sesije, otvorite preglednik, idite na URL http://localhost:4444/inspector
Vidjet ćete da je aplikacija pod testom pokrenuta kao ispod
Upotrijebite pokazivač miša na svaki element korisničkog sučelja AUT (Gumb, TextField, Text Label), ID svakog elementa bit će istaknut u desnom oknu
Nakon ovog koraka možete dobiti ID svakog gornjeg elementa korisničkog sučelja
- Gumb Prikaži ID teksta: “btnShow"
- ID tekstualnog polja: “edtTekst"
- ID teksta oznake: “txtView"
Ti ID-ovi će se koristiti u sljedećem koraku
Korak 10) Unesite testni program kao ispod
Testni program koji koristi Selendroid uključuje 3 odjeljka
Test postavljanja:
Slijedi kôd za test postavljanja, koji će postaviti uvjet za testnu sesiju. U slučaju pogreške, Selendroid izbacit će iznimku i testna aplikacija će se zaustaviti.
Kod uključuje komentare koji objašnjavaju svaku izjavu.
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); }
Izvrši test
Ispod je kôd za izvođenje testa. Kod uključuje komentare
Evo ponovno koraka testa
- Unesite tekst "Hello Guru"
- Pritisnite gumb Prikaži tekst
- Pričekaj malo
- Provjerite prikazuje li aplikacija tekst kada korisnik unese tekstno polje (npr. Prikažite tekst "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()); }
Završi test
Sljedeći kod dovršit će test zaustavljanjem Selendroid vozač.
/** * Stop the Selendroid driver * */ @AfterSuite public void tearDown() { driver.quit(); }
Pojedinosti možete vidjeti u primjeru koda uključenom u ovaj članak.
Korak 10) Connect Android uređaj na računalo putem USB kabela. Točke za promatranje –
- Provjerite je li na uređaju konfigurirano zaključavanje zaslona.
- Uređaji moraju biti priključeni putem USB-a na računalo na kojem se pokreće selendroid-standalone komponenta.
- Uređaj bi trebao instalirati barem Android Target Verzija API-ja 10
Korak 11) Pokrenite aplikaciju za testiranje: desnom tipkom miša kliknite Guru99test -> Trčati kao -> TestNG test
Korak 10) Skripta se počinje izvršavati na sljedeći način
Korak 12) Nakon što test završi s izvođenjem, TestNG automatski generira izvješće o ispitivanju na sljedeći način
Bravo, sada ste završili test.
Rezime
- Selendroid je vrlo moćan alat za testiranje Android izvorna aplikacija, hibridna aplikacija kao i web aplikacija.
- Može se koristiti na stvarnim uređajima kao i na simulatoru.
- Također vam omogućuje paralelno pokretanje testova izvođenjem testa na više uređaja.
- Cijela Selendroid paket se sastoji od četiri komponente:
- Web Driver klijent,
- Selendroid-poslužitelj,
- Android Aplikacija za vozača
- Selendroid-samostalan
- Koristiti Selendroid trebaš Java JDK, Android SDK i Eclipse instaliran.