Selenium Webdriver Architecture: Většina začátečníků to neví

Začneme s Výukový program selenu Černá kniha vyčerpávajícím a odlišným přístupem, V tomto prvním segmentu selenového tutoriálu budeme diskutovat oArchitektura selenového webdriveru, co je Selenium Webdriver, přehled Selenium Webdriver, Stručná historie selenu, Výhody selenu, omezení selenu, komponenty selenu a několik často kladených otázek.

Co je Selenium Webdriver

Selenium je open source technologie nebo framework pomocí kterého můžeme automatizovat webové aplikace. Selenium podporuje testování ve více prohlížečích, je podporováno také více jazyků jako Java, Ruby, Perl, Python. Podporuje různé více platforem jako Windows, Linux, macOS atd. jako součást platformy.

Stručná historie selenu:

Selen byl původně vyvinut z interního nástroje Jasonem Hugginsem v roce 2004 na adrese ThoughtWorks.

Později v roce 2007 se Huggins připojil k organizaci Google a spolu s dalšími, jako je Jennifer Bevan, pokračoval v navrhování a vývoji jedné z počátečních variant selenu zvané Selen RC. Během podobného časového období vyvinula další osoba jménem Simon Stewart z ThoughtWorks pokročilé nástroje pro automatizaci webového prohlížeče jako WebDriver. 

V roce 2008 přišel člověk jménem Philippe Hanrigou ze společnosti ThoughtWorks s koncepty vzdálené automatizace známé jako „Selenium Grid“.

V roce 2009 bylo na konferenci Google Test Automation Conference rozhodnuto o sloučení obou projektů, které dostaly název Selenium WebDriver nebo Selenium 2.0.

Výhody selenového webdriveru:

A. Open Source:

Selenium je technologie / rámec s otevřeným zdrojovým kódem, a proto je k dispozici obrovská podpora komunity, kde je rozsah vývoje a vylepšení rychlý a obrovský, a také jako jeho otevřený zdroj můžete implementovat jakoukoli konkrétní funkci, kterou požadujete jako součást své práce, a přispět k Open zdrojová komunita. 

B. Podpora více programovacích jazyků:

Selen je podporován široce používanými jazyky; přichází s různými vazbami programovacího jazyka, takže si můžete vybrat svůj vhodný jazyk pro práci se selenem podle vašich potřeb a znalostí.

Selenium poskytuje podporu pro níže uvedené programovací jazyky: 

  • Jáva 
  • C#
  • Perl
  • krajta
  • Rubín  
  • Javascript

C. Nezávislé na platformě:

Selen je nezávislý na platformě, takže můžete své webové aplikace automatizovat na jakékoli platformě a libovolném operačním systému, tj. Windows, Linux, macOS atd.

D. Možnost testování mezi prohlížeči

Selenium podporuje možnosti testování mezi prohlížeči pro vaše webové aplikace; testovací sadu napsanou se selenem můžete spustit ve více prohlížečích, jako je Firefox, Chrome, IE, Safari atd.

E. Funkce testování mezi zařízeními

Selenium Test Automation se používá pro automatizaci testování mobilních webových aplikací na různých zařízeních, jako je Android, IOS. 

F. Vzdálené nebo cloudové provedení:

Selenium GRID vám poskytuje funkci pro spuštění a ovládání skriptu pro automatizaci vaší webové aplikace v cloudu tím, že vytvoří jeden systém jako hlavní uzel a druhý systém jako podřízený uzel, podřízené uzly se připojí k jednomu hlavnímu uzlu a hlavní uzel bude monitorovat slave uzly, takže vaše testy jsou v různých podřízených uzlech s různým operačním systémem a různými prohlížeči, jako jsou Chrome, Firefox, Internet Explorer atd.

G. Schopnost paralelního testování:

Se selenem můžete dosáhnout schopností automatického paralelního testování, tj. Můžete spustit testovací skript nebo automatizovat testovací případy do jiného nebo stejného prohlížeče a do jiného nebo stejného operačního systému paralelně. Tato funkce vám pomůže dosáhnout kratší doby spuštění celé sady Automation Test, kterou máte, a také můžete otestovat proveditelnost a kompatibilitu vaší webové aplikace s více operačními systémy a více prohlížeči současně.   

H. Kompatibilita s více nástroji a technologiemi Framework a třetích stran

Rámec Selenium lze snadno integrovat s mnoha různými technologiemi a rámcemi třetích stran, jako jsou různé rámce Unit Test, tzn TestNg, JUnit, MbUnit, Nunit atd. atd., různé nástroje pro vytváření, jako je Ant, Maven, Gradle atd., nástroje pro kontinuální integraci, např. Jenkins, různé nástroje pro správu testů, jako je Jira, testlink atd., různé nástroje pro vytváření zpráv, jako je Allure, Extent Zpráva atd.

I. Spuštění bezhlavého prohlížeče: 

Selenium Webdriver podporuje bezhlavý ovladač prohlížeče pro automatizaci provádění testovacích případů, kdy všechny vaše testovací případy automatizace běží v režimu bezhlavého prohlížeče, tj. žádný prohlížeč se neotevře a provádění je bleskové, takže můžete rychle dokončit testovací skripty a funkčnost v případě naléhavého vydání a ověření.

V zásadě můžete použít htmlOvladač jednotky or řidič duchů za bezhlavou popravu se selenem.  

Nevýhody selenu:

  • Nativní/okenní podpora aplikací, není k dispozici: 
    • Selen se používá pro automatizaci aplikace Web Bade, ale neposkytuje podporu pro nativní aplikace ani aplikace založené na systému Windows.
  • Vyčerpávající automatizace založená na obrázcích: 
    • Selen neposkytuje vyčerpávající podporu pro automatizaci problémů nebo aplikací založených na bitových kopiích, i když můžeme použít některé nástroje třetích stran, jako je Sikuli, řešení založená na tesseract ocr, která lze integrovat se selenem a dělat práci související s validací / provozem obrazu nebo extrakce a validace obrazových dat, mají také některá omezení, jako byste mohli čelit problémům s paralelním testováním, identifikací ručně psaného dokumentu a ověřováním těch v procesu automatizace vaší aplikace, pokud existují takové případy použití.
  • Integrace s nástroji třetích stran: 
    • Nevýhodou integrace s více nástroji třetích stran se selenem je, že váš automatizační skript může být občas pomalejší.
  • Selenový rámec Vývoj:
    • Navrhování a vývoj pokročilého testovacího automatizačního rámce se selenem vyžaduje spoustu znalostí selenu a není příliš přímočaré k vybudování automatizačního rámce s více nástroji spolu se selenem.
  • Problémy specifické pro prohlížeč: 
    • Při práci se selenem se můžete setkat s některými problémy týkajícími se konkrétního prohlížeče, zejména s IE, někdy nebudete moci zvládnout akce na webu, jako je kliknutí, odeslání kláves atd., A prohlížeč může být mrtvý. Proto musíte mít pokročilé znalosti pro zvládnutí těchto oblastí při automatizaci aplikace postavené na Bootstrap JS a její spouštění v prohlížeči IE.
    • S verzemi Selenium Webdriver můžete také čelit problémům s kompatibilitou prohlížeče; musíte se ujistit, že používáte kompatibilní Firefox, Chrome nebo jakýkoli jiný prohlížeč, který pracujete s verzí Selenium Webdriver.
  • Žádná oficiální podpora: 
    • Stejně jako jakékoli jiné nástroje Open Source je selen také nástrojem open-source, což znamená, že nebudete mít oficiální podporu pro vaše problémy jako jakékoli placené nástroje, i když je k dispozici velmi velká podpora komunity, můžete s nimi pracovat společně , ale to může být časově náročné.

Selenové komponenty: 

Selen jako nástroj má níže uvedené komponenty, kterými jsou: 

Selenium IDE:

  • Selenium IDE nebo selenové integrované vývojové prostředí je nejiniciálnější verzí selenu pro automatizaci webových aplikací.
  • Selenium IDE je druh nástroje pro záznam a přehrávání, který můžete použít jako plugin prohlížeče a zaznamenat webovou akci ve vašich aplikacích a který lze uložit jako skript a později můžete spustit stejný nahraný skript k provedení a provedení validace.
  • Má ale několik omezení, například:
    • Musíte spustit nahraný skript, úprava skriptu není tak flexibilní nebo si ani nemůžete navrhnout případ použití a skripty ve svém vlastním nezávislém přístupu.
    • Provádění je ve své podstatě velmi pomalé.
    • Převážně podporuje Firefox, i když existují některá vylepšení, která můžete udělat pro spuštění zaznamenaného skriptu v jiných prohlížečích, jako je Google Chrome.
    • paralelní provádění není podporováno.
    • Mobilní testování není podporováno.
    • Generování zpráv není docela dobré.
  • Je to vlastně velmi předběžná verze selenu, pomocí které můžete provádět velmi omezenou automatizaci testů pro vaše webové aplikace.

Selen RC

  • Dálkové ovládání selenem je další verzí selenu a velmi často se označuje jako selen 1.0.

Jak interně funguje Selenium RC:

Selenium RC se skládá ze dvou hlavních komponent, jako je Selenium Server, Selenium Client.

Selenový server spouští prohlížeče a spouští selenové příkazy, které jste napsali jako testovací automatizační skript pomocí klientských knihoven selenu dostupných v různých jazycích.

Selenium Server převádí příkazy / testovací skripty na něco, čemu se říká selenské příkazy, a funguje jako HTTP proxy.

Selenium Server interaguje s modulem webového prohlížeče a provádí webovou operaci, kterou se pokoušíte automatizovat jako součást testovacích případů pro aplikaci v rámci testu.

Kroky k použití selenu RC: 

  • Nainstalujte Selenium-RC Server.
    • Vytvořte projekt pomocí svého výběru programovacího jazyka a jazyka specifického pro ovladač prohlížeče.
  • Nainstalujte selenový server
    • Selenium Server můžete nastavit jednoduše stažením souboru selenium-server.jar a jeho spuštěním v systému pomocí následujícího příkazu: 
    • java -jar selenium -server.jar
  • Napište skript pomocí klientských knihoven Selenium a totéž pomocí serveru Selenium Server.

Omezení selenového RC:

  • V dálkovém ovládání selenu se automatizační ovladač a prohlížeč stávají trochu pomalejším důvodem, protože motor prohlížeče není přímo ovlivňován, spíše Selenium RC vstřikuje javascript do motoru prohlížeče, což se také označuje jako Selenium Core.
  • Server, který musí být funkční před a během provádění testovacího skriptu.
  • Pokročilé webové akce nelze automatizovat a zpracovávat pomocí Selenium RC, jako je pohyb myší, dvojité kliknutí, převzetí vstupů z klávesnice atd., Na rozdíl od Selenium Webdriver.
  • Selenium RC nepodporuje testování mobilních aplikací.
  • Selenium RC závisí na skutečném prohlížeči, aby spustil testovací skript automatizace, a na rozdíl od selenového webového ovladače nepodporuje bezhlavý prohlížeč, jako je HTMLUnitDriver nebo GHostDriver atd.

Webový ovladač Selenium:

Selenium Webdriver je pokročilá verze mezi selenovými komponentami, která je velmi robustní a podporuje také pokročilou verzi webových interakcí a také neinteraguje s prohlížečem přes Javascript na rozdíl od Selenium RC a má také podporu testování mobilních aplikací. Je velmi často označován jako součást selenu 2.0.

WebDriver dokáže zpracovat dynamické prvky a také podporuje paralelní provádění s několika různými prohlížeči.

V nadcházejících segmentech budeme mít podrobnou diskusi.

Selenová mřížka: 

Selenium GRID je další složkou selenu, jehož prostřednictvím můžete provádět vzdálené spuštění svého skriptu pro testování automatizace vytvořením uzlů typu master-slave. Selenium GRID podporuje paralelní testování ve stejném prohlížeči i více prohlížečích. 

V následujících částech budeme o Selenium GRID diskutovat.

WebDriver 3.0

Selenium 3.0 je nejnovější verze komponent Selenium, která je v podstatě kombinací WebDriver 2.0 a evoluce GRID 3.

V tomto dalším segmentu se chystáme diskutovat o Architektura selenu WebDriver podrobněa nakonec to zobrazuje jak selen funguje interně,.

Architektura selenového webdriveru  :

Součástí architektury Selenium Webdriver je pět hlavních atributů nebo komponent: 

    

  • Selenium Client Library nebo Selenium-Programming language bindings
  • Protokol WebDriver nebo JSON Wire Protocol přes HTTP
  • Ovladače prohlížeče
  • Prohlížeč Engine
  • Vykreslovací modul prohlížeče
Architektura selenového webdriveru
Výukový program pro selen - architektura selenového webdriveru

Klientské knihovny selenu nebo vazby programovacích jazyků: 

Selen poskytuje různé jazykové vazby, tj. Klientské knihovny pro podporu více různých jazyků jako součást vašeho testovacího skriptu Automation Development a Automation. Například Selen s C #, Selen s Javou, Selen s Pythonem atd.

WebDriver Protocol nebo JSON WIRE PROTOCOL:

JSON, který v zásadě znamená JavaScript Object Notation. Tento protokol se také označuje jako protokol WebDriver, který se používá k přenosu dat server-klient přes web. Každý ovladač prohlížeče (např. FirefoxDriver, ChromeDriver atd.) Má svůj vlastní server HTTP a používá tento protokol k přenosu dat prostřednictvím služeb Rest Webservices ve formě požadavku HTTP a odpovědi HTTP.

 Ovladače prohlížeče:

Každý prohlížeč má svůj vlastní ovladač prohlížeče. Ovladače prohlížeče navazují komunikaci s příslušným prohlížečem prostřednictvím modulu prohlížeče. 

Po spuštění skriptu Automation komunikuje přímo s ovladači prohlížeče a případně s příslušným prohlížečem. Požadavek a odpověď jsou přenášeny prostřednictvím požadavku HTTP a odpovědi HTTP.

Prohlížeč Engine:

Každý prohlížeč má svůj vlastní modul prohlížeče; Engine prohlížeče v zásadě funguje jako prostřední vrstva mezi uživatelským rozhraním a vykreslovacím modulem.

Nástroj pro vykreslování prohlížeče: 

Vykreslovací modul prohlížeče je zodpovědný za zobrazení požadovaného dokumentu vykreslením konkrétních prvků požadovaných pro požadavek na odpověď a data.

Stručně řečeno, architektura selenového webdriveru a pracovní funkce :

Selenium-WebDriver vyvolá prohlížeč přímo pomocí nativní podpory pro každý prohlížeč pro automatizaci a jeho JavaScriptu. Způsob uskutečňování těchto hovorů a funkce, které podporují, závisí na prohlížeči, který používáte.

Při načítání prohlížeče nevstřikuje JavaScript jako Selenium-RC.

Při spouštění skriptu Webdriver dochází k následujícímu výskytu:

  •  Automatizační skriptování provádíme pomocí jakékoli jazykové vazby (Java / C # atd.), a spouští rozhraní WebDriver API zatímco je skript v provádění.
  •   Skript a případně příkazy (např. driver.findElement (By.id (“idName”))) jsou se interně převádí na JavaScript.
  •   Pomocí Browser Engine je to znovu převeden zpět na JSON, což je druh páru klíč – hodnota.
  •   Po získání příslušné hodnoty příslušného klíče identifikuje příslušné WebElements a provádí příslušné akce uživatele (jako kliknutí, odeslání klíčů atd.).
  •   Veškerá komunikace probíhá pomocí a Volání JSON-Wire nebo Webdriver Protocola komunikace probíhá přes HTTP ve formě Rest API jako požadavek HTTP a odpověď HTTP.

Selenium často kladené otázky: 

Jaké typy rozhraní WebDriver API jsou v Selenium k dispozici?

Selenium Webdriver je rozhraní a má různé jazykové vazby pro různé programovací jazyky, jako je Java, C #, python atd., 

Selenium Webdriver má hlavně dvě různé varianty, jako například: 

  • Místní ovladač Selenium Web.
  • Selenium Web driver Remote. 

Selenium Web Driver Local používá API pro práci s vazbou konkrétního jazyka a můžete s nimi pracovat s místním spuštěním, zatímco na druhé straně, pokud chcete spustit automatizační testovací skripty v Remote, pak musíte použít vzdálená rozhraní API selenového webového ovladače.

Vysvětlete Jaké jsou scénáře, které nemůžeme automatizovat pomocí selenu?

Selen neposkytuje způsob automatizace níže uvedených oblastí aspektů aplikace, kterými jsou: 

  • Testování výkonu aplikace
  • Bezpečnostní testování aplikací.
  • Zpracování a automatizace na základě obrazu
  • Automatizace založená na captcha.
  • Scénáře streamování videa.
  • Nativní aplikace nebo aplikace založené na okně.
  • Streamovací aplikace

Rozdíl mezi Selenium 2.0 a Selenium 3.0?

  • Pro Selenium 2.0 je minimální požadavek Java 1.7, na druhou stranu pro Selenium 3.0 je minimální požadovaná verze Java 1.8
  • Selenium 3.0 vyžaduje GeckOdriver pro Firefox verze vyšší než 47, ale to neplatí pro Selenium 2.0 
  • Selenium 3.0 podporuje moderní prohlížeč jako Edge, Safari atd., ale na druhou stranu pro Selenium 2.0, ovladač prohlížeče pro Mozillu, Chromedriver, IE, který je vyvinutý vývojáři Selenium.
  • V Selenium 3 byla odstraněna podpora pro testování mobilní automatizace, tj. AndroidDriver a iPhoneDriver, a musíte používat nástroje jako Aplikace pro testování mobilní automatizace, což neplatí pro Selenium 2.0.
  • Selenium 3.0 nepodporuje ovladač Headless, tedy HTMLUnitWebDriver, ale Selenium 2.0 má podporu pro spouštění Headless, tedy s HTMLUnitDriver nebo ghostdriver.
  • V rámci Selenium 3 se Selenium WebDriver stal standardem W3C; na druhou stranu Selenium Webdriver v Selenium 2.0 nepatří do standardu W3C.

Proč investovat do čističky vzduchu? : Tímto dokončujeme první segment Výcviková kniha selenu krytina Co je Selenium , Selenium Webdriver Architektura, Přehled selenu, Klady a zápory Selenu, V nadcházejícím segmentu Výukový program selenu modul 2 budeme diskutovat o instalaci selenu, tj. nastavení, příkazech selenu a dalších základních, středně pokročilých a pokročilých tématech selenu

Zanechat komentář