Mi a Selenium? Bevezető oktatóanyag
⚡ Okos összefoglaló
Selenium egy ingyenes, nyílt forráskódú automatizált tesztelési keretrendszer, amelyet webes alkalmazások validálására terveztek böngészők és platformok között, több programozási nyelv használatával. Robusztus, hatékony és skálázható tesztautomatizálást tesz lehetővé a modern minőségbiztosítási gyakorlatok számára.
Mi a Selenium?
Selenium egy ingyenes (nyílt forráskódú) automatizált tesztelési keretrendszer, amelyet webalkalmazások ellenőrzésére használnak különböző böngészőkön és platformokon. Több programozási nyelvet is használhat, pl Java, C#, Pythonstb. létrehozásához Selenium Tesztszkriptek. A tesztelés a Selenium tesztelő eszközre általában úgy hivatkoznak Selenium Tesztelés.
Szakértői betekintések
„Kerüld a fix alvási késleltetések használatát a tesztekben. Ehelyett használj explicit várakozásokat (például WebDriverWait) az elemek betöltésére való várakozáshoz. Ezáltal a szkriptek megbízhatóbbak és gyorsabbak lesznek, mivel dinamikusan reagálnak a tényleges oldalkörülményekre – ez egy kulcsfontosságú bevált gyakorlat a diákok számára mindenhol, kezdve…” Selenium. "
👉 Regisztrálj ingyenes élő közvetítésre Selenium Tesztelési projekt
Selenium Tool Suite
Selenium A szoftver nem csupán egyetlen eszköz, hanem egy szoftvercsomag, amely mindegyike más és más Selenium Egy szervezet minőségbiztosítási tesztelési igényei. Íme az eszközök listája
- Selenium Integrált fejlesztési környezet (IDE)
- Selenium Távirányító (RC)
- webdriver
- Selenium Rács
Pillanatnyilag, Selenium Az RC és a WebDriver egyetlen keretrendszerbe egyesül Selenium 2. Selenium 1 egyébként arra utal Selenium RC.
Video Tutorial Selenium
Kattints itt ha a videó nem érhető el
Aki fejlődött Selenium?
Óta Selenium különböző eszközök gyűjteménye, különböző fejlesztői is voltak. Az alábbiakban felsoroljuk azokat a kulcsfontosságú személyeket, akik jelentős mértékben hozzájárultak a Selenium NetPoulSafe projekt
Elsősorban, Selenium volt Jason Huggins készítette 2004-benA ThoughtWorks mérnökeként egy olyan webes alkalmazáson dolgozott, amely gyakori tesztelést igényelt. Miután rájött, hogy az alkalmazás ismétlődő manuális tesztelése egyre kevésbé hatékony, létrehozott egy JavaForgatókönyv egy olyan program, amely automatikusan vezérelné a böngésző működését. Ezt a programot a következőnek nevezte el: "JavaScriptTestRunner.”
Látva az ötletben rejlő lehetőségeket más webalkalmazások automatizálására, elkészítette JavaScriptRunner nyílt forráskódú, amelyet később átneveztek Selenium Mag. Azok számára, akik érdeklődnek a webalkalmazás-tesztelés egyéb lehetőségeinek felfedezése iránt, tekintse meg ezeket Selenium alternatívák.
Ugyanaz az eredetpolitikai probléma
Ugyanaz a származási politika tiltja JavaA szkriptkód nem fér hozzá olyan elemekhez, amelyek egy olyan tartományból származnak, mint ahonnan elindították. Például a www.google.com HTML-kódja egy Java„randomScript.js” szkriptprogram. Ugyanez az eredetszabályzat csak a google.com domainen belüli oldalakhoz engedélyezi a randomScript.js hozzáférését, például a google.com/mail, google.com/login vagy google.com/signup oldalakhoz. Azonban nem férhet hozzá különböző webhelyekről, például a yahoo.com/search vagy a guru99.com oldalakhoz, mivel azok különböző domainekhez tartoznak.
Ez az oka annak, hogy mielőtt Selenium RC, tesztelők szükségesek mindkettő helyi másolatának telepítéséhez Selenium Mag (a Javaszkriptprogram) és a tesztelt webes alkalmazást tartalmazó webszerver, így ugyanahhoz a domainhez tartoznának
születése Selenium Távirányító (Selenium RC)
Sajnos a tesztelők, akik ezt használják Selenium A Core-nak a tesztelés alatt álló teljes alkalmazást és a webszervert a saját helyi számítógépére kellett telepítenie az általa megszabott korlátozások miatt. azonos eredetű politikaTehát egy másik ThoughtWorks mérnök, Paul Hammant, úgy döntött, hogy létrehoz egy olyan szervert, amely HTTP proxyként működik, hogy „becsapja” a böngészőt, elhitetve vele, hogy Selenium A Core és a tesztelt webalkalmazás ugyanabból a tartományból származik. Ez a rendszer a Selenium Távirányító or Selenium 1.
születése Selenium Rács
Selenium A rácsot fejlesztette ki Patrick Lightbody hogy a tesztek végrehajtási idejét a lehető legnagyobb mértékben minimalizálja. Kezdetben a rendszert „Kiszolgált minőségbiztosítás.” Képes volt böngésző képernyőképeket készíteni a jelentős szakaszokban, valamint a kiküldeni Selenium parancsokat egyszerre különböző gépekre.
születése Selenium IDE
Shinya Kasatani Japán hozta létre Selenium IDEEgy Firefox és egy Chrome-bővítmény, amely egy felvétel-lejátszás funkcióval automatizálhatja a böngészőt. Ezzel az ötlettel azért állt elő, hogy tovább növelje a tesztesetek létrehozásának sebességét. Adományozott Selenium IDE a Selenium Projekt be 2006.
A WebDriver születése
Simon Stewart létrehozta a WebDrivert kb 2006 amikor a böngészők és webes alkalmazások egyre erősebbek és korlátozóbbak lettek JavaScript programok, mint pl Selenium Mag. Ez volt az első többplatformos tesztelési keretrendszer, amely képes volt operációs rendszer szinten vezérelni a böngészőt.
születése Selenium 2
In 2008, Az egész Selenium A csapat úgy döntött, hogy egyesíti a WebDriver és Selenium RC egy erősebb eszköz, az úgynevezett Selenium 2, És A WebDriver a mag. jelenleg Selenium Az RC-t még fejlesztik, de csak karbantartási üzemmódban. A legtöbb Selenium A projekt erőfeszítései most arra összpontosulnak Selenium 2.
Szóval, miért a név Selenium?
A név Selenium egy viccből származott, amit Jason egyszer elsütött a csapatának. Alatt Selenium's fejlesztése, másik automatizált tesztelés nevű cég készítette népszerű keretrendszert. Mercury interaktív (igen, az a cég, amelyik eredetileg gyártotta QTP mielőtt a HP felvásárolta). Mivel Selenium jól ismert ellenszere Mercury mérgezés, Jason javasolta ezt a nevet, és a csapattársai átvették. Így nevezhetjük ezt a keretet a mai napig.
Mi a Selenium IDE?
Selenium Az integrált fejlesztési környezet (IDE) az legegyszerűbb keretrendszer a Selenium lakosztály és van a legkönnyebben megtanulható. Ez egy Chrome és Firefox csatlakoztat amelyeket olyan egyszerűen telepíthet, mint más beépülő modulokkal. Egyszerűsége miatt azonban Selenium Az IDE csak a prototípusping szerszám. Ha fejlettebb teszteseteket szeretne létrehozni, akkor bármelyiket kell használnia Selenium RC vagy WebDriver.
Mi a Selenium Távirányító (Selenium RC)?
Selenium RC volt az zászlóshajó tesztelési keretrendszer az egészből Selenium projekt hosszú ideig. Ez az első automatizált webes tesztelés eszköz, hogy lehetővé teszi a felhasználók számára az általuk preferált programozási nyelv használatát. A 2.25.0-s verziótól kezdve az RC a következő programozási nyelveket tudja támogatni:
Mi az a WebDriver?
A WebDriver jobbnak bizonyul, mint Selenium IDE és Selenium RC sok szempontból. Modernebb és stabilabb megközelítést valósít meg a böngésző műveleteinek automatizálásában. WebDriver, ellentétben Selenium RC, nem támaszkodik JavaScript for Selenium Automatizálási tesztelés. A böngészőt úgy irányítja, hogy közvetlenül kommunikál vele.
A támogatott nyelvek megegyeznek a nyelvekkel Selenium RC.
- Java
- C#
- PHP
- Python
- Perl
- Rubin
Mi a Selenium Rács?
Selenium A rács egy eszköz együtt használják Selenium RC futni párhuzamos tesztek különböző gépeken és különböző böngészőkön egyszerre. A párhuzamos végrehajtás több teszt egyidejű futtatását jelenti.
Jellemzők:
- lehetővé teszi a tesztek egyidejű futtatása in több böngésző és környezet.
- Időt takarít meg óriási.
- Kihasználja a hub-and-node koncepció. A hub központi forrásként működik Selenium parancsokat minden hozzá kapcsolódó csomópontnak.
Selenium Böngésző és környezettámogatás
Építészeti különbségeik miatt Selenium SDI, Selenium Az RC és a WebDriver különféle böngészőket és operációs környezeteket támogat.
| Selenium IDE | webdriver | |
|---|---|---|
| Böngésző támogatás | Mozilla Firefox és Chrome | Google Chrome 12 + Firefox Internet Explorer 7+ és Edge Szafari, HtmlUnit és PhantomUnit |
| Operating rendszer | Windows, Mac OS X, Linux | Minden operációs rendszer, amelyen a fenti böngészők futhatnak. |
Jegyzet: Opera A driver már nem működik
Hogyan válasszuk ki a megfelelőt Selenium Eszköz az Ön igényeihez
| Szerszám | Miért válasszon? |
|---|---|
| Selenium IDE |
|
| Selenium RC |
|
| webdriver |
|
| Selenium Rács |
|
Valós esettanulmányok
🔍 1. esettanulmány: Böngészők közötti kompatibilitás a SaaS-irányítópulthoz
Forgatókönyv
Egy szolgáltatásként kínált szoftvert fejlesztő cég egy olyan analitikai irányítópult kiadására készült, amelynek konzisztensen kellett működnie a modern böngészőkben (Chrome, Firefox, Edge, Safari).
Kihívás
Az egyes böngészőkön végzett manuális tesztelés időigényes, hibalehetőségekkel teli volt, és nem tudott lépést tartani a gyors fejlesztési iterációkkal.
Megoldás a Selenium
Egy minőségbiztosítási mérnök létrehozott egy Selenium Rács beállítás ugyanazon tesztkészlet egyidejű futtatására több böngészőn és operációs rendszer kombinációban. A teszteket a következő helyen írták: Python segítségével Selenium WebDriver olyan műveletekhez, mint a bejelentkezés, a diagramszűrés és az adatexportálás.
Eredmény
- A regresszió időtartama 80%-kal csökkent.
- Korán felfedeztem a böngészőspecifikus renderelési hibákat (pl. rosszul igazított grafikonok az IE-ben).
- Egységes irányítópult felhasználói élményt biztosított a böngésző mátrixában, extra manuális ciklusok nélkül.
⚙️ 2. esettanulmány: CI/CD integráció webes alkalmazáshoz a következőn keresztül: Selenium + TestNG
Forgatókönyv
Egy közepes méretű webfejlesztő cég egy CI/CD folyamatra támaszkodik, amely a következőket használja: JenkinsBiztosítaniuk kellett, hogy az alapvető felhasználói folyamatok minden kódmódosítás után működjenek.
Kihívás
Az új build telepítések időnként megzavarták a felhasználói folyamatokat – bejelentkezés, űrlapküldés – escaping észlelés a nap végi manuális tesztelésig.
Megoldás a Selenium
Egy tesztelő implementált egy JavaAlapú Selenium WebDriver csomag integrálva a következővel: TestNGA tesztek a hitelesítésre, a profilfrissítésekre és a keresési funkciókra terjedtek ki. Ezek minden eszközön futottak. Jenkins build, kihasználva a párhuzamos végrehajtást és a böngésző paraméterezését.
Eredmény
- Hibamentes visszajelzést kaptunk: a hibás folyamatokat azonnal jeleztük.
- Több mint 60%-kal csökkent a telepítés utáni hibák száma.
- Lehetővé tette a fejlesztők számára, hogy a problémákat még a minőségbiztosítási részleg elérése előtt megoldják.
🚀 3. esettanulmány: Utazási aggregátor funkcióinak gyorsított kiadása
Forgatókönyv
Egy utazási aggregátor platformnak ki kellett adnia egy megújult repülőjegy-foglalási funkciót. A több mint 10 oldalon végzett manuális regressziós tesztek napokig tartottak, és megakadályozták a kiadást.
Kihívás
A piacra jutási idő csökkentésére irányuló nyomás nem tudta felülmúlni a manuális tesztelési ciklusokat, ami késedelmeket vagy alacsonyabb minőséget kockáztatott.
Megoldás a Selenium & Oldal objektummodell
Egy minőségbiztosítási automatizálási vezető bemutatott egy Page Object Model (POM) struktúrát C#-ban. Selenium A WebDriver szkriptek oldalelemeket és műveleteket (keresőfutamok, szűrők alkalmazása és fizetési esetek) tartalmaztak. Az automatikus teszteket éjszakánként GitLab CI-n indítottuk el.
Eredmény
- A tesztelési idő 3 napról mindössze 4 órára csökkent.
- A szkriptek több funkción keresztüli újrafelhasználása 50%-kal csökkenti a szkriptelési ráfordítást.
- Megnőtt a bizalom: a kiadás a tervek szerint, minimális hibajelentéssel érkezett.
Közös Selenium Kihívások (és javítások)
Annak ellenére Selenium hatékony, a tesztelők gyakran szembesülnek olyan kihívásokkal, amelyek befolyásolhatják a megbízhatóságot és a sebességet. Íme néhány gyakori probléma és a javításuk módja:
- Csúszós tesztek:
A tesztek véletlenszerűen meghiúsulhatnak időzítési vagy hálózati problémák miatt.
Fix: Használjon explicit várakozási időket és stabil helymeghatározókat; kerülje aThread.sleep(). - Dinamikus webes elemek:
Az elemazonosítók vagy XPath útvonalak módosítása „elem nem található” hibákat okoz.
Fix: Használjon relatív XPath útvonalakat, CSS szelektorokat vagy dinamikus attribútumkezelést. - SyncKronizálási problémák:
Az elemek lassabban töltődnek be, mint a szkriptek végrehajtása.
Fix: Implementálja a WebDriverWait függvényt a várt feltételekkel. - Böngészők közötti inkonzisztenciák:
A tesztek másképp viselkednek Chrome-ban, Firefoxvagy Edge.
Fix: Tesztek futtatása Selenium Grid vagy felhő platformok böngészők közötti validációhoz. - Felugró ablakok és riasztások kezelése:
A váratlan felugró ablakok megszakíthatják a tesztfolyamatot.
Fix: Felhasználás SeleniumAlert felületét vagy a try-catch blokkokat használhatja a megfelelő kezeléshez. - Tesztkarbantartási többletköltségek:
A gyakori felhasználói felület-változtatások miatt a tesztek sebezhetőek.
Fix: Az egyszerű frissítések érdekében Page Object Model (POM) és verziókövetés alkalmazása. - Integrációs kihívások:
A CI/CD folyamatok illesztőprogram-problémák miatt meghibásodhatnak.
Fix: Felhasználás Selenium menedzser (Selenium 4+) vagy a WebDriver Manager segítségével automatikusan kezelheti az illesztőprogramokat.
Röviden: híd Selenium A problémák a rossz szinkronizációból vagy a törékeny lokátorokból erednek – mindkettő megoldható intelligensebb várakozásokkal, moduláris kialakítással és folyamatos karbantartással.





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



