Cos'è Selenium WebDriver? Differenza con RC

Sommario:

Anonim

Cos'è Selenium Webdriver?

Selenium Webdriver è una raccolta open source di API utilizzata per testare le applicazioni web. Lo strumento Selenium Webdriver viene utilizzato per automatizzare i test delle applicazioni Web per verificare che funzioni come previsto o meno. Supporta principalmente browser come Firefox, Chrome, Safari e Internet Explorer. Consente inoltre di eseguire test cross-browser.

WebDriver ti consente anche di utilizzare un linguaggio di programmazione per creare i tuoi script di test (non possibile in Selenium IDE).

È ora possibile utilizzare operazioni condizionali come if-then-else o switch-case. Puoi anche eseguire il looping come fai-mentre.

I seguenti linguaggi di programmazione sono supportati da WebDriver

  • Giava
  • .Netto
  • PHP
  • Pitone
  • Perl
  • Rubino

Non devi conoscerli tutti. Hai solo bisogno di essere informato in uno. Tuttavia, in questo tutorial, utilizzeremo Java con Eclipse come IDE.

Differenza tra Selenium RC e Webdriver

Prima dell'avvento di WebDriver nel 2006, esisteva un altro strumento di automazione chiamato Selenium Remote Control. Sia WebDriver che Selenium RC hanno le seguenti caratteristiche:

  • Entrambi consentono di utilizzare un linguaggio di programmazione nella progettazione degli script di test.
  • Entrambi ti consentono di eseguire i test su browser diversi.

Allora come si differenziano? Parliamo delle risposte.

1. Architettura

L'architettura di WebDriver è più semplice di quella di Selenium RC .

  • Controlla il browser dal livello del sistema operativo
  • Tutto ciò di cui hai bisogno sono l'IDE del tuo linguaggio di programmazione (che contiene i tuoi comandi Selenium) e un browser.
L'architettura di Selenium RC è molto più complicata.
  • È necessario prima avviare un'applicazione separata chiamata Selenium Remote Control (RC) Server prima di poter iniziare il test
  • Il Selenium RC Server funge da "intermediario" tra i comandi Selenium e il browser
  • Quando inizi il test, Selenium RC Server "inietta" un programma Javascript chiamato Selenium Core nel browser.
  • Una volta iniettato, Selenium Core inizierà a ricevere le istruzioni trasmesse da RC Server dal tuo programma di test.
  • Quando le istruzioni vengono ricevute, Selenium Core le eseguirà come comandi Javascript.
  • Il browser obbedirà alle istruzioni di Selenium Core e trasmetterà la sua risposta al server RC.
  • Il server RC riceverà la risposta del browser e quindi visualizzerà i risultati.
  • RC Server recupererà l'istruzione successiva dallo script di test per ripetere l'intero ciclo.

2. Velocità

WebDriver è più veloce di Selenium RC poiché parla direttamente al browser che utilizza il motore del browser per controllarlo.

Selenium RC è più lento poiché utilizza un programma Javascript chiamato Selenium Core. Questo Selenium Core è quello che controlla direttamente il browser, non tu.

3. Interazione nella vita reale

WebDriver interagisce con gli elementi della pagina in modo più realistico. Ad esempio, se hai una casella di testo disabilitata su una pagina che stavi testando, WebDriver non può davvero inserire alcun valore in essa proprio come non può fare una persona reale.

Selenium Core, proprio come altri codici JavaScript, può accedere a elementi disabilitati. In passato, i tester del selenio si lamentavano del fatto che Selenium Core fosse in grado di inserire valori in una casella di testo disabilitata nei loro test. Differenze nell'API

4. API

L'API di Selenium RC è più matura ma contiene ridondanze e comandi spesso confusi . Ad esempio, la maggior parte delle volte, i tester sono confusi se utilizzare type o typeKeys; o se utilizzare click, mouseDown o mouseDownAt. Peggio ancora, browser diversi interpretano ciascuno di questi comandi in modi diversi!

L'API di WebDriver è più semplice di quella di Selenium RC . Non contiene comandi ridondanti e confusi.

5. Supporto browser

WebDriver può supportare il browser headless HtmlUnit

HtmlUnit è definito "senza testa" perché è un browser invisibile - è senza GUI.

È un browser molto veloce perché non si perde tempo in attesa del caricamento degli elementi della pagina. Ciò accelera i cicli di esecuzione dei test.

Poiché è invisibile all'utente, può essere controllato solo tramite mezzi automatizzati.

Selenium RC non può supportare il browser headless HtmlUnit. Ha bisogno di un browser reale e visibile su cui operare.

Limitazioni di WebDriver

WebDriver non può supportare prontamente i nuovi browser

Ricorda che WebDriver funziona a livello di sistema operativo. Inoltre, ricorda che browser diversi comunicano con il sistema operativo in modi diversi. Se esce un nuovo browser, potrebbe avere un diverso processo di comunicazione con il sistema operativo rispetto ad altri browser. Quindi, devi dare al team WebDriver un po 'di tempo per capire quel nuovo processo prima che possano implementarlo nella prossima versione di WebDriver.

Tuttavia, spetta al team di sviluppatori di WebDriver decidere se supportare o meno il nuovo browser.

Selenium RC ha un generatore di risultati del test integrato

Selenium RC genera automaticamente un file HTML dei risultati del test . Il formato del rapporto è stato preimpostato dalla stessa RC. Dai un'occhiata a un esempio di questo rapporto di seguito.

WebDriver non dispone di un comando integrato che genera automaticamente un file dei risultati del test . Dovresti fare affidamento sulla finestra di output del tuo IDE o progettare il report tu stesso utilizzando le capacità del tuo linguaggio di programmazione e memorizzarlo come testo, HTML, ecc.

Sommario

  • WebDriver è uno strumento per testare le applicazioni web su diversi browser utilizzando diversi linguaggi di programmazione.
  • Ora sei in grado di eseguire test potenti perché WebDriver ti consente di utilizzare un linguaggio di programmazione a tua scelta nella progettazione dei tuoi test.
  • WebDriver è più veloce di Selenium RC grazie alla sua architettura più semplice.
  • WebDriver parla direttamente con il browser mentre Selenium RC ha bisogno dell'aiuto di RC Server per farlo.
  • L'API di WebDriver è più concisa di quella di Selenium RC.
  • WebDriver può supportare HtmlUnit mentre Selenium RC non può.
  • Gli unici inconvenienti di WebDriver sono:
    • Non può supportare prontamente i nuovi browser , ma Selenium RC sì.
    • Non dispone di un comando integrato per la generazione automatica dei risultati dei test.