Szelén webdriver architektúra: a legtöbb kezdő nem tudja

Kezdjük azzal Szelén bemutató Fekete könyv kimerítő és eltérő megközelítésben , A Selenium oktatóanyag ezen első szakaszában arról fogunk beszélniSzelén webdriver architektúra, mi az a Selenium Webdriver, A szelén webdriver áttekintése, a szelén rövid története, a szelén előnyei, a szelén korlátai, a szelén összetevői és néhány gyakran ismételt kérdés.

Mi az a Selenium Webdriver

A szelén egy nyílt forráskódú technológia vagy keretrendszer amelyen keresztül web alapú alkalmazásokat automatizálhatunk. A Selenium támogatja a több böngészős tesztelést, több nyelv, például Java, Ruby, Perl, Python is támogatott. A platform részeként különböző platformokat támogat, például Windows, Linux, macOS stb.

A szelén rövid története:

A szelént eredetileg Jason Huggins egy belső eszközből fejlesztette ki 2004-ben. ThoughtWorks.

Később, 2007-ben Huggins csatlakozott a Google szervezethez, és másokkal, például Jennifer Bevannel együtt folytatta a szelén egyik kezdeti változatának, az úgynevezett szelénnek a tervezését és fejlesztését. Szelén RC. Hasonló időszakban egy másik személy, Simon Stewart a ThoughtWorks-től, kifejlesztett egy fejlett webböngésző automatizálási eszközt WebDriver néven. 

2008-ban egy Philippe Hanrigou nevű személy a ThoughtWorkstől olyan távoli automatizálási koncepciókkal állt elő, amelyek „Selenium Grid” néven ismertek.

2009-ben a Google Test Automation Conference-en úgy döntöttek, hogy a két projektet összevonják, és a Selenium WebDriver vagy Selenium 2.0 nevet kapták.

A Selenium Webdriver előnyei:

A. Nyílt forráskód:

A Selenium egy nyílt forráskódú technológia/keretrendszer, ezért hatalmas közösségi támogatás áll rendelkezésre ott, ahol a fejlesztési és fejlesztési körök gyorsak és szélesek, nyílt forráskódként pedig bármilyen konkrét funkciót megvalósíthat, amire szüksége van a munkája során, és hozzájárulhat a nyílt forrásközösség. 

B. Több programozási nyelv támogatott:

A szelént széles körben használt nyelvek támogatják; Különböző programozási nyelv kötésekkel áll elő, így Ön igényeinek és szakértelmének megfelelően kiválaszthatja a szelénnel való munkavégzéshez megfelelő nyelvet.

A Selenium az alábbi programozási nyelvekhez nyújt támogatást: 

  • Jáva 
  • C#
  • Perl
  • piton
  • Rubin  
  • Javascript

C. Platformfüggetlen:

A Selenium platformfüggetlen, így bármilyen platformon és bármely operációs rendszeren (például Windows, Linux, macOS stb.) automatizálhatja webes alkalmazásait.

D. Böngészők közötti tesztelési képesség

A Selenium támogatja a böngészők közötti tesztelési képességet a webalkalmazásaihoz; A Seleniummal írt tesztcsomagot több böngészőben is futtathatja, például Firefox, Chrome, IE, Safari stb.

E. Eszközök közötti tesztelési képesség

A Selenium Test Automation a mobil webes alkalmazások tesztelésének automatizálására szolgál különféle eszközökön, például Androidon, IOS-en. 

F. Távoli vagy felhőalapú végrehajtás:

A Selenium GRID lehetőséget biztosít a webalkalmazás automatizálási tesztszkriptjének felhőben történő futtatására és vezérlésére oly módon, hogy az egyik rendszert mestercsomópontként, a másik rendszert pedig szolga csomópontként állítja be, a szolga csomópontok egy főcsomóponthoz csatlakoznak, és a mestercsomópont figyeli a szolga csomópontot. csomópontok, így a tesztek különböző szolga csomópontokban vannak, különböző operációs rendszerekkel és különböző böngészőkkel, például Chrome, Firefox, Internet Explorer stb.

G. Párhuzamos tesztelési képesség:

A Selenium segítségével automatizált párhuzamos tesztelési képességeket érhet el, azaz párhuzamosan futtathatja a tesztszkriptet vagy az automatizálási teszteseteket a különböző vagy ugyanabban a böngészőben és különböző vagy azonos operációs rendszerben. Ezzel a funkcióval kevesebb végrehajtási időt érhet el a teljes automatizálási tesztcsomaghoz, valamint tesztelheti webalkalmazása megvalósíthatóságát és kompatibilitását több operációs rendszerrel és több böngészővel párhuzamosan.   

H. Kompatibilitás több Framework és harmadik féltől származó eszközzel és technológiával

A Selenium keretrendszer könnyen integrálható több különböző harmadik féltől származó technológiával és keretrendszerrel, például különböző Unit Test keretrendszerrel, pl Teszt, JUnit, MbUnit, Nunit stb., különböző összeállítási eszközök, például Ant, Maven, Gradle stb., folyamatos integrációs eszközök, pl. Jenkins, különböző tesztkezelő eszközök, mint például Jira, testlink stb., különféle jelentéskészítő eszközök, mint például Allure, Extent Jelentés stb.

I. Fej nélküli böngésző végrehajtása: 

A Selenium Webdriver támogatja a fej nélküli böngésző-illesztőprogramot az automatizáláshoz teszteset végrehajtás, ahol az összes automatizálási teszteset fej nélküli böngésző módban fut, azaz nem nyílik meg böngésző, és a végrehajtás villámgyors lesz, így sürgős kiadás és érvényesítés esetén gyorsan elvégezheti a szkriptek és a funkciók tesztelését.

Alapvetően használhatod htmlUnitdriver or szellem sofőr a Szelénnel végzett fejetlen kivégzésért.  

A szelén hátrányai:

  • Natív/ablak alapú alkalmazástámogatás, nincs jelen: 
    • A szelént a Web Bade automatizálására használják, de nem nyújt támogatást a natív alkalmazásokhoz vagy a Windows alapú alkalmazásokhoz.
  • Kimerítő képalapú automatizálás: 
    • A Selenium nem nyújt teljes körű támogatást a képalapú problémák vagy alkalmazások automatizálásához, bár használhatunk néhány harmadik féltől származó eszközt, például a Sikulit, a tesseract ocr alapú megoldásokat, amelyek integrálhatók a Seleniummal a képellenőrzéssel/műveletekkel, ill. A képadatok kivonatolása és érvényesítése bizonyos korlátokkal is rendelkezik, például problémákkal szembesülhet a párhuzamos teszteléssel, a kézzel írt dokumentumok azonosításával és az alkalmazás automatizálási folyamatának ellenőrzésével, ha ilyen használati esetek vannak.
  • Integráció harmadik féltől származó eszközökkel: 
    • A több, szelént tartalmazó külső féltől származó eszközzel való integráció egyik hátránya, hogy az automatizálási szkript időnként lelassulhat.
  • Szelén keret Fejlesztés:
    • Egy fejlett tesztautomatizálási keretrendszer megtervezése és fejlesztése a Seleniummal kapcsolatban nagy szakértelmet igényel a szelénnel kapcsolatban, és nem túl egyszerű egy automatizálási keretrendszer felépítése több eszközzel a szelén mellett.
  • Böngészőspecifikus problémák: 
    • Böngésző-specifikus problémákkal szembesülhet a Seleniummal, különösen az IE-vel való munka közben, néha előfordulhat, hogy nem tudja kezelni a webes műveleteket, például a kattintást, a küldőbillentyűket stb., és a böngésző leállhat. Ezért előzetes ismeretekkel kell rendelkeznie ezeknek a területeknek a kezeléséhez, miközben automatizálja a Bootstrap JS-re épített alkalmazást, és futtatja azt IE böngészőn.
    • Ezenkívül a Selenium Webdriver verzióival böngészőkompatibilitási problémákkal szembesülhet; meg kell győződnie arról, hogy a Selenium Webdriver verziójával kompatibilis Firefox, Chrome vagy bármely más böngészőt használ.
  • Nincs hivatalos támogatás: 
    • Mint minden más nyílt forráskódú eszköz, a szelén is egy nyílt forráskódú eszköz, ami azt jelenti, hogy nem kapsz hivatalos támogatást a problémáidhoz, mint bármelyik fizetős eszközhöz, bár nagyon nagy közösségi támogatás áll rendelkezésre, dolgozhatsz velük a problémanyilatkozattal. , de ez nagyon időigényes lehet.

Szelén komponensek: 

A szelén mint eszköz az alábbi összetevőket tartalmazza, amelyek a következők: 

Szelén IDE:

  • A Selenium IDE vagy a Selenium Integrated Development Environment a Selenium for Web Application Automation legelső verziója.
  • A Selenium IDE egyfajta rögzítési és lejátszási eszköz, amelyet a böngésző beépülő moduljaként használhat, és rögzítheti a webes műveleteket az alkalmazásaiban, és amely elmenthető szkriptként, majd később futtathatja ugyanazt a rögzített szkriptet a végrehajtáshoz és a műveletekhez. érvényesítések.
  • De van néhány korlátozása, például:
    • A felvett szkriptet le kell futtatni, a szkript módosítása nem olyan rugalmas, vagy nem is szabható meg, hogy az esetet és a szkripteket saját önálló megközelítésben használd.
    • A végrehajtás természeténél fogva nagyon lassú.
    • Főleg támogatja a Firefoxot, bár van néhány módosítás, amellyel a rögzített szkriptet más böngészőkben, például a Google Chrome-ban futtathatja.
    • a párhuzamos végrehajtás nem támogatott.
    • A mobiltesztelés nem támogatott.
    • A jelentéskészítés nem túl jó.
  • Valójában a Selenium nagyon előzetes verziója, ennek használatával nagyon korlátozott tesztautomatizálást végezhet webalkalmazásaihoz.

Szelén RC

  • A Selenium Remote Control a Selenium következő verziója, és nagyon gyakran Selenium 1.0-nak nevezik.

Hogyan működik a Selenium RC belsőleg:

A Selenium RC két fő összetevőből áll, mint például a Selenium Server és a Selenium Client.

A Selenium szerver elindítja a böngészőket, és lefuttatja a szelénparancsokat, amelyeket tesztautomatizálási szkriptként írt a különböző nyelveken elérhető Selenium klienskönyvtárak segítségével.

A Selenium Server a parancsokat/teszt parancsfájlokat Selenese parancsokká alakítja, és HTTP-proxyként működik.

A Selenium Server együttműködik a webböngésző motorral, és végrehajtja az automatizálni kívánt webes műveletet a Teszt alatti alkalmazás teszteseteinek részeként.

A Selenium RC használatának lépései: 

  • Telepítse a Selenium-RC szervert.
    • Hozzon létre egy projektet a választott programozási nyelv és a böngésző-illesztőprogram nyelvének használatával.
  • Telepítse a szelén szervert
    • A Selenium Server beállításához egyszerűen töltse le a selenium-server.jar fájlt, és futtassa azt a rendszerében az alábbi paranccsal: 
    • java -jar szelén-szerver.jar
  • Írja meg a szkriptet a Selenium klienskönyvtárak használatával, és ugyanezt a Selenium szerverrel.

A Selenium RC korlátai:

  • A Selenium távirányítóban az automatizálási illesztőprogram és a böngésző egy kicsit lassabb lesz, amiért a böngészőmotor nem működik közvetlenül, hanem a Selenium RC javascriptet injektál a böngészőmotorba, amelyet Selenium Core-nak is neveznek.
  • A kiszolgáló, amelynek működnie kell a tesztszkript végrehajtása előtt és alatt.
  • Az Advance Web műveletek nem automatizálhatók és kezelhetők a Selenium RC használatával, mint például az egér mozgatása, dupla kattintás, bevitel a billentyűzetről stb. stb., ellentétben a Selenium Webdriverrel.
  • A Selenium RC nem támogatja a mobilalkalmazások tesztelését.
  • A Selenium RC a valódi böngészőtől függ az Automation Testing script futtatásához, és a Selenium Webdriverrel ellentétben nem támogatja a fej nélküli böngészőt, például a HTMLUnitDriver vagy a GHostDriver stb.

Szelén WebDriver:

A Selenium Webdriver a Selenium komponensek előrehaladott verziója, amely nagyon robusztus és támogatja a webes interakciók előrehaladott verzióját, valamint a Selenium RC-vel ellentétben nem lép interakcióba a böngészővel Javascripten keresztül, és rendelkezik a mobilalkalmazás tesztelési támogatásával is. Nagyon gyakran a Selenium 2.0 részeként emlegetik.

A WebDriver képes kezelni a dinamikus elemeket, és támogatja a párhuzamos végrehajtást több különböző böngészővel.

Részletes megbeszélésünk lesz a következő részekben.

Szelén Rács: 

A Selenium GRID a Selenium egy másik összetevője, amelyen keresztül mester-szolga csomópontok létrehozásával távolról is végrehajthatja az automatizálási tesztelési parancsfájlt. A Selenium GRID támogatja a párhuzamos tesztelést ugyanazon a böngészőn, valamint több böngészőn. 

A következő részekben további megbeszéléseket folytatunk a Selenium GRID-ről.

WebDriver 3.0

A Selenium 3.0 a Selenium összetevők legújabb verziója, amely alapvetően a WebDriver 2.0 és a GRID 3 evolúciójának kombinációja.

Ebben a következő részben arról fogunk beszélni A szelén WebDriver architektúra részletesen, és végül ábrázolja hogyan működik a szelén belsőleg,.

Szelén webdriver architektúra  :

A Selenium Webdriver architektúrának öt fő attribútuma vagy összetevője van: 

    

  • Selenium Client Library vagy Selenium-Programming nyelvi kötések
  • WebDriver protokoll vagy JSON Wire Protocol HTTP-n keresztül
  • A böngésző illesztőprogramjai
  • Böngészők motorja
  • A böngésző renderelő motorja
Selenium Webdriver architektúra
Selenium Tutorial-Selenium Webdriver architektúra

Selenium kliens könyvtárak vagy programozási nyelv kötések: 

A Selenium különböző nyelvi kötéseket biztosít, azaz az ügyfélkönyvtárakat több különböző nyelv támogatásához az automatizálási fejlesztési és automatizálási tesztszkript részeként. Például Selenium C#-val, Selenium Java-val, Selenium Python-nal stb.

WebDriver Protocol vagy JSON WIRE PROTOCOL:

A JSON, amely alapvetően a JavaScript Object Notation rövidítése. Ezt a protokollt WebDriver protokollnak is nevezik, amelyet szerver-kliens adatátvitelre használnak a weben. Minden böngésző-illesztőprogram (pl. FirefoxDriver, ChromeDriver stb.) saját HTTP-kiszolgálóval rendelkezik, és ezt a protokollt használja az adatok átvitelére a Rest Webservices-en keresztül HTTP-kérés és HTTP-válasz formájában.

 Böngésző illesztőprogramok:

Minden böngészőnek saját böngészőprogramja van. A böngésző-illesztőprogramok a böngészőmotoron keresztül kapcsolatot létesítenek a megfelelő böngészővel. 

Amikor az automatizálási parancsfájl végrehajtásra kerül, közvetlenül kommunikál a böngésző-illesztőprogramokkal, és végül a megfelelő böngészővel. A kérés és a válasz HTTP-kérésen és HTTP-válaszon keresztül történik.

Böngésző motor:

Minden böngészőnek saját böngészőmotorja van; A böngészőmotor alapvetően közvetítő rétegként működik a felhasználói felület és a renderelő motor között.

Böngésző renderelő motor: 

A Böngésző megjelenítő motor felelős a kért dokumentum megjelenítéséért a kérés-válaszhoz és az adatokhoz szükséges konkrét elemek megjelenítésével.

Selenium Webdriver Architektúra és működő funkcionalitás dióhéjban :

A Selenium-WebDriver közvetlenül hívja meg a böngészőt az egyes böngészők natív automatizálási támogatásával és JavaScript-motorjával. A hívások lebonyolításának módja és az általuk támogatott szolgáltatások a használt böngészőtől függenek.

A böngésző betöltésekor nem szúr be JavaScriptet, mint a Selenium-RC.

A következő eset fordul elő a Webdriver szkript futtatása közben:

  •  Az automatizálási szkripteket bármilyen nyelvi kötéssel (Java / C # stb.) végezzük, ill kiváltja a WebDriver API-t miközben a szkript fut.
  •   A szkript és végül a parancsok (pl. driver.findElement (By.id ("idName"))) belsőleg JavaScript-re konvertálva.
  •   A Browser Engine használatával ismét az vissza lett konvertálva JSON-ba, ami egyfajta kulcs-érték pár.
  •   Miután megkapta a megfelelő kulcs értékét, azonosítja a megfelelő WebElementeket, és végrehajtja a megfelelő felhasználói műveleteket (például kattintás, kulcsok küldése stb.).
  •   Minden kommunikáció a JSON-Wire vagy Webdriver Protocol hívás, és a kommunikáció HTTP-n keresztül történik Rest API formájában HTTP-kérésként és HTTP-válaszként.

A szelén gyakran ismételt kérdések: 

Milyen típusú WebDriver API-k érhetők el a Seleniumban?

A Selenium Webdriver egy interfész, és különböző nyelvi kötésekkel rendelkezik a különböző programozási nyelvekhez, például Java, C#, python stb., 

A Selenium Webdrivernek két különböző változata van, például: 

  • Selenium Web illesztőprogram helyi.
  • Selenium Web driver Távirányító. 

A Selenium Web illesztőprogram Local az API-t használja az adott nyelvi összerendeléshez, és ezekkel helyi végrehajtással is dolgozhat, míg ha viszont távoli automatizálási tesztelési szkripteket szeretne végrehajtani, akkor a távoli Selenium Web illesztőprogram API-k.

Magyarázza el, melyek azok a forgatókönyvek, amelyeket nem tudunk automatizálni a szelén használatával?

A szelén nem ad módot az alkalmazás alábbi szempontjainak automatizálására, amelyek a következők: 

  • Az Alkalmazás teljesítményének tesztelése
  • Az alkalmazások biztonsági tesztelése.
  • Kép alapú feldolgozás és automatizálás
  • Captcha alapú automatizálás.
  • Videó streaming forgatókönyvek.
  • Natív alkalmazás vagy ablak alapú alkalmazások.
  • Streaming alkalmazások

Mi a különbség a Selenium 2.0 és a Selenium 3.0 között?

  • A Selenium 2.0 minimális követelménye a Java 1.7, a Selenium 3.0 esetében viszont az 1.8 Java verzió.
  • A Selenium 3.0 használatához GeckOdriver szükséges a Firefox 47 feletti verziójához, de a Selenium 2.0 esetében nem ez a helyzet 
  • A Selenium 3.0 támogatja a modern böngészőt például Edge, Safari stb., de másrészt a Selenium 2.0-hoz, a Mozilla böngésző-illesztőprogramjához, a Chromedriverhez, az IE-hez, amelyet a Selenium fejlesztői fejlesztettek ki.
  • A Selenium 3-ban megszűnt a mobilautomatizálási tesztelés támogatása, azaz az AndroidDriver és az iPhoneDriver, és olyan eszközöket kell használni, mint pl. Appium mobil automatizálási teszteléshez, ami a Selenium 2.0 esetében nem mondható el.
  • A Selenium 3.0 nem támogatja a Headless illesztőprogramot, azaz a HTMLUnitWebDrivert, de a Selenium 2.0 támogatja a Headless futtatást, azaz HTMLUnitDriver vagy ghostdriver segítségével.
  • A Selenium 3-on belül a Selenium WebDriver W3C szabvány lett; másrészt a Selenium Webdriver a Selenium 2.0-ban nem tartozik a W3C szabványhoz.

Következtetés : Ezzel befejezzük az első szegmenst Szelén bemutató feketekönyv fedő Mi az a Selenium, Selenium Webdriver Építészet, Szelén áttekintése, A szelén előnyei és hátrányai, A következő szegmensben Szelén bemutató A 2. modulban a szelén telepítéséről fogunk beszélni, azaz a beállításról, a szelén parancsokról és a szelén egyéb alapvető, középhaladó és haladó témáiról

Írj hozzászólást

E-mail címed nem kerül nyilvánosságra. Kötelező kitölteni *

Lapozzon a lap tetejére