Što je Selenium? Uvodni vodič

Š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.

što je selen

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

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 2004. Inženjer u ThoughtWorksu, radio je na web aplikaciji koja je zahtijevala često testiranje. Shvativši da ponavljajuće ručno testiranje njihove aplikacije postaje sve neučinkovitije, stvorio je JavaScript program koji bi automatski kontrolirao radnje preglednika. Taj je program nazvao "JavaScriptTestRunner".

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 JavaKod skripte za pristup elementima s domene koja se razlikuje od one na kojoj je pokrenut. Na primjer, HTML kod na www.google.com koristi a JavaSkript program “randomScript.js”. Ista pravila o izvoru dopuštaju samo randomScript.js pristup 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 stranica 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 Selenium RC, potrebni testeri za instaliranje lokalnih kopija oba Selenium Jezgra (a JavaSkriptni program) i web poslužitelj koji sadrži web aplikaciju koja se testira kako 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 porijekla. Dakle, još jedan ThoughtWorkov inženjer, Paul Hammant, odlučio je stvoriti poslužitelj koji će djelovati 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 odgovorilo na potrebu minimiziranja vremena izvršenja testa što je više moguće. U početku je nazvao sustav "Hostirani QA.” Bio je sposoban snimati snimke zaslona preglednika tijekom značajnih faza, a također 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 tu 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 okvir za testiranje više platformi koji je mogao kontrolirati preglednik s razine OS-a.

Rođenje Selenium 2

In 2008, Cijeli Selenium Tim je odlučio spojiti WebDriver i Selenium RC formirati moćniji alat tzv Selenium 2, jer je oznaka WebDriver je srž, trenutno, Selenium RC se još uvijek razvija, ali samo u načinu 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 Framework je bio popularan od strane tvrtke tzv Mercury Interaktivan (da, tvrtka koja je izvorno napravila QTP prije nego što ju je kupio 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 alat za izradu prototipova. 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.
  • Da biste pokrenuli veliki paket testova, koji se mora dovršiti u najkraćem mogućem roku.

Usporedba između Selenium i QTP (sada UFT)

Quick Test Professional (QTP) je vlasnički alat za automatizirano testiranje koji je prethodno bio u vlasništvu tvrtke Mercury Interaktivan prije nego što ga je kupio Hewlett-Packard u 2006. Njegov kasniji vlasnik je MicroFocus, a alat je preimenovan u UFT one. The Selenium Tool Suite ima mnoge prednosti u odnosu na  QTP kao što je detaljno opisano u nastavku –

Prednosti i koristi od Selenium preko QTP-a

Selenium QTP
Otvoreni izvor, slobodan za upotrebui besplatno. Trgovački.
Vrlo rastezljivo Ograničeni dodaci
Može izvoditi testove preko različitim preglednicima Može izvoditi testove samo u Firefox, Internet Explorer i krom
Podržava raznim operativnim sustavima Može se koristiti samo u Windows
Podržava mobilni uređaji QTP Podržava automatizaciju testiranja mobilnih aplikacija (iOS i Android) koristeći HP rješenje pod nazivom – HP Mobile Center
Može izvršiti testove dok o preglednik je minimiziran Potrebno je da se aplikacija testira kako bi bila vidljiva na radnoj površini
Može izvršiti testove paralelno. Može se izvoditi samo paralelno, ali uz pomoć Centra za kvalitetu koji je opet proizvod koji se plaća.

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 dosljedan UX 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 pipeline koristeći Jenkins. Morali su osigurati da ključni korisnički putevi funkcioniraju nakon svake promjene koda.

Izazov

Nove implementacije su povremeno prekidale korisničke tokove - prijavu, slanje obrazaca - izbjegavajući 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 funkcionalnosti pretraživanja. Izvođeni su na svakoj Jenkins verziji, 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, 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.

Prednosti QTP-a u odnosu na Selenium

QTP Selenium
Može testirati i web i desktop aplikacije Može testirati samo web aplikacije
Dolazi sa ugrađeno spremište objekata Nema ugrađeno spremište objekata
Automatizira brže od Selenium jer je to potpuno opremljen IDE. Automatizira se sporije jer nema izvorni IDE, a za razvoj se može koristiti samo IDE treće strane.
Testiranje temeljeno na podacima lakše je izvesti jer ima ugrađene globalne i lokalne podatkovne tablice. Testiranje temeljeno na podacima je glomaznije jer se morate osloniti na mogućnosti programskog jezika za postavljanje vrijednosti za svoje testne podatke
Može pristupiti kontrolama unutar preglednika(kao što je traka favorita, adresna traka, gumbi Natrag i Naprijed itd.) Nije moguće pristupiti elementima izvan web aplikacije koja se testira
Pruža profesionalne korisnička podrška Ne nudi se službena korisnička podrška.
Ima izvornu sposobnost za izvoz testnih podataka u vanjske formate Nema nativnu mogućnost izvoza podataka o vremenu izvođenja u vanjske formate
Podrška za parametrizaciju je izgrađena Parametriranje se može izvršiti programiranjem, ali je teško implementirati.
Izvješća o ispitivanju generiraju se automatski Nema izvorne podrške za generiranje izvješća o testovima/bugovima.

Iako je jasno da QTP ima naprednije mogućnosti, Selenium nadmašuje QTP u tri glavna područja:

  • Trošak(jer Selenium je potpuno besplatan)
  • Fleksibilnost(zbog brojnih programskih jezika, preglednika i platformi koje podržava)
  • Paralelno testiranje(nešto za što je QTP sposoban, ali samo uz korištenje Centra za kvalitetu)

Rezime

  • Cijela Selenium Paket za testiranje softvera sastoji se od četiri komponente:
  • Selenium IDE, a Firefox i dodatak za chrome koji možete koristiti samo za izradu relativno jednostavnih testnih slučajeva i testnih paketa.
  • Selenium Daljinski upravljač, poznat i kao Selenium 1, je prvi Selenium alat koji je korisnicima omogućio korištenje programskih jezika u izradi složenih testova.
  • WebDriver, novije je otkriće koje omogućuje vašim testnim skriptama da komuniciraju izravno s preglednikom, čime ga kontroliraju s razine OS-a.
  • Selenium Grid je također alat koji se koristi sa Selenium RC za izvršavanje paralelnih testova u različitim preglednicima i operativnim sustavima.
  • Selenium RC i WebDriver spojeni su u obrazac Selenium 2.
  • Selenium je povoljniji od Microfocus UFT One u smislu troškova i fleksibilnosti.