Mis on Selenium? Sissejuhatusõpetus
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. "
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. aastal. ThoughtWorksi insenerina töötas ta veebirakenduse kallal, mis nõudis sagedast testimist. Saanud aru, et nende rakenduse korduv käsitsi testimine muutub üha ebatõhusamaks, lõi ta a JavaScript programm, mis juhiks automaatselt brauseri toiminguid. Ta nimetas seda programmi "JavaScriptTestRunner. "
Nähes selles idees potentsiaali teiste veebirakenduste automatiseerimiseks, tegi ta JavaScriptRunner avatud lähtekoodiga, mis hiljem nimetati ümber 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 juurdepääsuks elementidele domeenist, mis erineb selle käivitamise kohast. Näiteks HTML-kood saidil www.google.com kasutab a JavaSkriptiprogramm "randomScript.js". Sama päritolureeglid lubavad failil randomScript.js ainult juurdepääsu google.com-i lehtedele, nagu google.com/mail, google.com/login või google.com/signup. Siiski ei pääse see juurde erinevate saitide lehtedele, nagu yahoo.com/search või guru99.com, kuna need kuuluvad eri domeenidesse.
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, et need kuuluksid samasse domeeni
Sünd Selenium Pult (Selenium RC)
Kahjuks; testijad kasutavad Selenium Core pidi installima kogu testitava rakenduse ja veebiserveri oma kohalikesse arvutitesse, sest sama päritolupoliitika. Nii et teine ThoughtWorki insener, Paul Hammant, otsustas luua serveri, mis toimib HTTP-puhverserverina, et "petta" brauserit seda uskuma 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 tegeleda vajadusega minimeerida testi täitmise aegu nii palju kui võimalik. Algselt nimetas ta süsteemi "Hostitud QA.” See oli võimeline jäädvustama brauseri ekraanipilte olulistel etappidel 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 taasesituse funktsiooni kaudu automatiseerida. Ta tuli selle ideega välja, et katsejuhtumite loomise kiirust veelgi suurendada. 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 juhtida OS-i tasemelt.
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, kuid ainult hooldusrežiimis. Enamik 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 raamistik oli populaarne, mille valmistas ettevõte nimega Mercury Interaktiivne (jah, ettevõte, kes algselt tegi QTP-d enne, kui HP selle omandas). Alates 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 |
|
Võrdlus vahel Selenium ja QTP (nüüd UFT)
Quick Test Professional (QTP) on patenteeritud automatiseeritud testimistööriist, mis varem kuulus ettevõttele Mercury Interaktiivne enne kui Hewlett-Packard selle omandas aastal 2006. Selle hilisem omanik on MicroFocus ja tööriist nimetati ümber UFT üheks. The Selenium Tool Suite'il on palju eeliseid QTP nagu allpool kirjeldatud -
Eelised ja eelised Selenium üle QTP
Selenium | QTP |
---|---|
Avatud lähtekoodiga, tasuta kasutadaja tasuta. | Kaubandus-. |
Väga laiendatav | Piiratud lisandmoodulid |
Saab teste läbi viia erinevad brauserid | Saab käivitada ainult teste Firefox, Internet Explorer ja Kroom |
Toetab erinevaid operatsioonisüsteeme | Saab kasutada ainult sisse Windows |
Toetab mobiilseadmete | QTP toetab mobiilirakenduste testimise automatiseerimist (iOS ja Android), kasutades HP lahendust nimega – HP Mobile Center |
Oskab sooritada teste kuigi the,en brauser on minimeeritud | Testitav rakendus peab olema töölaual nähtav |
Oskab sooritada teste paralleelselt. | Saab käivitada ainult paralleelselt, kuid kasutades kvaliteedikeskust, mis on jällegi tasuline toode. |
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 ühtlase 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, 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.
QTP eelised võrreldes Selenium
QTP | Selenium |
---|---|
Saab testida nii veebi- kui ka töölauarakendused | Saab testida ainult veebirakendusi |
Kaasas a sisseehitatud objektihoidla | Sellel puudub sisseehitatud objektihoidla |
Automatiseerub kiiremini kui Selenium sest see on täisfunktsionaalne IDE. | Automatiseerub aeglasemalt, kuna sellel puudub algne IDE ja arendamiseks saab kasutada ainult kolmanda osapoole IDE-d. |
Andmepõhist testimist on lihtsam läbi viia, kuna sellel on sisseehitatud globaalsed ja kohalikud andmetabelid. | Andmepõhine testimine on kohmakam, kuna peate oma testandmete väärtuste määramisel tuginema programmeerimiskeele võimalustele |
Juurdepääs brauseri juhtelementidele(nagu lemmikute riba, aadressiriba, nupud Tagasi ja edasi jne) | Testitava veebirakenduse välistele elementidele ei pääse juurde |
Pakub professionaalset Klienditugi | Ametlikku kasutajatuge ei pakuta. |
Omab natiivset võimet eksportida katseandmeid välistesse vormingutesse | Sellel puudub natiivne võimalus käitusaja andmete eksportimiseks välistesse vormingutesse |
Parameetrite tugi on ehitatud | Parameetrite määramist saab teha programmeerimise kaudu, kuid seda on raske rakendada. |
Testiaruanded genereeritakse automaatselt | Testi-/veaaruannete loomiseks puudub loomulik tugi. |
Kuigi on selge, et QTP-l on täiustatud võimalused, Selenium kaalub QTP üles kolmes põhivaldkonnas:
- Maksma(sest Selenium on täiesti tasuta)
- Paindlikkus(paljude programmeerimiskeelte, brauserite ja platvormide tõttu, mida see toetab)
- Paralleelne testimine(midagi, milleks QTP on võimeline, kuid ainult kvaliteedikeskuse abil)
kokkuvõte
- Kogu Selenium Tarkvara testimise komplekt koosneb neljast komponendist:
- Selenium IDE, a Firefox ja kroomi lisandmoodul, mida saate kasutada ainult suhteliselt lihtsate testjuhtumite ja testkomplektide loomisel.
- Selenium Kaugjuhtimispult, tuntud ka kui Selenium 1, on esimene Selenium tööriist, mis võimaldas kasutajatel kasutada keerukate testide koostamisel programmeerimiskeeli.
- WebDriver on uuem läbimurre, mis võimaldab teie testskriptidel suhelda otse brauseriga, kontrollides seda OS-i tasemelt.
- Selenium Grid on ka tööriist, mida kasutatakse Selenium RC paralleelsete testide läbiviimiseks erinevates brauserites ja operatsioonisüsteemides.
- Selenium RC ja WebDriver liideti Selenium 2.
- Selenium on kulude ja paindlikkuse poolest soodsam kui Microfocus UFT One.