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.
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. "
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ă
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
Î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.
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)
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ă
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 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 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.
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.
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:
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
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 |
|
Selenium RC |
|
webdriver |
|
Selenium Grilă |
|
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.