Mis on Selenium? Sissejuhatusõpetus

⚡ Nutikas kokkuvõte

Selenium on tasuta avatud lähtekoodiga automatiseeritud testimise raamistik, mis on loodud veebirakenduste valideerimiseks brauserites ja platvormidel, kasutades mitut programmeerimiskeelt. See võimaldab tänapäevaste kvaliteedikontrolli tavade jaoks robustset, tõhusat ja skaleeritavat testide automatiseerimist.

  • Põhiprintsiip: Selenium hõlbustab veebirakenduste automatiseeritud valideerimist erinevates brauserites ja operatsioonisüsteemides, toetades keeli nagu Java, C#, PythonJa palju muud.
  • Tööriistakomplekti struktuur: Selenium sisaldab nelja peamist komponenti – IDE, kaugjuhtimispult, WebDriver ja Grid –, millest igaüks käsitleb erinevaid automatiseerimisvajadusi.
  • IDE ja prototüüpimine: Selenium IDE on brauserilaiend kiireks juhtumite loomiseks ja prototüüpimiseks, kuid see sobib kõige paremini lihtsate testistsenaariumide jaoks.
  • Kaugjuhtimispuldi evolutsioon: Selenium RC, mis on nüüd hooldusrežiimis, oli esimene raamistik, mis lubas testiskripte mitmes keeles, lahendades brauseripoliitika piiranguid.
  • WebDriveri rakendamine: WebDriver suhtleb otse brauseritega, pakkudes operatsioonisüsteemi tasemel kontrolli ja ülimat stabiilsust keeruka automatiseerimise jaoks.
  • Paralleelsuse ruudustik: Selenium Grid võimaldab testide paralleelset käivitamist mitmes masinas ja brauseris, vähendades oluliselt testitsükli kestust.
  • Brauserite- ja platvormideülene tugi: Selenium toetab laia valikut brausereid ja operatsioonisüsteeme, pakkudes veebi kvaliteedikontrolli jaoks võrratut paindlikkust.
  • Mõju tegelikule maailmale: Meeskonnad kasutavad Selenium et kiirendada väljalasketsükleid, vähendada käsitsi testimist ja tagada ühtlane kasutajakogemus brauserites, tõestatud tulemustega SaaS-is, CI/CD-s ja funktsioonide pakkumises.

Mis on seleen

Mis on Selenium?

Selenium on tasuta (avatud lähtekoodiga) automatiseeritud testimisraamistik, mida kasutatakse veebirakenduste valideerimiseks erinevates brauserites ja platvormidel. Saate kasutada mitut programmeerimiskeelt, näiteks Java, C#, Pythonjne loomiseks Selenium Testskriptid. Testimine on tehtud kasutades Selenium testimisvahendit nimetatakse tavaliselt Selenium Testimine.

Ekspertide ülevaated

„Vältige testides fikseeritud uneviivituste kasutamist. Selle asemel kasutage elementide laadimise ootamiseks selgesõnalisi ooteaegu (näiteks WebDriverWait). See muudab teie skriptid usaldusväärsemaks ja kiiremaks, kuna need reageerivad dünaamiliselt tegelikele lehetingimustele – see on oluline parim tava õpilastele kõikjal, alustades…“ Selenium. "

— Himanshu Sheth, Selenium ekspert

👉 Registreeru tasuta otseülekande saamiseks Selenium Testimisprojekt

Selenium Tööriistakomplekt

Selenium Tarkvara ei ole ainult üks tööriist, vaid tarkvarakomplekt, mille iga osa on erinev Selenium Organisatsiooni kvaliteedikontrolli testimise vajadused. Siin on tööriistade loend

  • Selenium Integreeritud arenduskeskkond (IDE)
  • Selenium Kaugjuhtimispult (RC)
  • Veebidraiver
  • Selenium võre

Selenium Tööriistakomplekt

Hetkel, Selenium RC ja WebDriver liidetakse üheks raamistikuks Selenium 2. Selenium 1, muide, viitab Selenium RC.

Tutvustusvideo Selenium

Click siin kui video pole juurdepääsetav

Kes arenes Selenium?

Alates Selenium on erinevate tööriistade kogum, sellel olid ka erinevad arendajad. Allpool on toodud võtmeisikud, kes andsid sellesse märkimisväärse panuse Selenium Projekt

Arenenud Selenium

Peamiselt Selenium oli lõi Jason Huggins 2004. aastalThoughtWorksi insenerina töötas ta veebirakenduse kallal, mis vajas sagedast testimist. Mõistes, et nende rakenduse korduv käsitsi testimine muutus üha ebaefektiivsemaks, lõi ta... JavaScript programm, mis automaatselt brauseri toiminguid juhiks. Ta pani sellele programmile nimeks "JavaScriptTestRunner.

Nähes selles idees potentsiaali teiste veebirakenduste automatiseerimiseks, tegi ta JavaScriptRunner avatud lähtekoodiga, mis hiljem ümber nimetati Selenium tuum. Neile, kes on huvitatud muude veebirakenduste testimise võimaluste uurimisest, vaadake neid Selenium alternatiive.

Sama päritolupoliitika probleem

Sama päritolupoliitika keelab JavaSkriptikood ei pääse ligi elementidele domeenilt, mis erineb domeenist, kus see käivitati. Näiteks HTML-kood aadressil www.google.com kasutab JavaSkriptiprogramm „randomScript.js”. Sama päritolupoliitika lubab randomScript.js-il juurde pääseda ainult google.com-i lehtedele, näiteks google.com/mail, google.com/login või google.com/signup. See ei pääse aga ligi erinevate saitide lehtedele, näiteks yahoo.com/search või guru99.com, kuna need kuuluvad erinevatele domeenidele.

Sama päritolupoliitika probleem

See on põhjus, miks enne Selenium RC, testijad on vajalikud mõlema kohalike koopiate installimiseks Selenium Tuum (a JavaSkriptiprogramm) ja testitavat veebirakendust sisaldav veebiserver, seega kuuluksid nad samasse domeeni

Sünd Selenium Pult (Selenium RC)

Paul Hammant

Kahjuks testijad, kes kasutavad Selenium Core pidi installima kogu testitava rakenduse ja veebiserveri oma kohalikesse arvutitesse, sest sama päritolu poliitikaSeega veel üks ThoughtWorksi insener, Paul Hammant, otsustas luua serveri, mis toimiks HTTP-proksina, et brauserit petta ja panna teda uskuma, et Selenium Core ja testitav veebirakendus pärinevad samast domeenist. See süsteem sai tuntuks kui Selenium Pult or Selenium 1.

Sünd Selenium võre

Patrick Lightbody

Selenium Gridi töötas välja Patrick Lightbody et lahendada vajadus minimeerida testide täitmisaega nii palju kui võimalik. Algselt nimetas ta süsteemi "Majutatud kvaliteedikontroll." See suutis jäädvustada brauseri ekraanipilte oluliste etappide ajal ja ka välja saatmine Selenium käske erinevatele masinatele samaaegselt.

Sünd Selenium IDE

Shinya Kasatani

Shinya Kasatani Jaapani loodud Selenium IDEon Firefox ja Chrome'i laiendus, mis suudab brauserit salvestamise ja taasesitamise funktsiooni abil automatiseerida. Ta tuli selle idee peale, et veelgi kiirendada testide loomist. Ta annetas Selenium IDE Selenium Projekti sisse 2006.

WebDriveri sünd

Simon Stewart

Simon Stewart loodud WebDriver umbes 2006 kui brauserid ja veebirakendused muutusid võimsamaks ja piiravamaks JavaSkriptiprogrammid nagu Selenium Tuum. See oli esimene platvormideülene testimisraamistik, mis suutis brauserit operatsioonisüsteemi tasandil juhtida.

Sünd Selenium 2

In 2008, Kogu Selenium Meeskond otsustas ühendada WebDriveri ja Selenium RC, et moodustada võimsam tööriist nimega Selenium 2Koos WebDriver on tuum. Praegu Selenium RC-d alles arendatakse, aga ainult hooldusrežiimis. Suurem osa Selenium Projekti jõupingutused on nüüd keskendunud Selenium 2.

Niisiis, miks nimi Selenium?

Nimi Selenium tuli naljast, mille Jason oma meeskonnale ükskord rääkis. ajal Selenium's areng, teine automatiseeritud testimine raamistiku tegi populaarseks ettevõte nimega Mercury Interaktiivne (jah, ettevõte, mis algselt QTP-d valmistas enne, kui HP selle omandas). Selenium on tuntud vastumürk Mercury mürgitust, pakkus Jason seda nime ja tema meeskonnakaaslased võtsid selle. Nii saime seda raamistikku tänapäevani nimetada.

Miks Nimi Selenium

Mis on Selenium IDE?

Selenium Integreeritud arenduskeskkond (IDE) on lihtsaim raamistik aasta Selenium sviit ja on kõige lihtsam õppida. See on Chrome ja Firefox plugin mida saate installida sama lihtsalt kui teiste pistikprogrammidega. Kuid oma lihtsuse tõttu Selenium IDE-d tuleks kasutada ainult a prototüüpimise tööriist. Kui soovite luua täpsemaid testjuhtumeid, peate kasutama kumbagi Selenium RC või WebDriver.

Selenium IDE

Mis on Selenium Pult (Selenium RC)?

Selenium RC oli lipulaeva testimise raamistik tervikust Selenium projekti pikka aega. See on esimene automatiseeritud veebitestimine tööriist, mis võimaldab kasutajatel kasutada programmeerimiskeelt, mida nad eelistavad. Alates versioonist 2.25.0 saab RC toetada järgmisi programmeerimiskeeli:

Selenium Pult (Selenium RC)

Mis on WebDriver?

WebDriver osutub paremaks kui Selenium IDE ja Selenium RC mitmes aspektis. See rakendab brauseri toimingute automatiseerimisel kaasaegsemat ja stabiilsemat lähenemist. WebDriver, erinevalt Selenium RC, ei tugine JavaSkript jaoks Selenium Automatiseerimise testimine. See juhib brauserit sellega otse suheldes.

Toetatud keeled on samad mis keeles Selenium RC.

  • Java
  • C#
  • PHP
  • Python
  • Perl
  • rubiin

Veebidraiver

Mis on Selenium Võrk?

Selenium Grid on tööriist kasutatakse koos Selenium RC jooksma paralleelkatsed erinevates masinates ja erinevates brauserites korraga. Paralleelne täitmine tähendab mitme testi korraga käivitamist.

Funktsioonid:

  • võimaldab testide samaaegne läbiviimine in mitu brauserit ja keskkonda.
  • Säästab aega tohutult.
  • Kasutab jaoturid kontseptsioon. Rummu toimib keskse allikana Selenium käsud igale sellega ühendatud sõlmele.

Selenium Brauseri ja keskkonna tugi

Nende arhitektuuriliste erinevuste tõttu Selenium SDI, Selenium RC ja WebDriver toetavad erinevaid brauserite ja töökeskkondade komplekte.

  Selenium IDE Veebidraiver
Brauseri tugi Mozilla Firefox ja Chrome Google Chrome 12 +
Firefox
Internet Explorer 7+ ja Edge
safari,
HtmlUnit ja PhantomUnit
Operating System Windows, Mac OS X, Linux Kõik operatsioonisüsteemid, kus ülaltoodud brauserid töötavad.

Märge: Opera Juht enam ei tööta

Kuidas valida õige Selenium Tööriist teie vajadustele

Vahend Miks valida?
Selenium IDE
  • Et õppida tundma automatiseeritud testimise kontseptsioone ja Selenium, Sealhulgas:
  • Seleeni käsud, nagu tippige, avage, klõpsake ja oodake, kinnitage, kinnitage jne.
  • Lokaatorid nagu id, nimi, xpath, css-selektor jne.
  • Täitmine kohandatud JavaSkriptikood, kasutades runScripti
  • Testjuhtumite eksportimine erinevates vormingutes.
  • Luua teste, millel on vähe või puuduvad programmeerimise eelteadmised.
  • Lihtsate testjuhtumite ja testkomplektide loomiseks, mida saate hiljem RC-sse või WebDriverisse eksportida.
  • Veebirakenduse testimiseks Firefox ja ainult Chrome.
Selenium RC
  • Testi kujundamiseks, kasutades seleeni keelest väljendusrikkamat keelt
  • Testi käivitamiseks erinevates brauserites (va HtmlUnit) erinevates operatsioonisüsteemides.
  • Testide juurutamiseks mitmes keskkonnas, kasutades Selenium Võre.
  • Rakenduse testimiseks uue brauseri vastu, mis seda toetab JavaSkript.
  • Veebirakenduste testimiseks keeruliste AJAX-põhiste stsenaariumitega.
Veebidraiver
  • Testjuhtumi kujundamisel teatud programmeerimiskeele kasutamine.
  • AJAX-põhiste funktsioonide poolest rikkalike rakenduste testimiseks.
  • Testide läbiviimiseks brauseris HtmlUnit.
  • Kohandatud testitulemuste loomiseks.
Selenium võre
  • Et juhtida oma Selenium RC-skriptid korraga mitmes brauseris ja operatsioonisüsteemis.
  • Tohutu testikomplekti käivitamiseks, mis tuleb võimalikult lühikese ajaga lõpule viia.

Reaalse maailma juhtumiuuringud

🔍 Juhtumiuuring 1: SaaS-i armatuurlaua brauseriteülene ühilduvus

Stsenaarium

Tarkvarateenusena pakkuv ettevõte valmistus välja andma analüütika juhtpaneeli, mis pidi toimima ühtlaselt kõigis tänapäevastes brauserites (Chrome, Firefox, Edge, Safari).

väljakutse

Iga brauseri käsitsi testimine oli aeganõudev, veaaldis ega suutnud sammu pidada kiirete arendustsüklitega.

Lahendus koos Selenium

Kvaliteedikontrolli insener lõi a Selenium võre seadistatud sama testikomplekti samaaegseks käivitamiseks mitmes brauseris ja operatsioonisüsteemi kombinatsioonis. Testid loodi Python kasutamine Selenium WebDriver selliste toimingute jaoks nagu sisselogimine, diagrammide filtreerimine ja andmete eksport.

Tulemus

  • Regressiooni kestus lühenes 80%.
  • Avastati brauseripõhised renderdusvead varakult (nt valesti joondatud graafikud IE-s).
  • Säilitas brauseri maatriksis ühtse armatuurlaua kasutajakogemuse ilma täiendavate käsitsi tehtavate toiminguteta.

⚙️ Juhtumiuuring 2: CI/CD integratsioon veebirakenduse jaoks läbi Selenium + TestNG

Stsenaarium

Keskmise suurusega veebiarendusfirma tugineb Jenkinsi kasutavale CI/CD torujuhtmele. Nad pidid tagama, et põhikasutaja teekonnad toimiksid pärast iga koodimuudatust.

väljakutse

Uute versioonide juurutused katkestasid aeg-ajalt kasutajavooge – sisselogimist, vormide esitamist –, mistõttu neid ei tuvastatud enne käsitsi testimist päeva lõpus.

Lahendus koos Selenium

Testija rakendas a Java-põhine Selenium WebDriveri komplekt on integreeritud TestNGTestid hõlmasid autentimist, profiilivärskendusi ja otsingufunktsioone. Need töötasid igas Jenkinsi versioonis, kasutades paralleelset käivitamist ja brauseri parameetrite seadmist.

Tulemus

  • Saavutatud kiire tagasiside: katkised vood märgistati kohe.
  • Vähendas pärast juurutamist tekkivate vigade arvu enam kui 60%.
  • Võimaldas arendajatel probleeme lahendada enne, kui need jõudsid kvaliteedikontrolli.

🚀 Juhtumiuuring 3: Reisikoguja funktsioonide avaldamise kiirendamine

Stsenaarium

Reisipakkumiste koondaja platvorm vajas uuendatud lennupiletite broneerimise funktsiooni väljaandmist. Manuaalsed regressioonitestid enam kui 10 lehel võtsid päevi ja blokeerisid väljalaske.

väljakutse

Turule jõudmise aja lühendamise surve ei suutnud ületada käsitsi testimise tsükleid, riskides viivituste või madalama kvaliteediga.

Lahendus koos Selenium & Lehekülje objektimudel

Kvaliteedikontrolli automatiseerimise juht tutvustas C#-s Page Object Model (POM) struktuuri. Selenium WebDriveri skriptid kapseldasid leheelemente ja toiminguid (otsingureklaamid, filtrite rakendamine ja maksejuhtumid). Automaatsed testid käivitati igal õhtul GitLab CI-s.

Tulemus

  • Testimise aeg lühenes kolmelt päevalt neljale tunnile.
  • Skriptide taaskasutamine mitme funktsiooni puhul vähendab skriptimise töömahtu 50%.
  • Enesekindlus kasvas: väljalase saadeti graafiku kohaselt välja ja veateateid oli minimaalselt.

ühine Selenium Väljakutsed (ja parandused)

Kuigi Selenium on võimas, seisavad testijad sageli silmitsi probleemidega, mis võivad mõjutada töökindlust ja kiirust. Siin on mõned levinumad probleemid ja nende lahendamise viisid:

  1. Ebaühtlased testid:
    Testid võivad ajastuse või võrguprobleemide tõttu juhuslikult ebaõnnestuda.
    Fix: Kasutage selgesõnalisi ooteaegu ja stabiilseid asukoha määrajaid; vältige Thread.sleep().
  2. Dünaamilised veebielemendid:
    Elementide ID-de või XPath-ide muutmine põhjustab element-not-found veateateid.
    Fix: Kasutage suhtelisi XPath-e, CSS-selektoreid või dünaamilist atribuutide käsitlemist.
  3. SyncKronifitseerimise probleemid:
    Elemendid laadivad aeglasemalt kui skripti käivitamine.
    Fix: Rakenda WebDriverWaiti eeldatavate tingimustega.
  4. Brauseritevahelised vastuolud:
    Testid käituvad Chrome'is erinevalt, Firefoxvõi Edge.
    Fix: Käivita testid Selenium Veebibrauseriteülene valideerimine võrgu- või pilveplatvormidel.
  5. Hüpikakende ja teadete haldamine:
    Ootamatud hüpikaknad võivad testi voogu katkestada.
    Fix: Kasutama Selenium'i häirete liides või try-catch plokid nende sujuvaks käsitlemiseks.
  6. Testi hoolduskulud:
    Sagedased kasutajaliidese muudatused muudavad testid hapraks.
    Fix: Lihtsaks värskendamiseks kasutage leheobjektimudelit (POM) ja versioonikontrolli.
  7. Integratsiooni väljakutsed:
    CI/CD torujuhtmed võivad draiveriprobleemide tõttu rikki minna.
    Fix: Kasutama Selenium Haldur (Selenium 4+) või WebDriver Manager draiverite automaatseks haldamiseks.

Lühidalt: sild Selenium Probleemid tulenevad kehvast sünkroniseerimisest või habrastest lokaatoritest – mõlemad on lahendatavad nutikamate ooteaegade, modulaarse disaini ja pideva hoolduse abil.

KKK:

Selenium on avatud lähtekoodiga automatiseerimisraamistik, mida kasutatakse veebirakenduste testimiseks erinevates brauserites ja platvormidel. See võimaldab testijatel simuleerida kasutajate interaktsioone, nagu klõpsud, vormide esitamine ja navigeerimine, kasutades erinevaid programmeerimiskeeli.

Selenium kasutatakse peamiselt brauseripõhise testimise automatiseerimiseks. See aitab tagada veebirakenduste korrektse toimimise eri brauserites, toetab regressiooni- ja funktsionaalset testimist ning integreerub hõlpsalt CI/CD-torustikega pideva testimise jaoks.

Selenium koosneb neljast põhikomponendist: Selenium IDE (salvestus-/taasesitustööriist), Selenium RC (aegunud) Selenium Veebidraiver (kaasaegne automatiseerimise API) ja Selenium võre (paralleelseks, brauseriteüleseks testimiseks).

Need neli tüüpi on: Selenium IDE testide salvestamiseks, Selenium RC pärandautomaatika jaoks Selenium Veebidraiver brauseri otseseks juhtimiseks ja Selenium võre hajutatud paralleelseks testimiseks mitmes brauseris.

Selenium WebDriver on põhikomponent, mis suhtleb brauseritega otse natiivsete API-de abil. See võimaldab arendajatel kirjutada jõulisi, brauseriteüleseid automatiseerimisskripte sellistes keeltes nagu Java, Pythonja C#-le toetumata JavaSkript.

Selenium IDE on algajasõbralik, pakkudes salvestamise ja taasesituse funktsioone brauserilaienduste kaudu. Veebidraiverteisest küljest on see koodipõhine, toetab mitut keelt ja pakub täiustatud, skaleeritavat brauseri automatiseerimist, mis sobib reaalsete testimisraamistike jaoks.

Võta see postitus kokku järgmiselt: