Selenium Webdriver Architecture: la maggior parte dei principianti non lo sa

Inizieremo con Tutorial sul selenio Libro nero in un approccio esaustivo e diverso, in questo primo segmento del tutorial sul selenio, parleremo diArchitettura Webdriver al selenio, cos'è Selenium Webdriver, Panoramica sul selenio Webdriver, Breve storia del selenio, Vantaggi del selenio, limitazioni del selenio, Componenti del selenio e alcune domande frequenti.

Cos'è Selenium Webdriver

Il selenio è una tecnologia o un framework open source attraverso il quale possiamo automatizzare le applicazioni basate sul Web. Selenium supporta test multi browser, sono supportati anche più linguaggi come Java, Ruby, Perl, Python. Supporta diverse piattaforme multiple come Windows, Linux, macOS ecc. Come parte della piattaforma.

Breve storia sul selenio:

Il selenio è stato inizialmente sviluppato da uno strumento interno di Jason Huggins nel 2004 presso ThoughtWorks.

Più tardi, nell'anno 2007, Huggins è entrato a far parte dell'organizzazione Google e, con altri come Jennifer Bevan, ha continuato con la progettazione e lo sviluppo di una delle varianti iniziali del selenio chiamata Selenio RC. Durante un periodo di tempo simile, un'altra persona di nome Simon Stewart di ThoughtWorks ha sviluppato uno strumento avanzato di automazione del browser Web come WebDriver. 

Nel 2008, una persona di nome Philippe Hanrigou di ThoughtWorks ha inventato concetti di automazione remota noti come "Selenium Grid".

Nel 2009, alla Google Test Automation Conference, si decise di unire i due progetti e di chiamarli Selenium WebDriver, o Selenium 2.0.

Vantaggi di Selenium Webdriver:

A. Open Source:

Il selenio è una tecnologia / framework open source, quindi è disponibile un enorme supporto da parte della comunità laddove l'ambito di sviluppo e miglioramento è rapido e vasto, inoltre poiché è open source puoi implementare qualsiasi funzionalità specifica di cui hai bisogno come parte del tuo lavoro e contribuire all'Open comunità di origine. 

B. Linguaggio di programmazione multiplo supportato:

Il selenio è supportato da lingue ampiamente utilizzate; viene fornito con diversi collegamenti del linguaggio di programmazione, quindi puoi scegliere il tuo linguaggio favorevole per lavorare con il selenio secondo le tue necessità e competenze.

Selenium fornisce supporto per i seguenti linguaggi di programmazione: 

  • Java 
  • C#
  • Perl
  • python
  • Rubino  
  • Javascript

C. Indipendente dalla piattaforma:

Selenium è indipendente dalla piattaforma, quindi puoi automatizzare le tue applicazioni web su qualsiasi piattaforma e qualsiasi sistema operativo, ad esempio Windows, Linux, macOS ecc.

D. Funzionalità Cross Browser Testing

Selenium supporta capacità di test cross browser per le tue applicazioni web; puoi eseguire la tua suite di test scritta con Selenium in più browser come Firefox, Chrome, IE, Safari ecc.

E. Capacità di test cross-device

Selenium Test Automation viene utilizzato per l'automazione del test di applicazioni web mobili su vari dispositivi come Android, IOS. 

F. Esecuzione remota o cloud:

Selenium GRID ti fornisce la funzionalità per eseguire e controllare lo script di test di automazione della tua applicazione web nel cloud facendo in modo che un sistema sia il nodo master e un altro sistema il nodo slave, i nodi slave si connettono a un nodo master e il nodo master monitora lo slave nodi, quindi i tuoi test sono in diversi nodi slave con il diverso sistema operativo e diversi browser come Chrome, Firefox, Internet Explorer ecc.

G. Capacità di test in parallelo:

Con Selenium, puoi ottenere capacità di test in parallelo automatizzato, cioè puoi eseguire il tuo script di test o casi di test di automazione nello stesso browser diverso e nello stesso sistema operativo diverso in parallelo. Questa funzione ti aiuta a ottenere tempi di esecuzione inferiori per l'intera suite di test di automazione di cui disponi e puoi anche testare la fattibilità e la compatibilità della tua applicazione web con più sistemi operativi e più browser in parallelo.   

H. Compatibilità con più Framework e strumenti e tecnologie di terze parti

Il framework Selenium può essere facilmente integrato con più tecnologie e framework di terze parti come diversi framework Unit Test, ad es Test Ng, JUnit, MbUnit, Nunit ecc. ecc., diversi strumenti di build come Ant, Maven, Gradle ecc., strumenti di integrazione continua, ad esempio Jenkins, diversi strumenti di gestione dei test come Jira, testlink ecc., vari strumenti di reporting come Allure, Extent Rapporto ecc.

I. Esecuzione del browser headless: 

Selenium Webdriver supporta il driver del browser senza testa per l'automazione esecuzione di test case, in cui tutti i test case di automazione vengono eseguiti in modalità browser headless, ovvero nessun browser viene aperto e l'esecuzione diventa fulminea in modo da poter completare rapidamente gli script di test e la funzionalità in caso di rilascio e convalide urgenti.

Puoi fondamentalmente usare htmlDriver unità or pilota fantasma per l'esecuzione senza testa con Selenio.  

Svantaggi del selenio:

  • Supporto per app nativa/basata su Windows, non presente: 
    • Il selenio viene utilizzato per l'automazione dell'applicazione Web Bade, ma non fornisce supporto per applicazioni native o applicazioni basate su Windows.
  • Automazione esauriente basata su immagini: 
    • Selenium non fornisce un supporto esaustivo per automatizzare problemi o applicazioni basati su immagini, sebbene possiamo utilizzare alcuni strumenti di terze parti come Sikuli, soluzioni basate su tesseract ocr che possono essere integrate con Selenium per svolgere il lavoro relativo alle convalide / operazioni di immagine o le estrazioni e le convalide dei dati di immagine, presentano anche alcune limitazioni come potresti dover affrontare problemi con i test paralleli, identificare i documenti scritti a mano e convalidare quelli nel processo di automazione dell'applicazione se ci sono tali casi d'uso.
  • Integrazione con strumenti di terze parti: 
    • Uno svantaggio dell'integrazione con più strumenti di terze parti con selenio è che il tuo script di automazione potrebbe diventare più lento a volte.
  • Quadro di selenio Sviluppo :
    • Progettare e sviluppare un framework avanzato di automazione del test con Selenium richiede molta esperienza sul selenio e non è troppo semplice costruire un framework di automazione con più strumenti insieme a Selenium.
  • Problemi specifici del browser: 
    • Potresti dover affrontare alcuni problemi specifici del browser mentre lavori con Selenium, specialmente con IE, a volte potresti non essere in grado di gestire azioni Web come clic, sendkeys ecc. E il browser potrebbe spegnersi. Quindi è necessario disporre di conoscenze avanzate per gestire quelle aree mentre si automatizza l'applicazione basata su Bootstrap JS e la si esegue sul browser IE.
    • Inoltre, potresti riscontrare problemi di compatibilità del browser con le versioni Selenium Webdriver; devi assicurarti di utilizzare Firefox, Chrome o qualsiasi altro browser compatibile con cui stai lavorando con la versione di Selenium Webdriver.
  • Nessun supporto ufficiale: 
    • Come qualsiasi altro strumento Open Source, anche il selenio è uno strumento open source, il che significa che non avrai supporto ufficiale per i tuoi problemi come qualsiasi strumento a pagamento, anche se è disponibile un supporto di comunità molto ampio, puoi lavorare con loro con la tua dichiarazione del problema , ma ciò può richiedere molto tempo.

Componenti del selenio: 

Il selenio come strumento ha i componenti sotto indicati, che sono: 

IDE di selenio:

  • L'ambiente Selenium IDE o Selenium Integrated Development è la versione più iniziale di Selenium per l'automazione delle applicazioni Web.
  • Selenium IDE è una sorta di strumento di registrazione e riproduzione, che puoi utilizzare come plug-in del browser e registrare la tua azione web nelle tue applicazioni e che può essere salvato come script e successivamente puoi eseguire lo stesso script registrato per eseguire e fare convalide.
  • Ma ha poche limitazioni come:
    • Devi eseguire lo script registrato, la modifica dello script non è così flessibile o non puoi nemmeno degnarti di utilizzare case e script nel tuo approccio indipendente.
    • L'esecuzione è di natura molto lenta.
    • Supporta principalmente Firefox, anche se ci sono alcune modifiche che puoi fare per eseguire lo script registrato in altri browser come Google Chrome.
    • l'esecuzione parallela non è supportata.
    • Il test mobile non è supportato.
    • La generazione di rapporti non è abbastanza buona.
  • In realtà è una versione molto preliminare di Selenium, usando questo puoi fare un'automazione di test molto limitata per le tue applicazioni web.

Selenio RC

  • Selenium Remote Control è la prossima versione di Selenium e molto spesso viene chiamato Selenium 1.0.

Come funziona il selenio RC internamente:

Selenium RC è costituito da due componenti principali, come Selenium Server, Selenium Client.

Il server Selenium avvia i browser ed esegue i comandi selenium che hai scritto come script di automazione del test utilizzando le librerie client Selenium disponibili in diverse lingue.

Selenium Server converte i comandi / script di test in qualcosa chiamato comandi Selenese e funge da proxy HTTP.

Selenium Server interagisce con il motore del browser Web ed esegue l'operazione Web che si sta tentando di automatizzare come parte dei casi di test per l'applicazione sottoposta a test.

Passaggi per utilizzare Selenium RC: 

  • Installa il server Selenium-RC.
    • Crea un progetto utilizzando il linguaggio di programmazione scelto e il linguaggio specifico per il driver del browser.
  • Installa il server di selenio
    • Puoi configurare Selenium Server semplicemente scaricando il file selenium-server.jar ed eseguendolo nel tuo sistema usando il comando seguente: 
    • java -jar server-selenio.jar
  • Scrivi lo script utilizzando le librerie client Selenium e lo stesso utilizzando il server Selenium.

Limitazioni del selenio RC:

  • In Selenium Remote control, il driver di automazione e il browser diventano un po 'più lenti perché il motore del browser non interagisce direttamente, piuttosto Selenium RC inietta javascript nel motore del browser, indicato anche come Selenium Core.
  • Il server che deve essere attivo e funzionante prima e durante l'esecuzione dello script di test.
  • Le azioni Advance Web non possono essere automatizzate e gestite utilizzando Selenium RC come il movimento del mouse, il doppio clic, l'input dalla tastiera, ecc. Ecc. A differenza di Selenium Webdriver.
  • Selenium RC non supporta il test delle app mobili.
  • Selenium RC dipende dal browser reale per eseguire lo script di test di automazione e non supporta il browser headless come HTMLUnitDriver o GHostDriver ecc. A differenza di Selenium Webdriver.

Selenio WebDriver:

Selenium Webdriver è la versione avanzata tra i componenti Selenium che è molto robusta e supporta anche la versione avanzata delle interazioni Web e inoltre non interagisce con il browser tramite Javascript a differenza di Selenium RC e ha anche il supporto per il test dell'applicazione mobile. È molto spesso indicato come parte di Selenium 2.0.

WebDriver può gestire elementi dinamici e supporta anche l'esecuzione parallela con più browser diversi.

Avremo una discussione dettagliata nei prossimi segmenti.

GRIGLIA del selenio: 

Selenium GRID è un altro componente di Selenium attraverso il quale è possibile avere l'esecuzione remota del proprio script di test di automazione creando nodi master-slave. Selenium GRID supporta test paralleli sullo stesso browser e su più browser. 

Avremo ulteriori discussioni su Selenium GRID nelle prossime sezioni.

Driver Web 3.0

Selenium 3.0 è l'ultima versione dei componenti Selenium che è fondamentalmente la combinazione di WebDriver 2.0 ed evoluzione di GRID 3.

In questo prossimo segmento, stiamo per discutere di Selenium WebDriver Architecture in dettaglioe, infine, raffigura come funziona il selenio internamente,.

Architettura Webdriver al selenio  :

Esistono cinque attributi o componenti principali come parte dell'architettura Selenium Webdriver: 

    

  • Selenium Client Library o Selenium-Programming language bindings
  • Protocollo WebDriver o protocollo JSON Wire su HTTP
  • Driver del browser
  • Browser Engine
  • Motore di rendering del browser
Architettura Selenium Webdriver
Architettura Selenium Tutorial-Selenium Webdriver

Librerie client Selenium o associazioni del linguaggio di programmazione: 

Selenium fornisce diversi legami di associazione, cioè le librerie client per supportare più lingue diverse come parte del tuo script di test di automazione e sviluppo. Ad esempio, selenio con C #, selenio con Java, selenio con Python ecc.

Protocollo WebDriver o PROTOCOLLO FILARE JSON:

JSON, che fondamentalmente sta per JavaScript Object Notation. Questo protocollo è noto anche come protocollo WebDriver, utilizzato per il trasferimento dei dati server-client sul web. Ogni driver del browser (ad esempio FirefoxDriver, ChromeDriver ecc.) Ha il proprio server HTTP e utilizza questo protocollo per trasferire i dati tramite i servizi Web Rest sotto forma di richiesta HTTP e risposta HTTP.

 Driver del browser:

Ogni browser ha il proprio driver del browser. I driver del browser stabiliscono la comunicazione con il rispettivo browser tramite il motore del browser. 

Quando lo script di automazione viene eseguito, comunica direttamente ai driver del browser e alla fine con il rispettivo browser. La richiesta e la risposta vengono trasferite tramite richiesta HTTP e risposta HTTP.

Motore browser:

Ogni browser ha il proprio motore browser; Il motore del browser funziona fondamentalmente come un livello intermedio tra l'interfaccia utente e il motore di rendering.

Motore di rendering del browser: 

Il motore di rendering del browser è responsabile della visualizzazione del documento richiesto rendendo gli elementi specifici richiesti per la richiesta-risposta e i dati.

Selenium Webdriver Architettura e funzionalità di lavoro in poche parole :

Selenium-WebDriver richiama il browser direttamente utilizzando il supporto nativo di ciascun browser per l'automazione e il suo motore JavaScript. Il modo in cui vengono effettuate queste chiamate e le funzionalità che supportano dipendono dal browser in uso.

Non inietta JavaScript come Selenium-RC quando viene caricato il browser.

La seguente incidenza si verifica durante l'esecuzione dello script Webdriver:

  •  Eseguiamo lo scripting di automazione utilizzando qualsiasi associazione di lingua (Java / C # ecc.) e attiva l'API WebDriver mentre lo script è in esecuzione.
  •   Lo script e gli eventuali comandi (ad es. driver.findElement (By.id ("idName"))) sono convertito internamente in JavaScript.
  •   Usando Browser Engine, lo è di nuovo riconvertito in JSON, che è una specie di coppia chiave-valore.
  •   Dopo aver ottenuto il rispettivo valore della rispettiva chiave, identifica i rispettivi WebElement ed esegue le rispettive azioni utente (come clic, invio chiavi, ecc.).
  •   Tutte le comunicazioni vengono effettuate utilizzando a Chiamata al protocollo JSON-Wire o Webdrivere le comunicazioni avvengono su HTTP sotto forma di Rest API come richiesta HTTP e risposta HTTP.

Domande frequenti sul selenio: 

Quali sono i tipi di API WebDriver disponibili in Selenium?

Selenium Webdriver è un'interfaccia e ha diversi collegamenti di linguaggio per diversi linguaggi di programmazione come Java, C #, python ecc., 

Selenium Webdriver ha principalmente due diverse varianti come: 

  • Selenium Web driver locale.
  • Selenium Web driver remoto. 

Il driver Web Selenium Local utilizza l'API per lavorare con l'associazione del linguaggio specifico e puoi lavorare con questi con la tua esecuzione locale, mentre d'altra parte se vuoi eseguire gli script di test di automazione in Remote, devi usare il API del driver Web Selenium remoto.

Spiega quali sono gli scenari che non possiamo automatizzare usando il selenio?

Il selenio non fornisce un modo per automatizzare le seguenti aree di aspetti dell'applicazione, che sono: 

  • Test delle prestazioni dell'Applicazione
  • Test di sicurezza delle applicazioni.
  • Elaborazione e automazione basate su immagini
  • Automazione basata su Captcha.
  • Scenari di streaming video.
  • Applicazione nativa o applicazioni basate su finestre.
  • Applicazioni in streaming

Differenza tra selenio 2.0 e selenio 3.0?

  • Per Selenium 2.0 il requisito minimo è Java 1.7, mentre per Selenium 3.0 la versione Java minima richiesta è 1.8
  • Selenium 3.0 richiede GeckOdriver per Firefox versione superiore a 47, ma questo non è il caso per Selenium 2.0 
  • Selenium 3.0 supporta il browser moderno come Edge, Safari ecc. ma d'altra parte per Selenium 2.0, driver del browser per Mozilla, Chromedriver, IE che è sviluppato dagli sviluppatori di Selenium.
  • In Selenium 3, il supporto per i test di automazione mobile è stato rimosso, ovvero AndroidDriver e iPhoneDriver, e devi usare strumenti come Appium per i test di automazione mobile, che non è il caso di Selenium 2.0.
  • Selenium 3.0 non supporta il driver Headless, cioè HTMLUnitWebDriver, ma Selenium 2.0 ha il supporto per l'esecuzione Headless, cioè con HTMLUnitDriver o ghostdriver.
  • All'interno di Selenium 3, il Selenium WebDriver è diventato lo standard del W3C; d'altra parte, Selenium Webdriver in Selenium 2.0 non appartiene allo standard W3C.

Conclusione : Con questo completiamo il primo segmento di Blackbook tutorial selenio copertura Che cos'è Selenium , Selenium Webdriver Architettura, Panoramica del selenio, Pro e contro del selenio, Nel prossimo segmento di Tutorial sul selenio modulo 2 discuteremo dell'installazione del selenio, ovvero configurazione, comandi del selenio e altri argomenti di base, intermedi e avanzati di selenio

Lascia un tuo commento

L'indirizzo email non verrà pubblicato. I campi obbligatori sono contrassegnati con *

Scorrere fino a Top