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.

  • Alapelv: Selenium megkönnyíti a webes alkalmazások automatikus validálását különféle böngészőkön és operációs rendszereken, támogatva olyan nyelveket, mint a Java, C#, Python, És így tovább.
  • Eszközkészlet felépítése: Selenium négy fő komponenst tartalmaz – IDE, Remote Control, WebDriver és Grid –, amelyek mindegyike eltérő automatizálási igényeket elégít ki.
  • IDE és prototípusping: Selenium Az IDE egy böngészőbővítmény a gyors esetkészítéshez és prototípusok készítéséhez.ping, de egyszerű tesztelési forgatókönyvekhez a legalkalmasabb.
  • Távirányító evolúció: Selenium Az RC, amely jelenleg karbantartási módban van, volt az első keretrendszer, amely lehetővé tette a tesztszkriptek több nyelven történő futtatását, megoldva a böngészőszabályzatok korlátozásait.
  • WebDriver implementáció: A WebDriver közvetlenül kommunikál a böngészőkkel, operációs rendszer szintű vezérlést és kiváló stabilitást kínálva az összetett automatizáláshoz.
  • Párhuzamosság rácsa: Selenium A Grid lehetővé teszi a tesztek párhuzamos végrehajtását több gépen és böngészőn, drasztikusan csökkentve a tesztciklus időtartamát.
  • Böngésző- és platformfüggetlen támogatás: Selenium széles körű böngészőket és operációs rendszereket támogat, páratlan rugalmasságot biztosítva a webes minőségbiztosítás terén.
  • Valós hatás: A csapatok használják Selenium a kiadási ciklusok felgyorsítása, a manuális tesztelés csökkentése és a böngészők közötti konzisztens felhasználói élmény biztosítása érdekében, bizonyított eredményekkel a SaaS, a CI/CD és a funkciószolgáltatás terén.

Mi a szelén?

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

— Himanshu Sheth, Selenium Szakértő

👉 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

Selenium Tool Suite

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

Fejlett Selenium

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.

Ugyanaz az eredetpolitikai probléma

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)

Paul Hammant

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

Patrick Lightbody

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

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

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ért a Név Selenium

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.

Selenium IDE

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:

Selenium Távirányító (Selenium RC)

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

Webdriver

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
  • Az automatizált tesztelés fogalmainak megismerése és Selenium, Beleértve a következőket:
  • Szelén parancsok, mint például gépelés, megnyitás, kattintás és várás, érvényesítés, ellenőrzés stb.
  • Keresők, például azonosító, név, xpath, css választó stb.
  • Testre szabott végrehajtás JavaScript kód a runScript használatával
  • Tesztesetek exportálása különféle formátumokban.
  • Tesztek létrehozása kevés vagy semmilyen előzetes programozási tudással.
  • Egyszerű tesztesetek és tesztcsomagok létrehozása, amelyeket később exportálhat RC-be vagy WebDriver-be.
  • Egy webalkalmazás ellen Firefox és csak a Chrome.
Selenium RC
  • Egy teszt tervezése a szeléni nyelvnél kifejezőbb nyelv használatával
  • A teszt futtatásához különböző böngészőkben (a HtmlUnit kivételével) különböző operációs rendszereken.
  • A tesztek több környezetben való üzembe helyezéséhez a használatával Selenium Rács.
  • Alkalmazásának tesztelése egy új böngészővel, amely támogatja JavaForgatókönyv.
  • Webes alkalmazások tesztelése összetett AJAX-alapú forgatókönyvekkel.
webdriver
  • Egy bizonyos programozási nyelv használata a teszteset megtervezésekor.
  • Az AJAX-alapú funkciókban gazdag alkalmazások tesztelésére.
  • Tesztek végrehajtása a HtmlUnit böngészőben.
  • Testreszabott teszteredmények létrehozása.
Selenium Rács
  • Hogy futtasd a te Selenium RC szkriptek több böngészőben és operációs rendszerben egyszerre.
  • Egy hatalmas tesztcsomag futtatása, amelyet a lehető legrövidebb idő alatt kell befejezni.

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:

  1. 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 a Thread.sleep().
  2. 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.
  3. 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.
  4. 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.
  5. 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.
  6. 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.
  7. 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.

GYIK:

Selenium egy nyílt forráskódú automatizálási keretrendszer, amelyet webes alkalmazások tesztelésére használnak különböző böngészőkben és platformokon. Lehetővé teszi a tesztelők számára, hogy különböző programozási nyelvek használatával szimulálják a felhasználói interakciókat, például a kattintásokat, az űrlapbeküldéseket és a navigációt.

Selenium elsősorban böngészőalapú tesztelés automatizálására használják. Segít biztosítani a webes alkalmazások megfelelő működését a böngészők között, támogatja a regressziós és funkcionális tesztelést, és könnyen integrálható a CI/CD folyamatokba a folyamatos tesztelés érdekében.

Selenium négy fő összetevőből áll: Selenium IDE (felvétel/lejátszás eszköz), Selenium RC (elavult), Selenium webdriver (modern automatizálási API), és Selenium Rács (párhuzamos, böngészők közötti tesztfuttatáshoz).

A négy típus a következő: Selenium IDE a tesztek rögzítéséhez, Selenium RC a hagyományos automatizáláshoz, Selenium webdriver a közvetlen böngészővezérléshez, és Selenium Rács elosztott, párhuzamos teszteléshez több böngészőn keresztül.

Selenium A WebDriver az a központi komponens, amely natív API-kat használva közvetlenül kommunikál a böngészőkkel. Lehetővé teszi a fejlesztők számára, hogy robusztus, böngészőfüggetlen automatizálási szkripteket írjanak olyan nyelveken, mint a Java, Python, és C#-ra való támaszkodás nélkül JavaForgatókönyv.

Selenium IDE kezdőbarát, böngészőbővítményeken keresztül felvételi és lejátszási funkciókat kínál. webdrivera ezzel szemben kódalapú, több nyelvet támogat, és fejlett, skálázható böngészőautomatizálást biztosít, amely valós tesztelési keretrendszerekhez alkalmas.

Foglald össze ezt a bejegyzést a következőképpen: