Mi a Selenium WebDriver?
โก Okos รถsszefoglalรณ
Selenium A WebDriver egy nyรญlt forrรกskรณdรบ automatizรกlรกsi keretrendszer, amely kรถzvetlenรผl natรญv API-kon keresztรผl vezรฉrli a valรณdi bรถngรฉszลket, lehetลvรฉ tรฉve a webes alkalmazรกsok gyors, megbรญzhatรณ รฉs bรถngรฉszลkรถn รกtรญvelล tesztelรฉsรฉt olyan nyelvek hasznรกlatรกval, mint a Java, Python, C# รฉs Ruby.
Mi a Selenium WebDriver?
Selenium webdriver egy nyรญlt forrรกskรณdรบ API-gyลฑjtemรฉny, amelyet webes alkalmazรกsok tesztelรฉsรฉnek automatizรกlรกsรกra hasznรกlnak. Ellenลrzi, hogy egy webes alkalmazรกs a vรกrt mรณdon mลฑkรถdik-e tรถbb bรถngรฉszลben, beleรฉrtve a Chrome-ot is. Firefoxszafari, Microsoft Edge, รฉs az Internet Explorer. A WebDriver tรกmogatja a bรถngรฉszลk kรถzรถtti tesztelรฉst kรผlรถnbรถzล operรกciรณs rendszereken is.
Eltรฉrลen Selenium Az IDE-ben a WebDriver lehetลvรฉ teszi, hogy valรณdi programozรกsi nyelvet hasznรกlj tesztszkriptek tervezรฉsรฉhez, รญgy feltรฉteles logikรกt alkalmazhatsz, mint pรฉldรกul az โha-akkor-kรผlรถnbenโ รฉs a โswitch-caseโ logika, valamintโฆping olyan konstrukciรณkat hasznรกl, mint a for รฉs a do-while. A WebDriver a kรถvetkezล nyelveket tรกmogatja:
- Java
- .NET (C#)
- PHP
- Python
- Perl
- Rubin
- JavaSzkript (WebDriverJS / WebDriverIO-n keresztรผl)
Nem kell mindegyiket megtanulnod โ elรฉg, ha csak az egyikben jรกrtas vagy. Az oktatรณanyagban szereplล pรฉldรกk a kรถvetkezลket hasznรกljรกk: Java a ... val Eclipse SDI.
Architectรบrรกja Selenium webdriver
Selenium A WebDriver kliens-szerver architektรบrรกt kรถvet, รฉs kรถzvetlenรผl az operรกciรณs rendszer szintjรฉn vezรฉrli a bรถngรฉszลt. Bรกrmely szkript futtatรกsรกhoz csak a kรญvรกnt programozรกsi nyelvลฑ IDE-re van szรผksรฉge (amely tartalmazza a Selenium parancsok) รฉs egy cรฉlbรถngรฉszล.
A keretrendszer nรฉgy fล รถsszetevลbลl รกll: a Selenium klienskรถnyvtรกrak (nyelvi kรถtรฉsek), a JSON Wire Protocol HTTP felett, a bรถngรฉszล-illesztลprogramok (pรฉldรกul a ChromeDriver รฉs a GeckoDriver), รฉs maga a bรถngรฉszล. Minden komponens szabvรกnyosรญtott HTTP-kรฉrรฉseken keresztรผl kommunikรกl, ami biztosรญtja a WebDriver szรกmรกra az alรกbb leรญrt sebessรฉg- รฉs pontossรกgi elลnyรถket.
Sebessรฉg
A WebDriver gyorsabb, mint Selenium RC, mert kรถzvetlenรผl a bรถngรฉszลvel kommunikรกl, รฉs a bรถngรฉszล natรญv motorjรกt hasznรกlja a vezรฉrlรฉsรฉhez. Nincs kรถztes JavaSzkript proxy szerver, amely megszรผntet egy jelentลs teljesรญtmรฉnybeli szลฑk keresztmetszetet.
Valรณs kรถlcsรถnhatรกs
A WebDriver รบgy kommunikรกl az oldal elemeivel, ahogyan egy valรณdi felhasznรกlรณ tennรฉ. Pรฉldรกul, ha egy tesztelt oldalon letiltott szรถvegmezล van, a WebDriver nem tud belegรฉpelni โ mert egy valรณdi szemรฉly sem tudna. Ez a realizmus csรถkkenti a tรฉves pozitรญvak szรกmรกt a teszteredmรฉnyekben.
API
A WebDriver egy letisztult, egyszerลฑ API-t kรญnรกl, amely nem tartalmaz redundรกns vagy zavarรณ parancsokat, รญgy a tesztszkriptek kรถnnyebben olvashatรณk รฉs karbantarthatรณk.
Bรถngรฉszล tรกmogatรกs
A WebDriver tรกmogatja a headless HtmlUnit bรถngรฉszลt is. Mivel a HtmlUnitnak nincs grafikus felรผlete, โheadlessโ-nek nevezik, รฉs lรกthatatlanul fut a hรกttรฉrben. Ez rendkรญvรผl gyorssรก teszi a tesztek vรฉgrehajtรกsรกt, mivel nem vesz igรฉnybe renderelรฉsi idลt, รฉs ideรกlis CI/CD folyamatokhoz, ahol nem รกll rendelkezรฉsre grafikus felhasznรกlรณi felรผlet.
Hogyan Selenium A WebDriver lรฉpรฉsrลl lรฉpรฉsre mลฑkรถdik
Az architektรบrรกt szem elลtt tartva, egy tipikus WebDriver teszt vรฉgrehajtรกsa a kรถvetkezลkรฉppen tรถrtรฉnik:
- รrd meg a tesztszkriptet a vรกlasztott nyelven a kรถvetkezล hasznรกlatรกval: Selenium klienskรถnyvtรกrak.
- Sorosรญtรกsi parancsokโa kรถtรฉs mindegyiket รกtalakรญtja Selenium JSON Wire Protocol kรฉrรฉs meghรญvรกsa.
- Kรผldรฉs a bรถngรฉszล illesztลprogramjรกnakโa kรฉrรฉs elรฉri a helyi illesztลprogramot (ChromeDriver, GeckoDriver, EdgeDriver), amely egy helyi porton figyel.
- Az illesztลprogram utasรญtja a bรถngรฉszลt a natรญv automatizรกlรกsi API-jรกt hasznรกlva kattinthat, gรฉpelhet vagy olvashat elemeket.
- A bรถngรฉszล vรฉgrehajtja รฉs vรกlaszol, az eredmรฉnyt JSON hasznos adatkรฉnt adja vissza.
- รllรญtรกs รฉs jelentรฉsโ egy olyan keretrendszer, mint pรฉldรกul TestNG, JUnit, vagy a PyTest รฉrvรฉnyesรญti a vรกlaszt, รฉs naplรณzza a sikeres vagy sikertelen eredmรฉnyt.
Ugyanaz a szkript futtathatรณ helyben, a Dockeren belรผl vagy tรกvoli grideken, pรฉldรกul Selenium Mรณdosรญtรกs nรฉlkรผli rรกcs.
Selenium WebDriver vs. Selenium IDE vs. Selenium RC
A jobb Selenium eszkรถz a tesztelรฉsi cรฉltรณl fรผgg. Az alรกbbi tรกblรกzat mindhรกrmat รถsszehasonlรญtja:
| Jellemzล | Selenium IDE | Selenium RC | Selenium webdriver |
|---|---|---|---|
| tรญpus | Bรถngรฉszล plugin | JavaSzkript proxy szerver | Natรญv API automatizรกlรกs |
| Sebessรฉg | Gyors lejรกtszรกs | Lassรญts | leggyorsabb |
| Nyelvek | Egyik sem | Tรถbbszรถrรถs | Tรถbbszรถrรถs |
| Fej nรฉlkรผli bรถngรฉszล | Nem | Nem | Igen |
| รllapot | Korlรกtozott | Elavult | W3C szabvรกny |
Modern projektekhez a WebDriver az ajรกnlott vรกlasztรกs โ W3C szabvรกnyosรญtott, aktรญvan karbantartott, รฉs a legszรฉlesebb kรถrลฑ nyelvi รฉs bรถngรฉszลtรกmogatรกssal rendelkezik.
A WebDriver korlรกtai
Bรกr a WebDriver hatรฉkony, vannak hรกtrรกnyai is. A korlรกtainak ismerete segรญt reรกlisan megtervezni az automatizรกlรกsi stratรฉgiรกt.
A WebDriver nem tรกmogatja azonnal az รบj bรถngรฉszลket
Mivel a WebDriver operรกciรณs rendszer szinten mลฑkรถdik, รฉs a kรผlรถnbรถzล bรถngรฉszลk eltรฉrล mรณdon kommunikรกlnak az operรกciรณs rendszerrel, minden รบj bรถngรฉszลkiadรกshoz frissรญtett illesztลprogramra lehet szรผksรฉg. A WebDriver csapatรกnak idลre van szรผksรฉge az รบj bรถngรฉszลfolyamat tanulmรกnyozรกsรกhoz, mielลtt kompatibilis illesztลprogramot tudna kiadni. Addig bizonyos parancsok kรถvetkezetlenรผl viselkedhetnek, vagy akรกr meg is hibรกsodhatnak az รบj bรถngรฉszลben.
Nincs beรฉpรญtett tesztjelentรฉs
A WebDriver รถnmagรกban nem generรกl teszteredmรฉny-jelentรฉseket. Integrรกlni kell egy egysรฉgtesztelรฉsi keretrendszerrel (TestNG, JUnit, NUnit, PyTest) vagy egy jelentรฉskรฉszรญtล kรถnyvtรกr (Allure, ExtentReports) segรญtsรฉgรฉvel rรถgzรญthetลk a sikeres/sikertelen รถsszefoglalรณk รฉs kรฉpernyลkรฉpek.


.jpg)




