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.

Mis on seleen

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

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

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, et need kuuluksid samasse domeeni

Sünd Selenium Pult (Selenium RC)

Paul Hammant

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

Patrick Lightbody

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

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

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.

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.
  • Hiiglasliku testkomplekti käivitamiseks tuleb see võimalikult kiiresti lõpule viia.

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.