Testare web automată cu Ruby, Capybara și Selenium

Acest tutorial este axat pe a vă arăta cum pot fi create proiecte pentru a testa automat paginile web, are o explicație superficială, cu un exemplu de testare pe pagina YouTube. Va trebui să aveți noțiuni de bază despre Ruby pentru a o înțelege bine.

NotăAcest test a fost lansat în Ubuntu 15.10, prin urmare vă recomand să utilizați Linux pentru executarea acestuia, cu toate acestea am pus cum să instalez programele în Windows.

1. Instalați cerințele necesare


Avem nevoie de Ruby și pietrele sale (dacă utilizați Mac, îl veți avea deja instalat).

Instalarea Ruby pe Windows
Pentru a descărca programul de instalare, faceți clic pe următorul buton:

DESCĂRCAȚI RUBY PENTRU WINDOWS

Mai întâi descărcăm și instalăm Ruby instalator, (în instalare asigurați-vă că bifați opțiunea pentru a adăuga Ruby la PATH-ul Windows), apoi Kit de dezvoltare, extrageți conținutul său pe discul C într-un folder pe care va trebui să-l creați îl numesc Devkit, dar îl puteți numi oricum doriți (a se vedea imaginea următoare).

Acum deschideți Windows cmd și executați următoarele instrucțiuni:

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

Instalare Ruby pe Linux
În cele mai recente versiuni avem deja Ruby instalat, dar pentru orice eventualitate, trebuie să fugi:

 sudo apt-get install rubysudo apt-get install rubygems
[color = # a9a9a9] Instalare Ruby [/ color]

Instalați restul programelor necesare (valabil pentru toate sistemele de operare)
Nevoie instalați Castravete, care este un instrument de testare care ne ajută să realizăm BDD.

 gem instalati castraveti
De asemenea, avem nevoie instalați Capybara, care este un limbaj specific care ne va ajuta să interacționăm cu paginile web.
 gem instalați capybara
Și în cele din urmă trebuie instalați seleniu, este un driver pentru Capybara, folosește motorul JavaScript al browserului și ne permite să vedem cum este trecut testul vizual.
 gem instalează seleniu-webdriver
Este cam lent.

2. Creați proiectul


Odată ce avem totul instalat, vom crea structura proiectului nostru.

Pasul 1
Să creăm un folder, să-l numim Testare-seleniu. Acesta va fi folderul care va conține toate fișierele de care vom avea nevoie, prin urmare îl putem considera drept folderul rădăcină al proiectului.

Pasul 2
În interiorul dosarului Testare-seleniu (folderul rădăcină) să creăm un folder numit Caracteristici. Care va conține tot ce aveți nevoie pentru a rula procesul.

Pasul 3
În folderul cu caracteristici creăm încă 2 foldere (step_definitions Da a sustine) și, de asemenea, un fișier numit test.funcție.

Pasul 4
În interiorul step_definitions vom crea un fișier Ruby numit step_Youtube.rb. iar acum în folderul de asistență vom crea un alt fișier Ruby numit env.rb.

Pasul 5
Completăm fișierul test.feature, va fi scris într-un limbaj formal (Gherkin), definește testul pe care vrem să îl promovăm într-un limbaj care este înțeles de toată lumea (Testul în sine este partea etapei, restul este o descriere) În. Conținutul său este după cum urmează:

 #language: este caracteristic: Mergeți la youtube Ca tester Vreau să intru pe youtube pentru a testa căutarea Pentru a ști dacă totul funcționează bine Scenariu: Testați youtube De când sunt pe pagina youtube Când caut „Metallica One” Apoi pot intra și vedeți videoclipul „https://www.youtube.com/watch?v=iT6vqeL-ysI”
În partea de scenă nu putem folosi accente sau caractere ciudate, iar variabilele sunt încadrate între ghilimele duble (vor fi datele transmise codului nostru Ruby).

Pasul 6
Este rândul fișierului step_Youtube.rb, Codul Ruby va trece testele noastre, uitați-vă la codul care are (Date, Când, Deci) fiecare funcție se referă la o linie, cele care anterior aveau „variabile” primesc parametri (1 pentru fiecare variabilă din caracteristica. ), pentru aceasta este necesar să se utilizeze expresii regulate. Sub cod.

 Din moment ce / Sunt pe pagina YouTube $ / vizitați „https://www.youtube.com/?hl=ro&gl=EN” sfârșitul Când (/ Căut „([^"] *) „$ /) do | search | fill_in 'search_query' ,: with => search click_button 'Search' end Apoi (/ Pot introduce și viziona videoclipul "([^"] *) "$ /) do | video | rezultate = toate ('a'). hartă {| a | a ['href']} dacă nu rezultate.include? (video) crește „Videoclipul nu a fost găsit” sfârșit
În acest cod, în a doua funcție puteți vedea căutare_interogare, acest nume pe care nu l-am inventat este atributul de nume pe care îl are caseta de căutare Youtube.

Instrucțiunea: rezultate = toate ('a'). hartă {| a | a ['href']}Ceea ce face este să obțineți o listă cu toate elementele a de pe pagină, iar din acea listă obține valorile atributelor href, stocându-le în variabila de rezultat, și în acest fel putem vedea dacă web-ul pe care îl dorim de vizitat este pe pagina, În acest exemplu, va depinde dacă melodia apare pe prima pagină, deci dacă testul nu apare, va ieși roșu și dacă nu totul în verde, voi arăta o imagine la sfârșitul ieșirii).

Pasul 7
Vom completa ultimul fișier env.rb, este un fișier de configurare, va indica limba de utilizat, driverele etc. În acest caz, folosim Capybara și Selenium.

 require 'capybara' require 'capybara / dsl' Capybara.default_driver =: selenium module Helpers def without_resynchronize page.driver.options [: resynchronize] = randament fals page.driver.options [: resynchronize] = final final adevărat World (Capybara :: DSL, Helpers)
Aici aveți codul.

3. Rulați proiectul


Este timpul să derulați proiectul nostru pentru a testa Youtube.

Pasul 1
Deschidem un terminal sau cmd și mergem în folderul Testing-Selenium, unde se află tot proiectul nostru creat anterior.

Pasul 2
Scriem castravete și dăm intrare, Castravetele va căuta în folderul cu caracteristici fișierele .feature (în acest caz există doar 1) și pașii (fișiere Ruby) ale acelor .features. Dacă este corect, vom vedea cum se deschide browserul și începe să ruleze testele. Dacă nu aveți funcțiile Ruby definite, va apărea un ecran care indică faptul că pașii nu sunt definiți, cum ar fi următoarea imagine:

Dacă totul merge corect, veți ajunge să aveți un ecran ca următorul:

NotăDacă vă avertizează și nu vopsea culoare în Windows, vizitați acest depozit.

Dacă doriți un test mai rapid, veți avea nevoie de un browser fără o interfață grafică (Phantomjs) și Poltergeist, care este un driver pentru Capybara (la fel ca Selenium), dar care se conectează cu Phantomjs.

  • Instalați Poltergeist:
     bijuterie instala poltergeist
  • Instalați Phantomjs:
     gem instala phantomjs

În cazul în care doriți să descărcați întregul proiect, atașez un fișier zip (amintiți-vă că testul a fost trecut în Ubuntu):

Testare- Selenium.zip 1.71K 167 Descărcări

V-a plăcut și ați ajutat acest tutorial?Puteți recompensa autorul apăsând acest buton pentru a-i oferi un punct pozitiv

Vei ajuta la dezvoltarea site-ului, partajarea pagina cu prietenii

wave wave wave wave wave