Mi a Selenium? Bevezető oktatóanyag

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.

Mi a szelén?

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ő

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-ben. A ThoughtWorks mérnöke egy olyan webalkalmazáson dolgozott, amely gyakori tesztelést igényelt. Miután rájött, hogy az alkalmazásuk ismétlődő kézi tesztelése egyre hatástalanabb, létrehozta a JavaForgatókönyv program, amely automatikusan vezérli a böngésző műveleteit. Ezt a programot a „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 szkript kódja olyan tartomány elemeinek eléréséhez, amely eltér attól, ahol elindították. Például a www.google.com HTML-kódja a Java„randomScript.js” szkriptprogram. Ugyanez a származási irányelv csak a randomScript.js számára engedélyezi a google.com oldalainak elérését, például google.com/mail, google.com/login vagy google.com/signup. Azonban nem tud hozzáférni a különböző webhelyekről, például a yahoo.com/search vagy a guru99.com oldalaihoz, mert azok különböző tartományokhoz tartoznak.

Ugyanaz az eredetpolitikai probléma

Ez az oka annak, hogy korábban Selenium RC, tesztelők szükségesek mindkettő helyi másolatának telepítéséhez Selenium Mag (a JavaScript program) és a tesztelt webalkalmazást tartalmazó webszerver, hogy ugyanahhoz a tartományhoz tartozzanak

születése Selenium Távirányító (Selenium RC)

Paul Hammant

Sajnálatos módon; tesztelők segítségével 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. ugyanaz a származási politika. Tehát a ThoughtWork másik mérnöke, Paul Hammant, úgy döntött, hogy létrehoz egy kiszolgálót, amely HTTP-proxyként működik, hogy „becsapja” a böngészőt, hogy ezt elhiggye 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 lehető legkisebbre csökkentsék a tesztvégrehajtási időt. Kezdetben a rendszert "Hosted QA.” Jelentős szakaszok során képes volt böngésző képernyőképeket készíteni, és arra is 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 Chrome-bővítmény, amely rögzítési és lejátszási funkcióval automatizálhatja a böngészőt. Ezt az ötletet azért vetette fel, 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ő olyan platformok közötti tesztelési keretrendszer, amely az operációs rendszer szintjéről tudta 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 Az RC egy erősebb eszköz létrehozásához, az úgynevezett Selenium 2, És A WebDriver a mag. jelenleg Selenium Az RC még fejlesztés alatt áll, de csak karbantartási mó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 által készített keretrendszer volt népszerű Mercury interaktív (igen, az a cég, amely eredetileg gyártotta a QTP-t, mielőtt azt a HP felvásárolta volna). 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ípus készítő eszköz. 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ényeinek

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ásához a lehető leghamarabb be kell fejeződnie.

Összehasonlítás között Selenium és QTP (most UFT)

Quick Test Professional (QTP) egy szabadalmaztatott automatizált tesztelőeszköz, amely korábban a vállalat tulajdonában volt Mercury interaktív mielőtt a Hewlett-Packard megszerezte 2006-ben. Későbbi tulajdonosa a MicroFocus, az eszközt pedig az UFT one névre keresztelték. A Selenium A Tool Suite számos előnnyel rendelkezik  QTP az alábbiak szerint -

Előnyei és előnyei Selenium QTP felett

Selenium QTP
Nyílt forráskód, szabadon felhasználhatóés díjmentes. Kereskedelmi.
Nagyon nyújtható Korlátozott számú kiegészítő
Végigfuttathat teszteket különböző böngészők Csak teszteket lehet futtatni Firefox, Internet Explorer és a króm
Támogatja különféle operációs rendszerek Csak benne használható Windows
Támogatja mobil eszközök A QTP támogatja a mobilalkalmazások tesztelésének automatizálását (iOS és Android) a – HP Mobile Center nevű HP megoldás használatával
Tud teszteket végrehajtani míg a a böngésző minimalizálva van A tesztelés alatt álló alkalmazásnak láthatónak kell lennie az asztalon
Tud teszteket végrehajtani párhuzamosan. Csak párhuzamosan futtatható, de a Quality Center használatával, amely ismét fizetős termék.

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).
  • Konzisztens felhasználói élményt nyújtott 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 Jenkins-alapú CI/CD folyamatra támaszkodik. Biztosí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 –, így a hibákat csak a nap végi manuális tesztelés során észlelték.

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 Jenkins-builden futtak, 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, 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.

A QTP előnyei Selenium

QTP Selenium
Tesztelni lehet webes és asztali alkalmazásokhoz egyaránt Csak webalkalmazásokat tesztelhet
Jön egy beépített objektumtár Nem rendelkezik beépített objektumtárral
Gyorsabban automatizál, mint Selenium mert ez egy teljes értékű IDE. Lassabban automatizálódik, mert nincs natív IDE-je, és csak harmadik féltől származó IDE használható a fejlesztéshez.
Az adatvezérelt tesztelést könnyebb elvégezni, mert beépített globális és lokális adattáblákkal rendelkezik. Az adatvezérelt tesztelés bonyolultabb, mivel a tesztadatok értékeinek beállításához a programozási nyelv képességeire kell hagyatkoznia.
Hozzáférhet a vezérlőkhöz a böngészőn belül(például a Kedvencek sáv, a Címsáv, a Vissza és Előre gombok stb.) A tesztelés alatt álló webalkalmazáson kívüli elemekhez nem lehet hozzáférni
Professzionális Vevőszolgálat Nem kínálnak hivatalos felhasználói támogatást.
Natív képességgel rendelkezik tesztadatok exportálása külső formátumokba Nincs natív képessége a futásidejű adatok külső formátumokba történő exportálására
Paraméterezési támogatás kiépült A paraméterezés programozással is elvégezhető, de nehéz megvalósítani.
A tesztjelentések automatikusan generálódnak Nincs natív támogatás a teszt-/hibajelentések generálásához.

Bár nyilvánvaló, hogy a QTP fejlettebb képességekkel rendelkezik, Selenium három fő területen felülmúlja a QTP-t:

  • Költség(mivel Selenium teljesen ingyenes)
  • Rugalmas(az általa támogatott számos programozási nyelv, böngésző és platform miatt)
  • Párhuzamos tesztelés(amire a QTP képes, de csak a Quality Center használatával)

Összegzésként

  • Az egész Selenium A Software Testing Suite négy összetevőből áll:
  • Selenium Ötlet Firefox és egy króm kiegészítő, amelyet csak viszonylag egyszerű tesztesetek és tesztcsomagok létrehozásához használhat.
  • Selenium Távirányító, más néven Selenium 1, az első Selenium eszköz, amely lehetővé tette a felhasználók számára, hogy programozási nyelveket használjanak összetett tesztek létrehozásához.
  • A WebDriver az újabb áttörés, amely lehetővé teszi, hogy a tesztszkriptek közvetlenül kommunikáljanak a böngészővel, ezáltal vezérelve azt az operációs rendszer szintjéről.
  • Selenium A rács is egy olyan eszköz, amellyel együtt használható Selenium RC párhuzamos tesztek végrehajtásához különböző böngészőkben és operációs rendszerekben.
  • Selenium Az RC és a WebDriver összevonásra került Selenium 2.
  • Selenium költség és rugalmasság szempontjából előnyösebb, mint a Microfocus UFT One.