Ce Este Selenium? Tutorial de introducere

Ce Este Selenium?

Selenium este un cadru de testare automatizat gratuit (open-source) utilizat pentru validarea aplicațiilor web pe diferite browsere și platforme. Puteți utiliza mai multe limbaje de programare, cum ar fi Java, C#, Python, etc pentru a crea Selenium Scripturi de testare. Testarea efectuată folosind Selenium instrumentul de testare este de obicei denumit Selenium Testarea.

ce este seleniul

Perspective ale experților

„Evitați să folosiți întârzieri fixe de repaus în teste. În schimb, folosiți așteptări explicite (cum ar fi WebDriverWait) pentru a aștepta încărcarea elementelor. Acest lucru face ca scripturile dvs. să fie mai fiabile și mai rapide, deoarece răspund dinamic la condițiile reale ale paginii - o practică cheie pentru studenții de pretutindeni, începând cu…” Selenium. "

— Himanshu Sheth, Selenium Expert

Selenium Suita de instrumente

Selenium Software-ul nu este doar un singur instrument, ci o suită de software, fiecare piesă fiind diferită Selenium Nevoile de testare QA ale unei organizații. Iată lista instrumentelor

  • Selenium Mediu de dezvoltare integrat (IDE)
  • Selenium Telecomanda (RC)
  • webdriver
  • Selenium Grilă

Selenium Suita de instrumente

Pentru moment, Selenium RC și WebDriver sunt îmbinate într-un singur cadru pentru a se forma Selenium 2. Selenium 1, de altfel, se referă la Selenium RC.

Tutorial video Selenium

Clic aici dacă videoclipul nu este accesibil

Cine s-a dezvoltat Selenium?

Întrucât Selenium este o colecție de instrumente diferite, a avut și diferiți dezvoltatori. Mai jos sunt persoanele cheie care au adus contribuții notabile la Selenium Proiect

Dezvoltat Selenium

În primul rând, Selenium a fost creat de Jason Huggins în 2004. Inginer la ThoughtWorks, lucra la o aplicație web care necesita testare frecventă. După ce și-a dat seama că testarea manuală repetitivă a aplicației lor devine din ce în ce mai ineficientă, a creat un JavaScenariu program care ar controla automat acțiunile browserului. El a numit acest program „JavaScriptTestRunner. "

Văzând potențialul acestei idei de a ajuta la automatizarea altor aplicații web, el a făcut JavaScriptRunner open-source, care mai târziu a fost redenumit Selenium Nucleu. Pentru cei interesați să exploreze alte opțiuni pentru testarea aplicațiilor web, aruncați o privire la acestea Selenium alternative.

Aceeași problemă de politică de origine

Politica aceeași origine interzice JavaCod script de la accesarea elementelor dintr-un domeniu care este diferit de locul în care a fost lansat. De exemplu, codul HTML din www.google.com folosește a JavaProgramul de script „randomScript.js”. Aceeași politică de origine va permite doar randomScript.js să acceseze pagini din google.com, cum ar fi google.com/mail, google.com/login sau google.com/signup. Cu toate acestea, nu poate accesa pagini de pe site-uri diferite, cum ar fi yahoo.com/search sau guru99.com, deoarece acestea aparțin unor domenii diferite.

Aceeași problemă de politică de origine

Acesta este motivul pentru care înainte de Selenium RC, testerii trebuiau să instaleze copii locale ale ambelor Selenium Miez (a Javaprogram script) și serverul web care conține aplicația web testată, astfel încât acestea să aparțină aceluiași domeniu

Nașterea de Selenium Telecomandă (Selenium RC)

Paul Hammant

Din pacate; testeri care folosesc Selenium Core a trebuit să instaleze întreaga aplicație testată și serverul web pe propriile computere locale din cauza restricțiilor impuse de aceeași politică de origine. Deci un alt inginer ThoughtWork, Paul Hammant, a decis să creeze un server care va acționa ca un proxy HTTP pentru a „păcăli” browserul să creadă că Selenium Core și aplicația web testată provin din același domeniu. Acest sistem a devenit cunoscut sub numele de Selenium Control de la distanță or Selenium 1.

Nașterea de Selenium Grilă

Patrick Lightbody

Selenium Grid a fost dezvoltat de Patrick Lightbody pentru a răspunde nevoii de a minimiza pe cât posibil timpii de execuție a testelor. El a numit inițial sistemul „QA găzduit.” A fost capabil să capteze capturi de ecran ale browserului în timpul etapelor semnificative și, de asemenea, de trimitand afara Selenium comenzi către diferite mașini simultan.

Nașterea de Selenium IDE

Shinya Kasatani

Shinya Kasatani a Japoniei creat Selenium IDE, A Firefox și extensia Chrome care poate automatiza browserul printr-o funcție de înregistrare și redare. El a venit cu această idee de a crește și mai mult viteza în crearea cazurilor de testare. El a donat Selenium IDE la Selenium Proiect în 2006.

Nașterea lui WebDriver

Simon Stewart

Simon Stewart a creat WebDriver circa 2006 când browserele și aplicațiile web deveneau mai puternice și mai restrictive cu JavaPrograme script precum Selenium Miezul. A fost primul cadru de testare multiplatformă care putea controla browserul de la nivelul sistemului de operare.

Nașterea de Selenium 2

In 2008, Întregul Selenium Echipa a decis să fuzioneze WebDriver și Selenium RC pentru a forma un instrument mai puternic numit Selenium 2, Cu WebDriver fiind nucleul. În prezent, Selenium RC este încă în curs de dezvoltare, dar numai în modul de întreținere. Cele mai multe dintre Selenium Eforturile proiectului sunt acum concentrate Selenium 2.

Deci, de ce numele Selenium?

Numele Selenium a venit dintr-o glumă pe care Jason a spus-o odată echipei sale. Pe parcursul Seleniumdezvoltarea lui, alta testare automată framework a fost popular făcut de compania numită Mercury Interactiv (da, compania care a făcut inițial QTP înainte de a fi achiziționat de HP). De cand Selenium este un antidot binecunoscut pentru Mercury otrăvire, Jason a sugerat acest nume și colegii săi l-au luat. Așa am ajuns să numim acest cadru până în prezent.

De ce Numele Selenium

Ce Este Selenium IDE?

Selenium Mediul de dezvoltare integrat (IDE) este cel mai simplu cadru în Selenium suită și este cel mai usor de invatat. Este un Chrome și Firefox conecteaza pe care îl poți instala cât de ușor poți cu alte plugin-uri. Cu toate acestea, datorită simplității sale, Selenium IDE ar trebui să fie folosit doar ca a instrument de prototipare. Dacă doriți să creați cazuri de testare mai avansate, va trebui să utilizați oricare dintre ele Selenium RC sau WebDriver.

Selenium IDE

Ce Este Selenium Telecomandă (Selenium RC)?

Selenium RC a fost cadrul de testare emblematic a întregului Selenium proiect pentru o lungă perioadă de timp. Acesta este primul automat testarea web instrument care permite utilizatorilor să folosească un limbaj de programare pe care îl preferă. Începând cu versiunea 2.25.0, RC poate suporta următoarele limbaje de programare:

Selenium Telecomandă (Selenium RC)

Ce este WebDriver?

WebDriver se dovedește a fi mai bun decât Selenium IDE și Selenium RC în multe aspecte. Implementează o abordare mai modernă și mai stabilă în automatizarea acțiunilor browserului. WebDriver, spre deosebire de Selenium RC, nu se bazează pe JavaScript pentru Selenium Testarea automatizării. Acesta controlează browserul comunicând direct cu acesta.

Limbile acceptate sunt aceleași cu cele din Selenium RC.

  • Java
  • C#
  • PHP
  • Python
  • Perl
  • Rubin

Webdriver

Ce Este Selenium Grilă?

Selenium Grila este un instrument folosit împreună cu Selenium RC să alerge teste paralele pe diferite mașini și browsere diferite, toate în același timp. Execuția în paralel înseamnă rularea mai multor teste simultan.

Caracteristici:

  • Activează derularea simultană a testelor in mai multe browsere și medii.
  • Salveaza timp enorm.
  • Utilizează hub-and-nodes concept. Hub-ul acționează ca o sursă centrală de Selenium comenzi către fiecare nod conectat la acesta.

Selenium Suport pentru browser și mediu

Din cauza diferențelor lor arhitecturale, Selenium SDI, Selenium RC și WebDriver acceptă diferite seturi de browsere și medii de operare.

  Selenium IDE webdriver
Suport pentru browser Mozilla Firefox și Chrome

Google Chrome 12+

Firefox

Internet Explorer 7+ și Edge

Safari, 

HtmlUnit și PhantomUnit

Operating System Windows, Mac OS X, Linux Toate sistemele de operare în care pot rula browserele de mai sus.

Notă: Opera Driverul nu mai funcționează

Cum să alegi clinica potrivită Selenium Instrument pentru nevoia dvs

Instrument De ce să alegi?
Selenium IDE
  • Pentru a afla despre conceptele de testare automată și Selenium, Inclusiv:
  • Comenzi seleneze, cum ar fi tastare, deschidere, clic și așteptare, afirmare, verificare etc.
  • Localizatori precum id, nume, xpath, selector CSS etc.
  • Executare personalizată JavaCod script folosind runScript
  • Exportarea cazurilor de testare în diverse formate.
  • Pentru a crea teste cu puține sau deloc cunoștințe anterioare în programare.
  • Pentru a crea cazuri de testare simple și suite de testare pe care le puteți exporta ulterior în RC sau WebDriver.
  • Pentru a testa o aplicație web împotriva Firefox și numai Chrome.
Selenium RC
  • Pentru a proiecta un test folosind un limbaj mai expresiv decât selena
  • Pentru a rula testul pe diferite browsere (cu excepția HtmlUnit) pe diferite sisteme de operare.
  • Pentru a vă implementa testele în mai multe medii folosind Selenium Grilă.
  • Pentru a testa aplicația dvs. pe un browser nou care acceptă JavaScenariul.
  • Pentru a testa aplicații web cu scenarii complexe bazate pe AJAX.
webdriver
  • Pentru a utiliza un anumit limbaj de programare în proiectarea cazului de testare.
  • Pentru a testa aplicații care sunt bogate în funcționalități bazate pe AJAX.
  • Pentru a executa teste pe browserul HtmlUnit.
  • Pentru a crea rezultate personalizate ale testelor.
Selenium Grilă
  • Pentru a rula dvs Selenium Scripturi RC în mai multe browsere și sisteme de operare simultan.
  • Pentru a rula o suită uriașă de teste, aceasta trebuie finalizată în cel mai scurt timp posibil.

O comparație între Selenium și QTP (acum UFT)

Test rapid profesional (QTP) este un instrument de testare automatizat proprietar deținut anterior de companie Mercury Interactiv înainte ca Hewlett-Packard să-l achiziţioneze în 2006. Ulterior proprietarul său este MicroFocus, iar instrumentul este redenumit UFT one. The Selenium Tool Suite are multe avantaje față de  QTP după cum este detaliat mai jos -

Avantajele și beneficiile Selenium peste QTP

Selenium QTP
Sursa deschisa, liber de utilizat și gratuit. Comercial.
Foarte extensibil Suplimente limitate
Poate rula teste peste tot browsere diferite Poate rula doar teste Firefox, Internet Explorer și Chrome
Sprijină diverse sisteme de operare Poate fi folosit doar în Windows
Sprijină dispozitive mobile QTP acceptă automatizarea testării aplicațiilor mobile (iOS și Android) folosind soluția HP numită – HP Mobile Center
Poate executa teste în timp ce il browser-ul este minimizat Trebuie să aibă aplicația testată pentru a fi vizibilă pe desktop
Poate executa teste în paralel. Se poate executa numai în paralel, dar folosind Quality Center, care este din nou un produs plătit.

Studii de caz din lumea reală

🔍 Studiu de caz 1: Compatibilitate între browsere pentru tablouri de bord SaaS

Scenariu

O companie de software ca serviciu se pregătea să lanseze un tablou de bord analitic care trebuia să funcționeze consecvent pe toate browserele moderne (Chrome, Firefox, Edge, Safari).

Challenge

Testarea manuală pe fiecare browser consuma mult timp, era predispusă la erori și nu putea ține pasul cu iterațiile rapide de dezvoltare.

Soluție cu Selenium

Un inginer de asigurare a calității a creat un Selenium Grilă configurat pentru a executa simultan aceeași suită de teste pe mai multe browsere și combinații de sisteme de operare. Testele au fost create în Python folosind Selenium WebDriver pentru acțiuni precum autentificare, filtrare grafică și export de date.

Rezultat

  • Durata regresiei a fost redusă cu 80%.
  • Am descoperit devreme erori de randare specifice browserului (de exemplu, grafice nealiniate în IE).
  • A menținut o experiență de utilizare consistentă a tabloului de bord în întreaga matrice a browserului, fără cicluri manuale suplimentare.

⚙️ Studiu de caz 2: Integrare CI/CD pentru aplicații web prin Selenium + TestNG

Scenariu

O firmă de dezvoltare web de dimensiuni medii se bazează pe un flux de lucru integrat/de dezvoltare continuu (CI/CD) care folosește Jenkins. Aveau nevoie să se asigure că experiențele principale ale utilizatorilor funcționează după fiecare modificare de cod.

Challenge

Implementările noi au întrerupt ocazional fluxurile utilizatorilor – autentificare, trimitere formulare – scăpând de detectare până la testarea manuală de la sfârșitul zilei.

Soluție cu Selenium

Un tester a implementat o JavaBazate pe Selenium Suită WebDriver integrată cu TestNGTestele au acoperit autentificarea, actualizările de profil și funcționalitățile de căutare. Acestea au rulat pe fiecare versiune Jenkins, valorificând execuția paralelă și parametrizarea browserului.

Rezultat

  • S-a obținut feedback rapid în caz de eroare: fluxurile defecte au fost semnalate imediat.
  • Reducerea erorilor post-implementare cu peste 60%.
  • A permis dezvoltatorilor să rezolve problemele înainte de a ajunge la QA.

🚀 Studiu de caz 3: Accelerarea lansării de funcții pentru agregatorul de călătorii

Scenariu

O platformă agregatoare de călătorii trebuia să lanseze o funcție reînnoită de rezervare a zborurilor. Testele de regresie manuală pe peste 10 pagini au durat zile întregi și au blocat lansarea.

Challenge

Presiunea de a reduce timpul de lansare pe piață nu a putut depăși ciclurile de testare manuală, riscând întârzieri sau o calitate mai scăzută.

Soluție cu Selenium & Modelul de obiecte de pagină

Un responsabil cu automatizarea QA a introdus o structură de tip Page Object Model (POM) în C#. Selenium Scripturile WebDriver au încapsulat elemente și acțiuni ale paginii (căutare zboruri, aplicare filtre, cazuri de plată). Testele automate au fost declanșate în fiecare noapte pe GitLab CI.

Rezultat

  • Timpul de testare a scăzut de la 3 zile la doar 4 ore.
  • Reutilizarea scripturilor în mai multe funcții reduce efortul de scriptare cu 50%.
  • Încredere sporită: versiunea a fost lansată la timp cu un număr minim de raportări de erori.

Avantajele QTP față de Selenium

QTP Selenium
Poate testa atât aplicații web, cât și aplicații desktop Poate testa doar aplicații web
Vine cu un depozit de obiecte încorporat Nu are un depozit de obiecte încorporat
Automatizează mai repede decât Selenium deoarece este un IDE complet cu caracteristici. Se automatizează într-un ritm mai lent, deoarece nu are un IDE nativ și numai IDE terțe pot fi folosite pentru dezvoltare.
Testarea bazată pe date este mai ușor de efectuat deoarece are încorporate tabele de date globale și locale. Testarea bazată pe date este mai greoaie, deoarece trebuie să vă bazați pe capacitățile limbajului de programare pentru a seta valori pentru datele de testare.
Poate accesa comenzile din browser(cum ar fi bara de Favorite, bara de adrese, butoanele Înapoi și Înainte etc.) Nu se pot accesa elemente din afara aplicației web testate
Oferă profesionist de asistență pentru clienți Nu se oferă suport oficial pentru utilizatori.
Are capacitatea nativă de a exportați datele de testare în formate externe Nu are capacitatea nativă de a exporta date de rulare în formate externe
Este construit suportul de parametrizare Parametrizarea se poate face prin programare, dar este dificil de implementat.
Rapoartele de testare sunt generate automat Nu există suport nativ pentru a genera rapoarte de testare/bug.

Deși în mod clar, QTP are capabilități mai avansate, Selenium depășește QTP în trei domenii principale:

  • Costat(deoarece Selenium este complet gratuit)
  • Flexibilitate(din cauza unui număr de limbaje de programare, browsere și platforme pe care le poate suporta)
  • Testare paralelă(ceva de care este capabil QTP, dar numai cu ajutorul Quality Center)

Rezumat

  • Intregul Selenium Software Testing Suite este compus din patru componente:
  • Selenium IDE, a Firefox și suplimentul Chrome pe care îl puteți folosi doar pentru a crea cazuri de testare și suite de testare relativ simple.
  • Selenium Telecomanda, cunoscută și ca Selenium 1, este primul Selenium instrument care a permis utilizatorilor să utilizeze limbaje de programare în crearea de teste complexe.
  • WebDriver, este cea mai nouă descoperire care permite scripturilor dvs. de testare să comunice direct cu browserul, controlându-l astfel de la nivelul sistemului de operare.
  • Selenium Grid este, de asemenea, un instrument cu care este folosit Selenium RC pentru a executa teste paralele pe diferite browsere și sisteme de operare.
  • Selenium RC și WebDriver au fost fuzionate pentru a forma Selenium 2.
  • Selenium este mai avantajos decât Microfocus UFT One în ceea ce privește costurile și flexibilitatea.