Ce este Selenium Webdriver?
Selenium Webdriver este o colecție open-source de API-uri care este utilizată pentru testarea aplicațiilor web. Instrumentul Selenium Webdriver este utilizat pentru automatizarea testării aplicațiilor web pentru a verifica dacă funcționează conform așteptărilor sau nu. Suportă în principal browsere precum Firefox, Chrome, Safari și Internet Explorer. De asemenea, vă permite să executați teste cross-browser.
WebDriver vă permite, de asemenea, să utilizați un limbaj de programare la crearea scripturilor de testare (nu este posibil în Selenium IDE).
Acum puteți utiliza operații condiționale, cum ar fi if-then-else sau switch-case. De asemenea, puteți efectua bucle ca do-while.
Următoarele limbaje de programare sunt acceptate de WebDriver
- Java
- .Net
- PHP
- Piton
- Perl
- Rubin
Nu trebuie să le cunoașteți pe toate. Trebuie doar să fii informat într-unul. Cu toate acestea, în acest tutorial, vom folosi Java cu Eclipse ca IDE.
Diferența dintre Selenium RC și Webdriver
Înainte de apariția WebDriver în 2006, a existat un alt instrument de automatizare numit Selenium Remote Control. Atât WebDriver, cât și Selenium RC au următoarele caracteristici:
- Ambele vă permit să utilizați un limbaj de programare în proiectarea scripturilor de testare.
- Ambele vă permit să rulați testele pe diferite browsere.
Deci, în ce se deosebesc? Să discutăm răspunsurile.
1. Arhitectura
Arhitectura WebDriver este mai simplă decât Selenium RC .
- Controlează browserul de la nivelul sistemului de operare
- Tot ce aveți nevoie sunt IDE-ul limbajului de programare (care conține comenzile dvs. Selenium) și un browser.
Arhitectura Selenium RC este mult mai complicată.
- Mai întâi trebuie să lansați o aplicație separată numită Selenium Remote Control (RC) Server înainte de a putea începe testarea
- Serverul Selenium RC acționează ca un „intermediar” între comenzile dvs. Selenium și browserul dvs.
- Când începeți testarea, Selenium RC Server „injectează” în browser un program Javascript numit Selenium Core .
- Odată injectat, Selenium Core va începe să primească instrucțiuni transmise de RC Server din programul de testare.
- Când sunt primite instrucțiunile, Selenium Core le va executa ca comenzi Javascript.
- Browserul va respecta instrucțiunile Selenium Core și va transmite răspunsul său către serverul RC.
- Serverul RC va primi răspunsul browserului și apoi vă va afișa rezultatele.
- RC Server va prelua următoarea instrucțiune din scriptul de testare pentru a repeta întregul ciclu.
2. Viteza
WebDriver este mai rapid decât Selenium RC, deoarece vorbește direct cu browserul, utilizează propriul motor al browserului pentru a-l controla.
Selenium RC este mai lent, deoarece folosește un program Javascript numit Selenium Core. Acest Selenium Core este cel care controlează direct browserul, nu tu.
3. Interacțiunea din viața reală
WebDriver interacționează cu elementele paginii într-un mod mai realist. De exemplu, dacă aveți o casetă de text dezactivată pe o pagină pe care ați testat-o, WebDriver chiar nu poate introduce nicio valoare în ea, așa cum nu poate o persoană reală.
Selenium Core, la fel ca alte coduri JavaScript, poate accesa elemente dezactivate. În trecut, testerii de seleniu se plâng că Selenium Core a reușit să introducă valori într-o casetă de text dezactivată în testele lor. Diferențe în API
4. API
API-ul Selenium RC este mai maturizat, dar conține redundanțe și comenzi deseori confuze . De exemplu, de cele mai multe ori, testerii sunt confuzați dacă folosesc type sau typeKeys; sau dacă se utilizează clic, mouseDown sau mouseDownAt. Mai rău, diferite browsere interpretează fiecare dintre aceste comenzi și în moduri diferite!
API-ul WebDriver este mai simplu decât Selenium RC . Nu conține comenzi redundante și confuze.
5. Suport pentru browser
WebDriver poate suporta browserul HtmlUnit fără cap
HtmlUnit este denumit „fără cap”, deoarece este un browser invizibil - este fără GUI.
Este un browser foarte rapid, deoarece nu se petrece timp în așteptarea încărcării elementelor paginii. Acest lucru accelerează ciclurile de execuție a testului.
Deoarece este invizibil pentru utilizator, poate fi controlat numai prin mijloace automate.
Selenium RC nu poate suporta browserul HtmlUnit fără cap. Are nevoie de un browser real, vizibil pentru a opera.
Limitări ale WebDriver
WebDriver nu poate suporta cu ușurință browserele noi
Amintiți-vă că WebDriver funcționează la nivel de sistem de operare. De asemenea, nu uitați că diferite browsere comunică cu sistemul de operare în moduri diferite. Dacă apare un nou browser, acesta poate avea un proces diferit de comunicare cu sistemul de operare în comparație cu alte browsere. Deci, trebuie să acordați echipei WebDriver destul de mult timp pentru a descoperi acest nou proces înainte de a-l putea implementa în următoarea versiune WebDriver.
Cu toate acestea, revine echipei de dezvoltatori WebDriver să decidă dacă ar trebui să accepte noul browser sau nu.
Selenium RC are un generator de rezultate de test încorporat
Selenium RC generează automat un fișier HTML cu rezultatele testelor . Formatul raportului a fost prestabilit de RC însuși. Aruncați o privire la un exemplu al acestui raport de mai jos.
WebDriver nu are nicio comandă încorporată care generează automat un fișier cu rezultate de testare . Va trebui să vă bazați pe fereastra de ieșire a IDE-ului dvs. sau să proiectați singur raportul folosind capacitățile limbajului de programare și să îl stocați ca text, HTML etc.
rezumat
- WebDriver este un instrument pentru testarea aplicațiilor web în diferite browsere folosind diferite limbaje de programare.
- Acum puteți face teste puternice, deoarece WebDriver vă permite să utilizați un limbaj de programare la alegere la proiectarea testelor.
- WebDriver este mai rapid decât Selenium RC datorită arhitecturii sale mai simple.
- WebDriver vorbește direct cu browserul, în timp ce Selenium RC are nevoie de ajutorul serverului RC pentru a face acest lucru.
- API-ul WebDriver este mai concis decât cel al Selenium RC.
- WebDriver poate suporta HtmlUnit, în timp ce Selenium RC nu.
- Singurele dezavantaje ale WebDriver sunt:
- Nu poate suporta cu ușurință noi browsere , dar Selenium RC poate.
- Nu are o comandă încorporată pentru generarea automată a rezultatelor testelor.