„Selendroid“ pamoka pradedantiesiems su pavyzdžiu

Ar kada esate sukūrę „Android“ programą ir paskelbę ją „Google Play“? Ką darysite, jei sulauksite tokio vartotojo atsiliepimo -

Kai skelbiate programą „Google Play“, ji turi būti gerai išbandyta, kad būtų išvengta galimų klaidų. Yra daugybė bandymų scenarijų, kuriuos reikia atlikti prieš paskelbiant programą. Norėdami sutaupyti bandymo pastangas, jums reikia bandymo įrankio. Vienas iš geriausių „Android“ programos testavimo įrankių yra „ Selendroid“.

  • Kas yra „Selendroid“?
  • Kodėl mums reikia „Selendroid“?
  • „Selendroid“ architektūra
  • Darbo su „Selendroid“ pradžia
  • „Selendroid“ aplinkos nustatymas
  • Kaip paleisti „Selendroid“
  • „Selendroid“ pagrindinė komanda
  • Pirmąjį bandymą pradėkite naudodami „Selendroid“

Kas yra „Selendroid“?

„Selendroid“ yra bandomoji automatizavimo sistema, skirta kelių tipų mobiliosioms programoms: vietinei ir hibridinei „Android“ programai ir mobiliajam internetui.

Testus galite parašyti naudodami „Selenium 2“ kliento API. Kadangi „Selendroid“ vis dar naudoja esamą „Selenium“ infrastruktūrą žiniatinkliui

„Selendroid“ yra galingas testavimo įrankis. Jis gali būti naudojamas emuliatoriuose ir realiuose įrenginiuose

Kodėl mums reikia „Selendroid“?

„Selendroid“ yra puiki testavimo priemonė. Bet vis tiek galite abejoti jo naudingumu.

Šiame skyriuje bus pristatytos svarbios „Selendroid“ funkcijos, kad būtų galima atsakyti į klausimą, kodėl jums reikia „Selendroid“.

  • Galite išbandyti bandomąją programą naudodami „Selendroid“ be jokių programos modifikacijų. Jums tereikia kompiuteryje įdiegti dvejetainį failą (APK). Norint įdiegti dvejetainį failą įrenginyje, bandomoji programa ir mobilioji programa turi būti pasirašytos tuo pačiu ženklo raktu
  • „Selendroid“ testavimo programa vienu metu gali sąveikauti su keliais įrenginiais ar treniruokliais. Tai puikus „Selendroid“ pranašumas. Taigi, norėdami patikrinti suderinamumą, galite išbandyti programą naudodami įvairius „Android“ įrenginius.
  • „Selendroid“ gali imituoti žmogaus ir vartotojo veiksmus programoje, pvz., Palietimą, perbraukimą, vilkimą ir numetimą įrenginiuose
  • Testavimo metu galite pakeisti aparatūros įrenginius (prijunkite ir atjunkite) nepaleidę bandymo iš naujo ir nestabdydami. „Selendroid“ automatiškai atpažįsta naujus įrenginius
  • Atitinkantis „Android“ API versiją, „Selendroid“ taip pat palaiko naują „Android“ API (nuo API 10 iki API 19)
  • „Selendroid“ taip pat turi įmontuotą inspektoriaus įrankį, kuris padės jums nustatyti bandomosios programos vartotojo sąsajos elementą. Pavyzdžiui, mygtukas ID, teksto laukas, teksto rodinys ...

„Selendroid“ architektūra

„Selendroid“ yra pagrįstas „Android“ instrumentų sistema. „Selendroid“ testai yra parašyti remiantis „Selenium“ žiniatinklio tvarkyklės kliento API, todėl palaiko visišką integraciją su dabartinėmis „Selenium“ sistemomis.

Šiame paveikslėlyje aprašoma „Selendroid“ architektūra

„Selendroid“ yra 4 pagrindiniai komponentai:

  • „Web Driver Client“ - „Java“ kliento biblioteka, pagrįsta „Selenium“. Ši biblioteka turėtų būti įdiegta kompiuteryje (naudojama bandomiesiems atvejams kurti)
  • „Selendroid-Server“ - veikiantis serveris yra bandomoje programoje „Android“ įrenginyje ar treniruoklyje. Tai yra pagrindiniai „Selendroid“ architektūros komponentai
  • „Android Driver-App“ - įmontuota „Android“ tvarkyklė, „Web View“ programa, skirta išbandyti internetą mobiliesiems.
  • „Selendroid-Standalone“ - šis komponentas naudojamas įdiegiant „Selendroid“ serverį ir bandomą programą (AUT)

Darbo su „Selendroid“ pradžia

Jūs jau žinojote „Selendroid“ svarbą. Dabar susitepkime rankas su „Selendroid“.

Prieš pirmąjį bandymą su „Selendroid“ reikia atlikti 3 veiksmus

„Selendroid“ aplinkos nustatymas

„Selendroid“ gali veikti „Windows“, „Linux“ ir „Mac OS“. Šioje pamokoje „Selendroid“ nustatysime „Windows OS“.

Prieš naudodami „Selendroid“, pirmiausia turite įdiegti šį paketą

  • „Java SDK“ (mažiausiai 1,6)

    Turite sutikti su licencijos sutartimi ir atsisiųsti „Java“ diegimo programą (savo operacinėje sistemoje pasirinkite „x64“ arba „x86“ bazę)

    Atsisiųskite ir įdiekite „Java SDK“ kaip įprastą programinę įrangą

  • Naujausia „Android SDK“ versija
  • Kompiuteryje turi būti bent vienas „Android“ virtualusis įrenginys (AVD) arba tikras „Android“ įrenginys, prijungtas prie kompiuterio.
  • „Selendroid“ atskiras su priklausomybėmis, „Selendroid Client“ ir „Selenium Client“
  • „Eclipse“ programinė įranga
  • Nustatykite JAVA_HOME ir ANDROID_HOME

    1 žingsnis) Lange dešiniuoju pelės mygtuku spustelėkite Kompiuteris -> Ypatybės -> Išplėstinis sistemos nustatymas

    2 žingsnis) Lango Sistemos ypatybės langas, pasirinkite skirtuką Išplėstinė -> Aplinkos kintamieji

    3 žingsnis. Lango Aplinka ekrane spustelėkite Naujas -> Įveskite kintamąjį ANDROID_HOME taip

    Kintama vertė yra kelias į „Android-SD“, kuriuos jau įdiegėte.

    Raskite sistemos kintamąjį Kelias -> Redaguoti -> Pridėkite šią eilutę po dabartine eilute

    Panašiai kaip „ANDROID_HOME“, pridėkite naują JAVA_HOME kintamąjį, kurio vertė yra žemiau

    Vertė yra „Java JDK“ diegimo kelias

    4 žingsnis) Paleiskite kompiuterį iš naujo -> Atlikta

Kaip paleisti „Selendroid“

1 žingsnis) Kaip išbandyti programą

Galite naudoti esamą „Selendroid“ bandymo programą, kad patikrintumėte, kaip veikia „Selendroid“ (nuoroda į bandomosios programos pavyzdį)

Kai atsisiuntimas bus baigtas, nukopijuokite šį APK ir aukščiau pateiktą „Selendroid Standalone jar“ failą į aplanką pavadinimu „ Guru99“.

2 žingsnis) Paleiskite „Selendroid“

Atidarykite terminalą sistemoje „Windows“ ir eikite į aplanką „Guru99“, sukurtą atlikus 1 veiksmą.

Vykdykite šią komandą

Išvestis bus rodoma taip

Paleidus šią komandą, paleidžiamas atskiras „Selendroid“ HTTP serveris! Numatytasis šio serverio prievado numeris yra 4444. Visi aparatiniai įrenginiai, taip pat „Android“ virtualusis įrenginys, bus nuskaityti ir atpažinti automatiškai. „Selendroid“ nustatys „Android“ tikslinę versiją ir įrenginio ekrano dydį.

Norėdami patikrinti „Android“ tikslinę versiją ir informaciją apie įrenginį, naršyklėje galite paleisti šį URL:

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

„Selendroid“ pagrindinė komanda

Šiame skyriuje pateikiama keletas pagrindinių „Selendroid-Standalone“ komandų eilutės. Juos galite naudoti norėdami nustatyti „Selendroid“ bandymų aplinką

  1. Nustatomas „Selendroid“ prievadas

    Numatytasis „Selendroid“ prievadas yra 4444. Bet jūs galite pereiti į kitą prievadą, pridėdami parametrą prie komandos, kad paleistumėte „Selendroid“

    Parametras: -port [prievado numeris]

    Pavyzdžiui:

    Aukščiau pateiktoje komandoje 5555 yra naujas prievadas.

Taigi URL, skirtas patikrinti „Android“ tikslinę versiją, pakeistas į: http: // localhost: 5555 / wd / hub / status

  1. Nurodykite bandomos programos vietą (dvejetainis APK failas). „Selendroid“ dažnai reikalavo absoliutaus šio failo kelio

    Parametras: -app [failo kelias]

    Pavyzdžiui:

    Pirmiau pateiktoje komandoje „Selendroid“ automatiškai suranda dvejetainių failų bazę „C: \ Guru99App.apk“, kad gautų bandomosios programos informaciją.

    Patikrinkite URL http: // localhost: 4444 / wd / hub / status, pamatysite šią informaciją

  2. Pakeiskite prievadą, kurį „Selendroid“ naudoja ryšiui su prietaisų serveriu. „Selendroid“ kaip numatytąjį naudoja 8080 prievadą

    Parametras: -selendroidServerPort [prievado numeris]

    Pavyzdys

    Dabar uostas pakeistas į 9000

  3. Pakeiskite skirtuką, kad paleistumėte emuliatorius. Vienetas yra milisekundės.

    Parametras: -timeoutEmulatorStart

    Pagal numatytuosius nustatymus „Selendroid“ lauks 300 000 milisekundžių, kol pradės veikti emuliatorius. Pagal komandą galite pakeisti naują skirtąjį laiką (200 000 ms)

    Praėjus šiam laikui, jei emuliatorius negalės paleisti, „Selendroid“ išmes išimties klaidą (įvyko klaida ieškant įrenginių / emuliatorių), tada nustos veikti

  4. Kai paleidžiate „Selendroid“ komandą terminale, pamatysite ekrane atspausdintą žurnalą. Galite pakeisti matomo žurnalo tipą pridėdami šį parametrą

    Parametras: -logLevel [žurnalo tipas]

    Žurnalo lygio vertės yra KLAIDA, ĮSPĖJIMAS, INFO, KLAIDA ir VERBOSĖ. Numatytasis: KLAIDA.

    Pvz., Nustatykite „Selendroid“ spausdinti tik ĮSPĖJIMO žurnalą, galite naudoti šią komandą

    „Selendroid“ spausdina tik ĮSPĖJIMO žurnalą

Pirmąjį bandymą pradėkite naudodami „Selendroid“

Šis skyrius yra žingsnis po žingsnio, kaip sukurti pirmąjį bandomąjį scenarijų naudojant „Selendroid“

Tarkime, kad turime „Android“ programą bandomuoju pavadinimu „Guru99App“. Programoje yra teksto laukas ir mygtuko pavadinimas „Rodyti tekstą“.

Atsisiųskite APK čia

Turime atlikti šį bandomąjį atvejį naudodami „Selendroid“

Bandymo atvejai

Būklė

Laukiama produkcija:

  1. Paleiskite programą
  2. Į teksto lauką įveskite tekstą „ Guru99 testas
  3. Paspauskite mygtuką „Rodyti tekstą“

Yra bandomosios programos dvejetainis failas

Prietaisas prijungtas prie kompiuterio

Tekstas „Teksto rodymas čia“ pakeičiamas į tekstą

kurį vartotojas įveda teksto lauke

1 žingsnis. Sukurkite „Java“ projektą „Eclipse“

2 veiksmas) Pridėti seleno ir „Selendroid jar“ failą užtemimo aplinkose

Dešiniuoju pelės mygtuku spustelėkite „Guru99Test Project“ -> „ Build Path“ -> Add External Archives

Eikite į aplanką, kuriame buvo saugomi stiklainio failai

Reikėtų pridėti 3 stiklainių failus

  • selendroid-client-0.10.0.jar: „Selendroid Java“ kliento biblioteka
  • selendroid-standalone-0.11.0-with-dependencies: „Selendroid“ atskira serverio biblioteka
  • selenium-java-2.40.0.jar: „Selenium Web Driver“ biblioteka

Pasirinkti viską -> Pasirinkite Atidaryti, jei norite pridėti stiklainio failą prie projekto

3 žingsnis) pridėjus aukščiau esančią biblioteką, šios bibliotekos bus įtrauktos į bandomojo projekto informacines bibliotekas. Testuotojas gali naudoti tų bibliotekų API, kad sukurtų bandymo programą

Sukurkite paketą „com.guru.test“ ir pridėkite Java failą „Guru99Test.java“, kaip nurodyta toliau

Dešiniuoju pelės mygtuku spustelėkite Guru99Test -> New -> Package

Įveskite com.guru.test į pavadinimo lauką Naujame „Java“ pakete dialogo lange Baigti

„Eclipse“ sukurs panašius sąrašo aplankus ir pakatalogius šaltinio kodo struktūroje

4 žingsnis. Įdiekite „TestNG“, skirtą „Eclipse“

Programos „Eclipse“ žinynas -> Įdiekite naują programinę įrangą dialogo lange Įdiegti spustelėkite Pridėti ir įveskite šiuos duomenis

  • Pavadinimas: TestNG
  • Vieta: http://selendroid.io/

Norėdami įdiegti „TestNG“, paspauskite OK -> Next

5 žingsnis) Nukopijuokite „Guru99App.apk“ į „Test App“ aplanką

6 žingsnis) Gaukite bandomos programos ID.

Tarkime, kad turime APK failo pavadinimą „Guru99App.apk“. Atlikite ankstesniame skyriuje aprašytą veiksmą, vykdykite komandą terminale

Naršyklėje atidarykite šią nuorodą

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

Rodoma įrenginio informacija, nukopijuokite „appId“ reikšmę „com.guru99app: 1.0“

7 žingsnis) Atidarykite failą „Guru99Test.java“ (kodo pavyzdyje) ir pakeiskite taip

Norėdami sukurti naują bandomąją sesiją su „Selendroid“, turite pateikti programos ID tokiu formatu: com.guru99app: 1.0. Šis programos ID gali nustatyti 6 veiksme. Jei nenustatysite programos ID, atitinkančio „Android“ įrenginį, bandymo sesija sukels klaidą ir neprasidės.

Inicijavęs rastą įrenginį, „Selendroid“ sukuria pritaikytą „selendroid“ serverį ir jame įdiegia „Selendroid“ serverį

„Selendroid“ taip pat įdiegia bandomą programą ir įrenginyje paleidžia „selendroid-server“

Sėkmingai inicijavus bandymo sesiją, bandymo komanda pradedama vykdyti įrenginyje. (Pavyzdžiui, įveskite tekstą, paspauskite mygtuką

…). Jei bandymas pridės bandymo sesiją, emuliatorius automatiškai sustos

8 žingsnis) Pradėkite naują bandomąją sesiją

Paleiskite „Selendroid“ serverį naudodami šią komandą terminale, kaip 6 veiksmas

Paleidus „Selendroid Server“, atidarykite bandomojo projekto „Guru99test“ pavyzdį „Eclipse“, nustatykite lūžio tašką 77 eilutėje faile „Guru99Test.java“ dukart spustelėdami 77 eilutę -> Bus rodomas taškas kaip žemiau

Pradėkite bandymo sesiją dešiniuoju pelės mygtuku spustelėkite „Guru99Test“ projektą -> Derinti kaip -> „ Testng Test“.

Bandymo sesija prasidės taip, kaip nurodyta toliau

9 žingsnis. Gaukite bandomos programos GUI elemento ID

Sėkmingai pradėję bandomąją sesiją, atidarykite naršyklę, eikite į URL http: // localhost: 4444 / inspector

Pamatysite, kad bandoma programa yra paleista kaip žemiau

Naudokite pelės žymeklį ant kiekvieno AUT sąsajos elemento (mygtukas, teksto laukas, teksto etiketė), kiekvieno elemento ID bus paryškintas dešinėje srityje

Po šio veiksmo galite gauti kiekvieno aukščiau esančio NS elemento ID

  • Mygtukas Rodyti teksto ID: " btnShow "
  • Teksto lauko ID: " edtText "
  • Etiketės teksto ID: „ txtView

Šie ID bus naudojami kitame etape

10 žingsnis) Įveskite bandymo programą, kaip nurodyta toliau

Testavimo programa, kurioje naudojamas „Selendroid“, apima 3 skyrius

Sąrankos testas:

Toliau pateikiamas sąrankos testo kodas, jis nustatys bandymo seanso sąlygą. Jei įvyktų klaida, „Selendroid“ išmes išimtį ir bandymo programa bus sustabdyta.

Kodas apima komentarus, paaiškinančius kiekvieną teiginį.

paketas com.guru.test;importuoti io.selendroid.SelendroidCapabilities;importuoti „io.selendroid.SelendroidConfiguration“;importuoti io.selendroid.SelendroidDriver;importuoti „io.selendroid.SelendroidLauncher“;importuoti io.selendroid.device.DeviceTargetPlatform;importuoti org.openqa.selenium.By;importuoti org.openqa.selenium.WebDriver;importuoti org.openqa.selenium.WebElement;importuoti org.testng.Assert;importuoti org.testng.annotations.AfterSuite;importuoti org.testng.annotations.BeforeSuite;importuoti org.testng.annotations.Test;/ *** @author Guru99 testavimo programa, naudojant „Selendroid“* Testuojama programa: „Guru99App“** /visuomenėsklasė „Guru99Test“ {// Paskelbkite žiniatinklio tvarkyklės kintamąjįprivatus „WebDriver“ tvarkyklė;/ *** Prieš bandydami nustatykite aplinką* @ throws išimtis* /@BeforeSuitevisuomenėsvoid setUp () meta išimtį {// Testo metu pradėkite „selendroid-standalone“SelendroidConfiguration config = new SelendroidConfiguration ();// Pridėkite selendroid-test-app į atskirą serverįconfig.addSupportedApp ("Guru99App.apk");// paleisti atskirą serverįSelendroidLauncher selendroidServer = nauja SelendroidLauncher (konfigūracija);selendroidServer.launchSelendroid ();// Sukurkite „selendroid“ galimybes„SelendroidCapilities capa = new SelendroidCapilities ();// Nurodykite naudoti „selendroid“ bandomąją programącapa.setAut ("com.guru99app: 1.0");// Nurodykite naudoti „Android“ įrenginio API 19capa.setPlatformVersion (DeviceTargetPlatform.ANDROID19);// Neprašykite simuliatoriaus, naudokite tikrą įrenginįcapa.setEmulator (klaidinga);//capa.wait(10000000);// Sukurti „Selendroid“ tvarkyklės egzemplioriųtvarkyklė = naujas „SelendroidDriver“ („capa“);}

Atlikite testą

Žemiau yra kodas testui atlikti. Kodas apima komentarus

Čia dar kartą pateikiami bandymo veiksmai

  1. Įveskite tekstą „Hello Guru“
  2. Spustelėkite Rodyti teksto mygtuką
  3. Palauk truputį
  4. Patikrinkite, ar programoje rodomas tekstas, vartotojui įvedant į teksto lauką (pvz., Rodyti tekstą „Sveiki Guru“)
 / *** Pradėkite vykdyti bandomąjį atvejį* 01. Į teksto lauką įveskite tekstą „Selendroid“* 02. Paspauskite mygtuką Gerai* @ throws išimtis* /@Testvisuomenėsvoid selendroidTest () meta išimtį {// Spausdinti žurnaląSystem.out.print („Pradėti vykdyti testą“);// Ekrane raskite įvesties teksto lauką// Šio teksto lauko ID buvo gautas iš 9 veiksmoWebElement inputField = driver.findElement (By.id ("edtText"));// Patikrinkite, ar įgalintas teksto laukas, kad vartotojas galėtų įvesti tekstą„Assert.assertEquals“ („true“, inputField.getAttribute („įgalinta“));// Įveskite tekstą į teksto laukąinputField.sendKeys („Labas Guru“);// spustelėkite mygtuką Rodyti tekstą// Šio mygtuko ID buvo gautas iš 9 veiksmo„WebElement“ mygtukas = driver.findElement (By.id („btnShow“));mygtukas.spustelėkite ();// Vėluoja laikas įsigaliotiSiūlas.miega (5000);// Ekrane raskite etiketę „Tekstas rodomas čia“// Šios etiketės ID buvo gautas iš 9 veiksmo„WebElement“ txtView = driver.findElement (By.id („txtView“));// Gaukite teksto ekraną ekraneLaukiama eilutė = txtView.getText ();// Patikrinkite, ar tekstas, kurį vartotojas įveda teksto lauke, yra toks pats kaip tekstas, rodomas ekrane„Assert.assertEquals“ (tikimasi, inputField.getText ());}

Baigti testą

Šis kodas užbaigs testą sustabdydamas „Selendroid“ tvarkyklę.

 / *** Sustabdykite „Selendroid“ tvarkyklę** /@AfterSuitevisuomenėsvoid tearDown () {vairuotojas.mesti ();}

Išsamią informaciją galite pamatyti šiame straipsnyje pateiktame pavyzdiniame kode.

10 žingsnis) USB kabeliu prijunkite „Android“ įrenginį prie kompiuterio. Stebimi taškai -

  • Įsitikinkite, kad įrenginyje nėra sukonfigūruotas ekrano užraktas.
  • Įrenginiai turi būti prijungti per USB prie kompiuterio, kuriame veikia „selendroid-standalone“ komponentas.
  • Įrenginyje turėtų būti įdiegta bent „Android Target Version API 10“

11 žingsnis) Paleiskite „Test App“: Dešiniuoju pelės mygtuku spustelėkite „Guru99test“ -> „ Run as -> TestNG test“

10 žingsnis) Scenarijus pradedamas vykdyti taip

12 žingsnis) Baigęs bandymą, „TestNG“ automatiškai sukuria bandymo ataskaitą taip

Geras darbas, tu jau atlikai testą.

Santrauka

Santrauka

  • „Selendroid“ yra labai galinga „Android“ savosios programos, hibridinės ir žiniatinklio programos testavimo priemonė.
  • Jis gali būti naudojamas realiuose įrenginiuose, taip pat simuliatoriuje.
  • Tai taip pat leidžia atlikti bandymus lygiagrečiai, atliekant bandymą keliuose įrenginiuose.
  • Visą „Selendroid“ rinkinį sudaro keturi komponentai:
    • Žiniatinklio tvarkyklės klientas,
    • „Selendroid-Server“,
    • „Android“ tvarkyklės programa
    • „Selendroid“ atskirai
  • Norėdami naudoti „Selendroid“, turite įdiegti „Java JDK“, „Android SDK“ ir „Eclipse“.

Įdomios straipsniai...