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.

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. "
👉 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
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
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.
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)
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
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 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 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.
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.
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:
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
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 |
|
| Selenium RC |
|
| Veebidraiver |
|
| Selenium võre |
|
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:
- 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ältigeThread.sleep(). - 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. - SyncKronifitseerimise probleemid:
Elemendid laadivad aeglasemalt kui skripti käivitamine.
Fix: Rakenda WebDriverWaiti eeldatavate tingimustega. - Brauseritevahelised vastuolud:
Testid käituvad Chrome'is erinevalt, Firefoxvõi Edge.
Fix: Käivita testid Selenium Veebibrauseriteülene valideerimine võrgu- või pilveplatvormidel. - 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. - Testi hoolduskulud:
Sagedased kasutajaliidese muudatused muudavad testid hapraks.
Fix: Lihtsaks värskendamiseks kasutage leheobjektimudelit (POM) ja versioonikontrolli. - 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.




.png)
.jpg)
.jpg)
.jpg)



