Automatinis žiniatinklio testavimas naudojant „Ruby“, „Capybara“ ir „Selenium“

Ši pamoka skirta parodyti, kaip juos galima sukurti projektus, kad automatiškai patikrintų tinklalapius, turi paviršutinišką paaiškinimą su bandymo pavyzdžiu „YouTube“ puslapyje. Norėdami gerai suprasti, turėsite turėti pagrindines Rubino sąvokas.

PastabaŠis testas buvo paleistas naudojant „Ubuntu 15.10“, todėl rekomenduoju jo vykdymui naudoti „Linux“, tačiau aš parašiau, kaip įdiegti programas „Windows“.

1. Įdiekite būtinus reikalavimus


Mums reikia „Ruby“ ir jo brangakmenių (jei naudojate „Mac“, jis jau bus įdiegtas).

„Ruby“ diegimas „Windows“
Norėdami atsisiųsti diegimo programą, spustelėkite šį mygtuką:

ATSISIŲSTI RUBĮ LOGAMS

Pirmiausia atsisiųsime ir įdiegsime R.uby montuotojas, (diegdami būtinai pažymėkite parinktį pridėti „Ruby“ prie „Windows PATH“), tada kūrimo rinkinys, ištraukite jo turinį į diską C aplanke, kurį turėsite sukurti, aš jį vadinu „Devkit“, bet jūs galite jį pavadinti kaip norite (žr. šį paveikslėlį).

Dabar atidarykite „Windows“ cmd ir vykdykite toliau pateiktas instrukcijas:

 chdir C: \ Devkitruby dk.rb initruby dk.rb install

„Ruby“ diegimas „Linux“
Naujausiose versijose jau įdiegėme „Ruby“, bet tik tuo atveju, tu privalai bėgti:

 sudo apt-get install rubysudo apt-get install rubygems
[color = # a9a9a9] Rubino diegimas [/ spalva]

Įdiekite likusias reikalingas programas (galioja visoms OS)
Reikia įdiekite agurką, kuris yra testavimo priemonė, padedanti mums atlikti BDD.

 perlas įdiegti agurką
Mums taip pat reikia įdiegti „Capybara“, kuri yra konkreti kalba, kuri padės mums bendrauti su tinklalapiais.
 perlas įdiegti capybara
Ir pagaliau jūs turite įdiegti seleną, yra „Capybara“ tvarkyklė, naudoja naršyklės „JavaScript“ variklį ir leidžia mums vizualiai pamatyti, kaip testas išlaikytas.
 perlas įdiegti seleno žiniatinklio tvarkyklę
Tai kažkaip lėtai.

2. Sukurkite projektą


Kai viskas bus įdiegta, mes sukursime savo projekto struktūrą.

1 žingsnis
Sukurkime aplanką, pavadinkime jį Bandymas-selenas. Tai bus aplankas, kuriame bus visi mums reikalingi failai, todėl galime jį laikyti pagrindiniu projekto aplanku.

2 žingsnis
Aplanko viduje Bandymas-selenas (šakninis aplankas) sukurkime aplanką pavadinimu funkcijos. Kuriame bus viskas, ko reikia procesui vykdyti.

3 žingsnis
Funkcijų aplanke sukuriame dar 2 aplankus (step_definitions Y parama) ir failą pavadinimu test.feature.

4 žingsnis
„Step_definitions“ viduje sukursime „Ruby“ failą pavadinimu step_Youtube.rb. o dabar palaikymo aplanke sukursime kitą Ruby failą pavadinimu env.rb.

5 žingsnis
Užpildome failą test.feature, jis bus parašytas oficialia kalba (Gherkin), jis apibrėžia testą, kurį norime išlaikyti visiems suprantama kalba (pats testas yra etapo dalis, likusi dalis yra aprašymas). Jo turinys yra toks:

 #language: is Charakteristika: Eikite į „YouTube“ Kaip bandytojas noriu įeiti į „YouTube“, kad patikrintų paiešką Norėdami sužinoti, ar viskas gerai veikia Scenarijus: Išbandykite „YouTube“, nes esu „YouTube“ puslapyje Kai ieškau „Metallica One“, tada galiu įvesti ir žiūrėkite vaizdo įrašą „https://www.youtube.com/watch?v=iT6vqeL-ysI“
Etapo dalyje mes negalime naudoti kirčių ar keistų simbolių, o kintamieji pateikiami dvigubose kabutėse (tai bus duomenys, perduoti mūsų Ruby kodui).

6 žingsnis
Atėjo eilė failui step_Youtube.rb, Tai yra Rubino kodas, kuris išlaikys mūsų testus, pažiūrėkite į kodą, kuriame yra (Duota, Kada, Taigi) kiekviena funkcija nurodo eilutę, tie, kurie anksčiau turėjo „kintamuosius“, gauna parametrus (1 kiekvienam kintamajam. ), tam reikia naudoti reguliarias išraiškas. Žemiau kodo.

 Kadangi/ esu „YouTube“ puslapyje $/ do apsilankykite „https://www.youtube.com/?hl=lt&gl=EN“ end Kada (/ Aš ieškau „([ ^"] *) "$ /) do | search | fill_in 'search_query' ,: with => search click_button 'Search' end Tada ( / galiu įvesti ir žiūrėti vaizdo įrašą "([ ^"] *) "$ /) do | video | rezultatai = visi ('a'). žemėlapis {| a | a ['href']}, jei ne rezultatai. įskaitant? (vaizdo įrašas) pakelti „Vaizdo įrašas nerastas“ pabaigos vizito (vaizdo įrašo) pabaiga
Šiame kode antroje funkcijoje galite pamatyti „search_query“, šis mano nesugalvotas vardas yra „Youtube“ paieškos laukelio vardo atributas.

Instrukcija: rezultatai = visi ('a'). žemėlapis {| a | a ['href']}Tai reiškia, kad jis gauna visų puslapyje esančių elementų sąrašą ir iš to sąrašo gauna „href“ atributų reikšmes, išsaugodamas jas rezultato kintamajame, ir tokiu būdu galime pamatyti, ar norime žiniatinklio apsilankyti yra puslapyje, Šiame pavyzdyje tai priklausys nuo to, ar daina pasirodys pirmajame puslapyje, taigi, jei testas nepasirodys, jis pasirodys raudonas, o jei ne viskas žalia, parodysiu vaizdą išvesties pabaiga).

7 žingsnis
Mes užpildysime paskutinį failą env.rb, tai yra konfigūracijos failas, jame bus nurodyta naudojama kalba, tvarkyklės ir kt. Šiuo atveju mes naudojame Capybara ir seleną.

 reikalauti 'capybara' reikalauti 'capybara / dsl' Capybara.default_driver =: seleno modulis Pagalbininkai def without_resynchronize page.driver.options [: resynchronize] = klaidingas derlius page.driver.options [: resynchronize] = tikras pabaigos pabaiga (Capybara :: DSL, pagalbininkai)
Čia jūs turite kodą.

3. Vykdyti projektą


Laikas vykdyti mūsų projektą išbandyti Youtube.

1 žingsnis
Atidarome terminalą arba cmd ir einame į aplanką Testing-Selenium, kuriame yra visas mūsų anksčiau sukurtas projektas.

2 žingsnis
Parašome agurką ir duodame įeiti, Agurkas ieškos funkcijų aplanke .feature failų (šiuo atveju yra tik 1) ir tų .features veiksmų (Ruby failai). Jei jis teisingas, pamatysime, kaip naršyklė atsidaro ir pradeda vykdyti testus. Jei neturite apibrėžtų „Ruby“ funkcijų, pasirodys ekranas, rodantis, kad veiksmai nėra apibrėžti, kaip šis paveikslėlis:

Jei viskas bus gerai, turėsite tokį ekraną:

PastabaJei tai įspėja ir nenudažo spalvos „Windows“, apsilankykite šioje saugykloje.

Jei norite greitesnio testo, jums reikės naršyklės be grafinės sąsajos („Phantomjs“) ir „Poltergeist“, kuri yra „Capybara“ tvarkyklė (tokia pati kaip „Selenium“), bet kuri jungiasi su „Phantomjs“.

  • Įdiekite „Poltergeist“:
     perlas įdiegti poltergeist
  • Įdiekite „Phantomjs“:
     perlas įdiegti phantomjs

Jei norite atsisiųsti visą projektą, pridedu ZIP kodą (atminkite, kad testas buvo išlaikytas Ubuntu):

Testavimas-Selenium.zip 1.71K 167 atsisiuntimai

Ar jums patiko ir padėjo ši pamoka?Galite apdovanoti autorių paspausdami šį mygtuką, kad suteiktumėte jam teigiamą tašką
wave wave wave wave wave