Articles

Cos’è il selenio? Introduzione al test di automazione del selenio

Che cos’è il selenio?

Selenium è un framework di test automatico gratuito (open source) utilizzato per convalidare le applicazioni Web su diversi browser e piattaforme. È possibile utilizzare più linguaggi di programmazione come Java, C#, Python ecc. Il test eseguito utilizzando lo strumento di test del selenio viene solitamente indicato come Test del selenio.

Selenium Software non è solo un singolo strumento, ma una suite di software, ogni pezzo catering per diverse esigenze di test QA Selenium di un’organizzazione. Ecco l’elenco degli strumenti

  • Selenio Ambiente di Sviluppo Integrato (IDE)
  • Selenio Controllo Remoto (RC)
  • WebDriver
  • Selenio Griglia

Introduzione al Selenio
Introduzione al Selenio

Al momento, Selenium RC e WebDriver sono uniti in un unico quadro a forma di Selenio 2. Il selenio 1, a proposito, si riferisce al Selenio RC.

Clicca qui se il video non è accessibile

In questo tutorial, imparerai:

  • Cos’è il Selenio?
  • Chi ha sviluppato il selenio?
  • Lo stesso problema di politica di origine
  • Nascita di Selenio Telecomando (Selenio RC)
  • Nascita di selenio Griglia
  • Nascita di Selenio IDE
  • Nascita di WebDriver
  • Nascita di Selenio 2
  • Quindi, perché il nome Selenio?
  • Breve Introduzione Selenium IDE
  • Breve Introduzione Selenio Controllo Remoto (Selenium RC)
  • Breve Introduzione WebDriver
  • Selenio Griglia
  • Nota sul Browser e Ambiente di Supporto
  • Come Scegliere il Giusto Selenio Strumento per il Vostro Bisogno.
  • Un Confronto tra Selenio e QTP(ora UFT)
  • Vantaggi della QTP oltre Selenio

Che ha sviluppato il Selenio?

Poiché Selenium è una raccolta di strumenti diversi, ha avuto anche diversi sviluppatori. Qui di seguito sono le persone chiave che hanno fatto notevoli contributi al Selenio Progetto

Introduzione al Selenio

Soprattutto, il Selenio è stato creato da Jason Huggins nel 2004. Ingegnere presso ThoughtWorks, stava lavorando su un’applicazione web che richiedeva frequenti test. Avendo capito che il test manuale ripetitivo della loro applicazione stava diventando sempre più inefficiente, ha creato un programma JavaScript che avrebbe controllato automaticamente le azioni del browser. Ha chiamato questo programma come ” JavaScriptTestRunner.”

Vedendo il potenziale in questa idea per aiutare ad automatizzare altre applicazioni web, ha reso JavaScriptRunner open-source che è stato successivamente rinominato come Selenium Core.

Lo stesso problema della politica di origine

La stessa politica di origine proibisce al codice JavaScript di accedere a elementi da un dominio diverso da dove è stato lanciato. Esempio, il codice HTML in www.google.com utilizza un programma JavaScript ” randomScript.js”. La stessa politica di origine consentirà solo randomScript.js per accedere alle pagine all’interno google.com come ad esempio google.com/mail, google.com/login, o google.com/signup. Tuttavia, non può accedere a pagine da siti diversi come yahoo.com/search o guru99.com perché appartengono a domini diversi.

Introduzione al Selenio

Questo è il motivo per cui prima di Selenium RC, tester necessari per installare una copia di entrambi Selenio Core (un programma JavaScript) e il server web che contiene l’applicazione web in fase di test in modo che sarebbe appartengono allo stesso dominio

la Nascita di Selenio Controllo Remoto (Selenium RC)

Introduzione al Selenio

Purtroppo; i tester che utilizzavano Selenium Core dovevano installare l’intera applicazione in prova e il server Web sui propri computer locali a causa delle restrizioni imposte dalla stessa politica di origine. Così un altro ingegnere di ThoughtWork, Paul Hammant, ha deciso di creare un server che fungerà da proxy HTTP per “ingannare” il browser facendogli credere che Selenium Core e l’applicazione Web in fase di test provengano dallo stesso dominio. Questo sistema divenne noto come Selenium Remote Control o Selenium 1.

Nascita di Selenium Grid

Introduzione al Selenium

Selenium Grid è stato sviluppato da Patrick Lightbody per rispondere alla necessità di ridurre al minimo i tempi di esecuzione dei test il più possibile. Inizialmente ha chiamato il sistema ” Hosted QA.”Era in grado di catturare screenshot del browser durante fasi significative e anche di inviare comandi Selenium a diverse macchine contemporaneamente.

Nascita di Selenium IDE

Introduzione a Selenium

Shinya Kasatani del Giappone ha creato Selenium IDE, un’estensione per Firefox che può automatizzare il browser attraverso una funzione di registrazione e riproduzione. Ha avuto questa idea per aumentare ulteriormente la velocità nella creazione di casi di test. Ha donato Selenium IDE al progetto Selenium nel 2006.

Nascita di WebDriver

Introduzione a Selenium Simon Stewart ha creato WebDriver circa 2006 quando i browser e le applicazioni web stavano diventando più potenti e più restrittive con programmi JavaScript come Selenium Core. È stato il primo framework di test multipiattaforma in grado di controllare il browser dal livello del sistema operativo.

Nascita di Selenium 2

Nel 2008, l’intero team di Selenium ha deciso di unire WebDriver e Selenium RC per formare uno strumento più potente chiamato Selenium 2, con WebDriver come nucleo. Attualmente, Selenium RC è ancora in fase di sviluppo ma solo in modalità di manutenzione. La maggior parte degli sforzi del progetto Selenium sono ora focalizzati su Selenium 2.

Quindi, perché il nome Selenium?

Il nome Selenium deriva da uno scherzo che Jason ha rotto una volta alla sua squadra. Durante lo sviluppo di Selenium, un altro framework di test automatizzato è stato reso popolare dalla società chiamata Mercury Interactive (sì, la società che originariamente ha creato QTP prima che fosse acquisita da HP). Poiché il selenio è un antidoto ben noto per l’avvelenamento da mercurio, Jason ha suggerito che il nome ei suoi compagni di squadra lo hanno preso. Quindi è così che abbiamo avuto modo di chiamare questo quadro fino ad oggi.

Origine del nome di Selenium framework

Breve introduzione Selenium IDE

Selenium Integrated Development Environment (IDE) è il framework più semplice nella suite Selenium ed è il più facile da imparare. Si tratta di un plugin per Firefox che è possibile installare facilmente come si può con altri plugin. Tuttavia, a causa della sua semplicità, Selenium IDE dovrebbe essere utilizzato solo come strumento di prototipazione. Se si desidera creare casi di test più avanzati, è necessario utilizzare Selenium RC o WebDriver.

Pro e contro di Selenium IDE

Breve introduzione Selenium Remote Control (Selenium RC)

Selenium RC è stato per lungo tempo il framework di test di punta dell’intero progetto Selenium. Questo è il primo strumento di test web automatizzato che ha permesso agli utenti di utilizzare un linguaggio di programmazione che preferiscono. A partire dalla versione 2.25.0, RC può supportare i seguenti linguaggi di programmazione:

  • Java
  • C#
  • PHP
  • Python
  • Perl
  • Ruby

Pro e i Contro di Selenium RC

Breve Introduzione WebDriver

Il WebDriver si rivela essere migliore di entrambi Selenium IDE e Selenium RC in molti aspetti. Implementa un approccio più moderno e stabile nell’automatizzare le azioni del browser. WebDriver, a differenza di Selenium RC, non si basa su JavaScript per il test di automazione del Selenium. Controlla il browser comunicando direttamente con esso.

Le lingue supportate sono le stesse di quelle in Selenium RC.

  • Java
  • C#
  • PHP
  • Python
  • Perl
  • Ruby

Pro e i Contro di Selenio Webdriver

Selenio Griglia

Selenio Griglia è uno strumento utilizzato insieme con Selenium RC parallela test su diverse macchine e diversi browser, tutti allo stesso tempo. Esecuzione parallela significa eseguire più test contemporaneamente.

Caratteristiche:

  • Consente l’esecuzione simultanea di test in più browser e ambienti.
  • Consente di risparmiare tempo enormemente.
  • Utilizza il concetto di hub e nodi. L’hub funge da fonte centrale di comandi Selenium per ogni nodo ad esso collegato.

Nota sul supporto per browser e ambiente

A causa delle loro differenze architettoniche, Selenium IDE, Selenium RC e WebDriver supportano diversi set di browser e ambienti operativi.

Selenium IDE WebDriver
Browser Support Mozilla Firefox Internet Explorer versions 6 to 11, both 32 and 64-bit
Microsoft Edge version 12.10240 & above ( partial support some functionalities under development)
Firefox 3.0 and above
Google Chrome 12.0. and above
Opera 11.5 and above
Android – 2.3 e soprattutto per i telefoni e compresse
(dispositivi & emulatori)
iOS 3+ per i telefoni (dispositivi & emulatori) e 3.2+ per tablet (dispositivi & emulatori)
HtmlUnit 2.9 e sopra
Sistema Operativo Windows, Mac OS X, Linux Tutti i sistemi operativi con i browser di cui sopra può eseguire.

Nota: Selenium WebDriver è definito come il successore di Selenium RC che è stato deprecato& annunciato ufficialmente da SeleniumHQ.

Come Scegliere il Giusto Selenio Strumento per il Vostro Bisogno

Tool
Perché Scegliere?

Selenium IDE

  • To learn about concepts on automated testing and Selenium, including:
  • Selenese commands such as type, open, clickAndWait, assert, verify, etc.
  • Locators such as id, name, xpath, css selector, etc.
  • Executing customized JavaScript code using runScript
  • Exporting test cases in various formats.
  • Per creare test con poca o nessuna conoscenza preliminare in programmazione.
  • Per creare semplici casi di test e suite di test che è possibile esportare in seguito a RC o WebDriver.
  • Per testare un’applicazione web solo contro Firefox e Chrome.

Selenium RC

  • Per progettare un test utilizzando un linguaggio più espressivo di Selenese
  • Per eseguire il test contro diversi browser (ad eccezione di HtmlUnit) su diversi sistemi operativi.
  • Per distribuire i test su più ambienti utilizzando Selenium Grid.
  • Per testare l’applicazione contro un nuovo browser che supporta JavaScript.
  • Per testare applicazioni web con scenari complessi basati su AJAX.

WebDriver

  • Per utilizzare un certo linguaggio di programmazione nella progettazione del test case.
  • Per testare applicazioni ricche di funzionalità basate su AJAX.
  • Per eseguire test sul browser HtmlUnit.
  • Per creare risultati dei test personalizzati.

Selenium Grid

  • Per eseguire gli script Selenium RC in più browser e sistemi operativi contemporaneamente.
  • Per eseguire una suite di test enorme, che deve essere completata nel più breve tempo possibile.

Un Confronto tra Selenio e QTP(ora UFT)

Test Rapido Professionale(QTP) è un esclusivo strumento di test automatizzato in precedenza di proprietà della società Mercury Interactive prima è stata acquisita da Hewlett-Packard nel 2006. Il Selenio Strumento Suite ha molti vantaggi rispetto QTP, come di seguito dettagliato –

i Vantaggi e i Benefici del Selenio su QTP

Selenio
QTP
Open source, gratuito e a titolo gratuito. Commerciale.
Altamente estensibile Limitato add-ons
Possibile eseguire i test su diversi browser Può solo eseguire i test in Firefox Internet Explorer e Chrome
Supporta vari sistemi operativi Può essere usato solo in Windows
Supporta i dispositivi mobili QTP Supporta app Mobile di automazione di test (iOS & Android) utilizzo di HP soluzione – HP Mobile Center
Può eseguire test, mentre il browser è ridotto al minimo ha Bisogno di avere l’applicazione in test per essere visibile sul desktop
Può eseguire test in parallelo. Può essere eseguito solo in parallelo ma utilizzando Quality Center che è di nuovo un prodotto a pagamento.

Advantages of QTP over Selenium

Advantages of QTP over Selenium
QTP
Selenium
Can test both web and desktop applications Can only test web applications
Comes with a built-in object repository Has no built-in object repository
Automatizza più velocemente di Selenium perché è un IDE completamente descritto. Automatizza ad un ritmo più lento perché non ha un IDE nativo e solo IDE di terze parti può essere utilizzato per lo sviluppo
Test basati sui dati è più facile da eseguire perché ha built-in tabelle di dati globali e locali. Il test basato sui dati è più ingombrante poiché devi fare affidamento sulle capacità del linguaggio di programmazione per impostare i valori per i dati di test
Può accedere ai controlli all’interno del browser (come la barra dei preferiti, la barra degli indirizzi,i pulsanti Avanti e indietro, ecc.) Non può accedere agli elementi al di fuori dell’applicazione web in prova
Fornisce assistenza clienti professionale Non viene offerto alcun supporto utente ufficiale.
Ha la capacità nativa di esportare i dati di test in formati esterni Non ha la capacità nativa di esportare i dati di runtime in formati esterni
Supporto parametrizzazione è costruito Parametrizzazione può essere fatto tramite la programmazione, ma è difficile da implementare.
I rapporti di prova vengono generati automaticamente Nessun supporto nativo per generare rapporti di test / bug.

Anche se chiaramente, QTP ha capacità più avanzate, Selenio supera QTP in tre aree principali:

  • Costo(perché il Selenio è completamente gratuito)
  • Flessibilità(a causa di un certo numero di linguaggi di programmazione, browser e piattaforme in grado di supportare)
  • prova Parallela(qualcosa che QTP è in grado di, ma solo con l’uso di Quality Center)

Sommario

  • L’intero Selenio Software Suite di Test è composto di quattro parti:
  • Selenium IDE, un componente aggiuntivo di Firefox che è possibile utilizzare solo nella creazione di casi di test relativamente semplici e suite di test.
  • Selenium Remote Control, noto anche come Selenium 1, che è il primo strumento Selenium che ha permesso agli utenti di utilizzare linguaggi di programmazione nella creazione di test complessi.
  • WebDriver, la più recente innovazione che consente agli script di test di comunicare direttamente al browser, controllandolo quindi dal livello del sistema operativo.
  • Selenium Grid è anche uno strumento che viene utilizzato con Selenium RC per eseguire test paralleli tra diversi browser e sistemi operativi.
  • Selenium RC e WebDriver sono stati uniti per formare Selenium 2.
  • Il selenio è più vantaggioso del QTP in termini di costi e flessibilità. Consente inoltre di eseguire test in parallelo, a differenza di QTP in cui è consentito eseguire test solo in sequenza.