Što je Selenium? Uvodni vodič

⚡ Pametni sažetak

Selenium je besplatni okvir za automatizirano testiranje otvorenog koda dizajniran za validaciju web aplikacija u različitim preglednicima i platformama korištenjem više programskih jezika. Omogućuje robusnu, učinkovitu i skalabilnu automatizaciju testiranja za moderne prakse osiguranja kvalitete.

  • Ključni princip: Selenium Omogućuje automatiziranu validaciju web aplikacija na različitim preglednicima i operativnim sustavima, podržavajući jezike poput Java, C#, Python, I više.
  • Struktura paketa alata: Selenium uključuje četiri glavne komponente - IDE, Remote Control, WebDriver i Grid - od kojih svaka rješava različite potrebe automatizacije.
  • IDE i prototipiping: Selenium IDE je proširenje preglednika za brzo stvaranje slučajeva i prototipaping, ali je najprikladniji za jednostavne testne scenarije.
  • Evolucija daljinskog upravljača: Selenium RC, sada u načinu održavanja, bio je prvi okvir koji je dopuštao testne skripte na više jezika, rješavajući ograničenja pravila preglednika.
  • Implementacija WebDrivera: WebDriver izravno komunicira s preglednicima, nudeći kontrolu na razini operativnog sustava i vrhunsku stabilnost za složenu automatizaciju.
  • Mreža za paralelizam: Selenium Grid omogućuje paralelno izvršavanje testova na više računala i preglednika, drastično smanjujući trajanje testnog ciklusa.
  • Podrška za više preglednika i platformi: Selenium podržava širok raspon preglednika i operativnih sustava, pružajući neusporedivu fleksibilnost za web QA.
  • Utjecaj u stvarnom svijetu: Timovi koriste Selenium ubrzati cikluse izdanja, smanjiti ručno testiranje i osigurati dosljedno korisničko iskustvo u svim preglednicima, s dokazanim rezultatima u SaaS-u, CI/CD-u i isporuci značajki.

što je selen

Što je Selenium?

Selenium je besplatni (otvoreni kod) okvir za automatsko testiranje koji se koristi za provjeru valjanosti web aplikacija na različitim preglednicima i platformama. Možete koristiti više programskih jezika poput Java, C#, Python, itd za stvaranje Selenium Testne skripte. Testiranje provedeno pomoću Selenium alat za testiranje obično se naziva Selenium Ispitivanje.

Stručni uvidi

„Izbjegavajte korištenje fiksnih kašnjenja mirovanja u testovima. Umjesto toga, koristite eksplicitna čekanja (poput WebDriverWait) za čekanje učitavanja elemenata. To čini vaše skripte pouzdanijima i bržima jer dinamički reagiraju na stvarne uvjete stranice - ključna najbolja praksa za studente diljem svijeta, počevši s…“ Selenium".

— Himanšu Šet, Selenium Stručni paket

👉 Prijavite se za besplatni prijenos uživo Selenium Projekt testiranja

Selenium Komplet alata

Selenium Softver nije samo jedan alat, već paket softvera, od kojih svaki dio služi za različite potrebe Selenium QA testiranje potrebe organizacije. Ovdje je popis alata

  • Selenium Integrirano razvojno okruženje (IDE)
  • Selenium daljinski upravljač (RC)
  • webdriver
  • Selenium rešetka

Selenium Komplet alata

Trenutno, Selenium RC i WebDriver spojeni su u jedan okvir za formiranje Selenium 2. Selenium 1 se, inače, odnosi na Selenium RC.

Video tutorial Selenium

Kliknite ovdje ako video nije dostupan

Tko se razvio Selenium?

Od Selenium je skup različitih alata, također je imao različite programere. Ispod su ključne osobe koje su dale značajan doprinos Selenium Projekt

Razvijen Selenium

Prvenstveno, Selenium je bio kreirao Jason Huggins 2004Kao inženjer u tvrtki ThoughtWorks, radio je na web aplikaciji koja je zahtijevala često testiranje. Shvativši da repetitivno ručno testiranje njihove aplikacije postaje sve neučinkovitije, stvorio je JavaScript program koji bi automatski kontrolirao radnje preglednika. Nazvao je ovaj program "JavaIzvršitelj testiranja skripti.

Vidjevši potencijal u ovoj ideji da pomogne automatizirati druge web aplikacije, napravio je JavaScriptRunner otvorenog koda, koji je kasnije preimenovan Selenium srž. Za one koje zanima istraživanje drugih opcija za testiranje web aplikacija, pogledajte ove Selenium alternative.

Problem s politikom istog porijekla

Politika istog porijekla zabranjuje JavaSkriptni kod pristupa elementima iz domene koja je drugačija od one s koje je pokrenut. Na primjer, HTML kod na www.google.com koristi JavaSkriptni program „randomScript.js“. Ista pravila o porijeklu dopustit će randomScript.js pristup samo stranicama unutar google.com, kao što su google.com/mail, google.com/login ili google.com/signup. Međutim, ne može pristupiti stranicama s različitih web-mjesta kao što su yahoo.com/search ili guru99.com jer pripadaju različitim domenama.

Problem s politikom istog porijekla

To je razlog zašto, prije nego što Selenium RC, potrebni testeri za instaliranje lokalnih kopija oba Selenium Jezgra (a JavaSkriptni program) i web poslužitelj koji sadrži testiranu web aplikaciju, tako da bi pripadali istoj domeni

Rođenje Selenium Daljinski upravljač (Selenium RC)

Paul Hammant

Nažalost, testeri koji koriste Selenium Core je morao instalirati cijelu testiranu aplikaciju i web poslužitelj na svoja lokalna računala zbog ograničenja nametnutih od strane politika istog podrijetlaDakle, još jedan inženjer tvrtke ThoughtWorks, Paul Hammant, odlučio je stvoriti poslužitelj koji bi djelovao kao HTTP proxy kako bi "prevario" preglednik da povjeruje u to Selenium Core i web aplikacija koja se testira dolaze iz iste domene. Ovaj je sustav postao poznat kao Selenium Daljinski upravljač or Selenium 1.

Rođenje Selenium rešetka

Patrick Lightbody

Selenium Grid je razvio Patrick Lightbody kako bi se riješila potreba za što manjim mogućim smanjenjem vremena izvršavanja testova. U početku je sustav nazvao "Hostovana kontrola kvalitete." Bio je sposoban snimati snimke zaslona preglednika tijekom značajnih faza, kao i poslati Selenium naredbe različitim strojevima istovremeno.

Rođenje Selenium IDE

Shinya Kasatani

Shinya Kasatani Japana stvorio Selenium IDEA Firefox i proširenje za Chrome koje može automatizirati preglednik putem značajke snimanja i reprodukcije. Došao je na ovu ideju kako bi dodatno povećao brzinu izrade testnih slučajeva. Donirao je Selenium IDE prema Selenium Projekt u 2006.

Rođenje WebDrivera

Simon Stewart

Simon Stewart stvoren WebDriver ca 2006 kada su preglednici i web aplikacije postajali moćniji i restriktivniji JavaSkriptni programi poput Selenium Jezgra. Bio je to prvi višeplatformski okvir za testiranje koji je mogao kontrolirati preglednik na razini operativnog sustava.

Rođenje Selenium 2

In 2008, Cijeli Selenium Tim je odlučio spojiti WebDriver i Selenium RC za formiranje moćnijeg alata pod nazivom Selenium 2, jer je oznaka WebDriver je srž, trenutno, Selenium RC se još uvijek razvija, ali samo u fazi održavanja. Većina Selenium Napori projekta sada su usmjereni na Selenium 2.

Dakle, zašto ime Selenium?

Ime Selenium proizlazi iz šale koju je Jason jednom ispričao svom timu. Tijekom Seleniumrazvoj, drugi automatizirano ispitivanje Okvir je popularno izradila tvrtka pod nazivom Mercury Interaktivan (da, tvrtka koja je izvorno proizvela QTP prije nego što ga je preuzeo HP). Od Selenium je poznati protuotrov za Mercury trovanja, Jason je predložio to ime i njegovi suigrači su ga preuzeli. Dakle, tako smo morali zvati ovaj okvir do danas.

Zašto Ime Selenium

Što je Selenium IDE?

Selenium Integrirano razvojno okruženje (IDE) je najjednostavniji okvir u Selenium svita i je najlakši za naučiti. To Chrome i Firefox uključiti koje možete instalirati jednako lako kao i s drugim dodacima. Međutim, zbog svoje jednostavnosti, Selenium IDE bi se trebao koristiti samo kao prototipping alat. Ako želite stvoriti naprednije testne slučajeve, morat ćete koristiti bilo koji Selenium RC ili WebDriver.

Selenium IDE

Što je Selenium Daljinski upravljač (Selenium RC)?

Selenium RC je bio vodeći okvir za testiranje cjeline Selenium projekt na duže vrijeme. Ovo je prvi automatizirani web testiranje alat koji omogućuje korisnicima korištenje programskog jezika koji preferiraju. Od verzije 2.25.0, RC može podržavati sljedeće programske jezike:

Selenium Daljinski upravljač (Selenium RC)

Što je WebDriver?

WebDriver se pokazao boljim od Selenium IDE i Selenium RC u mnogim aspektima. Implementira moderniji i stabilniji pristup automatizaciji radnji preglednika. WebDriver, za razliku od Selenium RC, ne oslanja se na JavaSkripta za Selenium Testiranje automatizacije. Upravlja preglednikom izravno komunicirajući s njim.

Podržani jezici isti su onima u Selenium RC.

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

Webdriver

Što je Selenium Mreža?

Selenium Mreža je alat koristi se zajedno s Selenium RC za trčanje paralelni testovi na različitim strojevima i različitim preglednicima u isto vrijeme. Paralelno izvođenje znači pokretanje više testova odjednom.

Značajke:

  • omogućuje istovremeno izvođenje testova in više preglednika i okruženja.
  • Štedi vrijeme enormno.
  • Koristi se hub-and-nodes koncept. Čvorište djeluje kao središnji izvor Selenium naredbe svakom čvoru spojenom na njega.

Selenium Podrška za preglednik i okruženje

Zbog svojih arhitektonskih razlika, Selenium SDI, Selenium RC i WebDriver podržavaju različite skupove preglednika i radnih okruženja.

  Selenium IDE webdriver
Podrška preglednika Mozilla Firefox i Chrome Google Chrome 12 +
Firefox
Internet Explorer 7+ i Edge
safari,
HtmlUnit i PhantomUnit
Operating sustav Windows, Mac OS X, Linux Svi operativni sustavi na kojima mogu raditi gore navedeni preglednici.

Bilješka: Opera Drajver više ne radi

Kako odabrati pravu Selenium Alat za vaše potrebe

Oruđe Zašto odabrati?
Selenium IDE
  • Naučiti o konceptima automatiziranog testiranja i Selenium, Uključujući:
  • Selenese naredbe kao što su type, open, clickAndWait, assert, verify itd.
  • Lokatori kao što su id, name, xpath, css selektor itd.
  • Izvršenje prilagođeno JavaSkriptni kod pomoću runScripta
  • Izvoz testnih slučajeva u različitim formatima.
  • Za izradu testova s ​​malo ili nimalo predznanja u programiranju.
  • Za izradu jednostavnih testnih slučajeva i paketa testova koje kasnije možete izvesti u RC ili WebDriver.
  • Za testiranje web aplikacije protiv Firefox i samo Chrome.
Selenium RC
  • Dizajnirati test koristeći izražajniji jezik od Selenesea
  • Za pokretanje vašeg testa na različitim preglednicima (osim HtmlUnit) na različitim operativnim sustavima.
  • Za implementaciju testova u više okruženja pomoću Selenium Mreža.
  • Za testiranje vaše aplikacije u novom pregledniku koji podržava JavaSkripta.
  • Za testiranje web aplikacija sa složenim scenarijima koji se temelje na AJAX-u.
webdriver
  • Za korištenje određenog programskog jezika u dizajniranju vašeg testnog slučaja.
  • Za testiranje aplikacija koje su bogate funkcijama temeljenim na AJAX-u.
  • Za izvođenje testova na HtmlUnit pregledniku.
  • Za izradu prilagođenih rezultata ispitivanja.
Selenium rešetka
  • Za pokretanje vašeg Selenium RC skripte u više preglednika i operativnih sustava istovremeno.
  • Pokrenuti ogroman skup testova koji treba završiti u najkraćem mogućem roku.

Studije slučaja iz stvarnog svijeta

🔍 Studija slučaja 1: Kompatibilnost SaaS nadzorne ploče s više preglednika

scenario

Tvrtka koja nudi softver kao uslugu pripremala se za izdavanje analitičke nadzorne ploče koja je trebala dosljedno funkcionirati u svim modernim preglednicima (Chrome, Firefox, Edge, Safari).

Izazov

Ručno testiranje na svakom pregledniku bilo je dugotrajno, sklono pogreškama i nije moglo pratiti brze iteracije razvoja.

Rješenje s Selenium

Inženjer za osiguranje kvalitete stvorio je Selenium rešetka postavljeno za istovremeno izvršavanje istog testnog paketa u više preglednika i kombinacija operativnih sustava. Testovi su napisani u Python koristeći Selenium WebDriver za radnje poput prijave, filtriranja grafikona i izvoza podataka.

Ishod

  • Smanjeno trajanje regresije za 80%.
  • Rano otkrivene greške u renderiranju specifične za preglednik (npr. neusklađeni grafovi u IE-u).
  • Održavao je dosljedno korisničko iskustvo nadzorne ploče u cijeloj matrici preglednika bez dodatnih ručnih ciklusa.

⚙️ Studija slučaja 2: Integracija CI/CD za web aplikaciju putem Selenium + TestNG

scenario

Srednja tvrtka za web razvoj oslanja se na CI/CD cjevovod koristeći JenkinsMorali su osigurati da glavna korisnička putovanja funkcioniraju nakon svake promjene koda.

Izazov

Nove implementacije verzija povremeno su prekidale korisničke tokove - prijavu, slanje obrasca - escaping otkrivanje do ručnog testiranja na kraju dana.

Rješenje s Selenium

Tester je implementirao Java-Temelji Selenium Paket WebDriver integriran s TestNGTestovi su obuhvatili autentifikaciju, ažuriranja profila i funkcije pretraživanja. Provodili su se svaki Jenkins izgraditi, koristeći paralelno izvršavanje i parametrizaciju preglednika.

Ishod

  • Postignuta je brza povratna informacija o kvaru: prekinuti tokovi su odmah označeni.
  • Smanjene greške nakon implementacije za više od 60%.
  • Omogućeno programerima da riješe probleme prije nego što dođu do odjela za kontrolu kvalitete.

🚀 Studija slučaja 3: Ubrzano objavljivanje značajki za agregator putovanja

scenario

Platforma za agregator putovanja trebala je objaviti obnovljenu funkciju rezervacije letova. Ručni regresijski testovi na više od 10 stranica trajali su danima i blokirali su objavu.

Izazov

Pritisak za smanjenje vremena potrebnog za plasiranje proizvoda na tržište nije mogao nadmašiti ručne cikluse testiranja, riskirajući kašnjenja ili nižu kvalitetu.

Rješenje s Selenium & Model objekta stranice

Voditelj automatizacije osiguranja kvalitete predstavio je strukturu modela objekta stranice (POM) u C#. Selenium WebDriver skripte su enkapsulirale elemente stranice i radnje (pretraživanje letova, primjena filtera i slučajevi plaćanja). Automatizirana testiranja su pokretana svake noći na GitLab CI.

Ishod

  • Vrijeme testiranja skraćeno je s 3 dana na samo 4 sata.
  • Ponovna upotreba skripti u više značajki smanjuje trud skriptiranja za 50%.
  • Povećano samopouzdanje: izdanje je isporučeno na vrijeme uz minimalne prijave grešaka.

Zajednički Selenium Izazovi (i popravci)

Mada Selenium je moćan, testeri se često suočavaju s izazovima koji mogu utjecati na pouzdanost i brzinu. Evo nekih uobičajenih i kako ih riješiti:

  1. Neispravni testovi:
    Testovi mogu nasumično propasti zbog problema s vremenom ili mrežom.
    Fix: Koristite eksplicitna čekanja i stabilne lokatore; izbjegavajte Thread.sleep().
  2. Dinamički web elementi:
    Promjena ID-ova elemenata ili XPath-ova uzrokuje pogreške "element nije pronađen".
    Fix: Koristite relativne XPath-ove, CSS selektore ili dinamičko rukovanje atributima.
  3. SyncProblemi kronizacije:
    Elementi se učitavaju sporije od izvršavanja skripte.
    Fix: Implementirajte WebDriverWait s očekivanim uvjetima.
  4. Nedosljednosti među preglednicima:
    Testovi se ponašaju drugačije u Chromeu, Firefox, ili Edge.
    Fix: Pokreni testove na Selenium Grid ili cloud platforme za validaciju u više preglednika.
  5. Rješavanje skočnih prozora i upozorenja:
    Neočekivani skočni prozori mogu prekinuti tijek testiranja.
    Fix: Koristiti SeleniumSučelje Alert ili blokovi try–catch za njihovo elegantno rukovanje.
  6. Troškovi održavanja testiranja:
    Česte promjene korisničkog sučelja čine testove krhkim.
    Fix: Usvojite model objekta stranice (POM) i kontrolu verzija za jednostavna ažuriranja.
  7. Izazovi integracije:
    CI/CD cjevovodi mogu prestati s radom zbog problema s upravljačkim programima.
    Fix: Koristiti Selenium Upravitelj (Selenium 4+) ili WebDriver Manager za automatsko upravljanje upravljačkim programima.

Ukratko: most Selenium Problemi proizlaze iz loše sinkronizacije ili krhkih lokatora - oboje se može riješiti pametnijim čekanjima, modularnim dizajnom i kontinuiranim održavanjem.

Pitanja i odgovori:

Selenium je okvir za automatizaciju otvorenog koda koji se koristi za testiranje web aplikacija na različitim preglednicima i platformama. Omogućuje testerima simulaciju korisničkih interakcija poput klikova, slanja obrazaca i navigacije pomoću različitih programskih jezika.

Selenium prvenstveno se koristi za automatizaciju testiranja temeljenog na pregledniku. Pomaže u osiguravanju ispravnog funkcioniranja web aplikacija u različitim preglednicima, podržava regresijsko i funkcionalno testiranje te se lako integrira s CI/CD cjevovodima za kontinuirano testiranje.

Selenium sastoji se od četiri glavne komponente: Selenium IDE (alat za snimanje/reprodukciju), Selenium RC (zastarjelo), Selenium webdriver (moderni API za automatizaciju) i Selenium rešetka (za paralelno izvršavanje testova u više preglednika).

Četiri su vrste: Selenium IDE za snimanje testova, Selenium RC za naslijeđenu automatizaciju, Selenium webdriver za izravnu kontrolu preglednika i Selenium rešetka za distribuirano, paralelno testiranje na više preglednika.

Selenium WebDriver je ključna komponenta koja izravno komunicira s preglednicima koristeći izvorne API-je. Omogućuje programerima pisanje robusnih skripti za automatizaciju u više preglednika u jezicima poput Java, Pythoni C#, bez oslanjanja na JavaSkripta.

Selenium IDE prilagođen je početnicima, nudeći funkcije snimanja i reprodukcije putem proširenja preglednika. webdriver, s druge strane, temelji se na kodu, podržava više jezika i pruža naprednu, skalabilnu automatizaciju preglednika prikladnu za okvire za testiranje u stvarnom svijetu.

Sažmite ovu objavu uz: