Cos'è il selenio?
Selenium è un framework di test automatizzato gratuito (open source) utilizzato per convalidare le applicazioni Web su diversi browser e piattaforme. Puoi utilizzare più linguaggi di programmazione come Java, C #, Python ecc. Per creare script di test selenio. 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 soddisfa le diverse esigenze di test QA Selenium di un'organizzazione. Ecco l'elenco degli strumenti
- Ambiente di sviluppo integrato al selenio (IDE)
- Telecomando al selenio (RC)
- WebDriver
- Griglia di selenio

Al momento, Selenium RC e WebDriver sono fusi in un unico framework per formare Selenium 2 . Il selenio 1, a proposito, si riferisce al selenio RC.
Fare clic qui se il video non è accessibile
In questo tutorial imparerai:
- Cos'è il selenio?
- Chi ha sviluppato il selenio?
- La stessa questione della politica di origine
- Nascita del Selenium Remote Control (Selenium RC)
- Nascita della griglia di selenio
- Nascita di Selenium IDE
- Nascita di WebDriver
- Nascita del selenio 2
- Allora, perché il nome selenio?
- Breve introduzione Selenium IDE
- Breve introduzione Selenium Remote Control (Selenium RC)
- Breve introduzione WebDriver
- Griglia di selenio
- Nota sul supporto per browser e ambiente
- Come scegliere lo strumento di selenio giusto per le tue esigenze
- Un confronto tra selenio e QTP (ora UFT)
- Vantaggi del QTP rispetto al selenio
Chi ha sviluppato il selenio?
Poiché Selenium è una raccolta di strumenti diversi, aveva anche sviluppatori diversi. Di seguito sono elencate le persone chiave che hanno dato un contributo notevole al Progetto Selenium
Principalmente, il selenio è stato creato da Jason Huggins nel 2004 . Ingegnere presso ThoughtWorks, stava lavorando a un'applicazione web che richiedeva test frequenti. Avendo capito che i ripetitivi test manuali della loro applicazione stavano diventando sempre più inefficienti, creò 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 ribattezzato Selenium Core . |
La stessa questione della politica di origine
La policy Same Origin proibisce al codice JavaScript di accedere a elementi da un dominio diverso da quello in cui è stato avviato . Ad esempio, il codice HTML in www.google.com utilizza un programma JavaScript "randomScript.js". Lo stesso criterio di origine consentirà solo a randomScript.js di accedere a pagine all'interno di google.com come google.com/mail, google.com/login o google.com/signup. Tuttavia, non può accedere a pagine di siti diversi come yahoo.com/search o guru99.com perché appartengono a domini diversi.
Questo è il motivo per cui prima di Selenium RC, i tester dovevano installare copie locali sia di Selenium Core (un programma JavaScript) che del server web contenente l'applicazione web da testare in modo che appartenessero allo stesso dominio
Nascita del Selenium Remote Control (Selenium RC)
Sfortunatamente; i tester che utilizzavano Selenium Core dovevano installare l'intera applicazione sotto test e il server web sui propri computer locali a causa delle restrizioni imposte dalla stessa policy 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 testata provengano dallo stesso dominio. Questo sistema divenne noto come Selenium Remote Control o Selenium 1 .
Nascita della griglia di selenio
Selenium Grid è stato sviluppato da Patrick Lightbody per rispondere all'esigenza di ridurre il più possibile i tempi di esecuzione dei test. 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 macchine diverse contemporaneamente.
Nascita di Selenium IDE
Shinya Kasatani, giapponese, 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 Selenium Project nel 2006 .
Nascita di WebDriver
Simon Stewart ha creato WebDriver intorno al 2006 quando i browser e le applicazioni web stavano diventando più potenti e più restrittivi 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 del selenio 2
Nel 2008 , l'intero team 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 concentrati su Selenium 2.
Allora, perché il nome selenio?
Il nome selenio deriva da uno scherzo che Jason ha fatto una volta alla sua squadra. Durante lo sviluppo di Selenium, un altro framework di test automatizzato era popolare realizzato dalla società chiamata Mercury Interactive (sì, la società che originariamente aveva realizzato QTP prima che fosse acquisita da HP). Poiché il selenio è un noto antidoto per l'avvelenamento da mercurio, Jason ha suggerito quel nome ei suoi compagni di squadra lo hanno preso. Quindi è così che abbiamo chiamato questo quadro fino al presente.
Breve introduzione Selenium IDE
Selenium Integrated Development Environment (IDE) è il framework più semplice della suite Selenium ed è il più facile da imparare . È un plugin per Firefox che puoi installare il più facilmente possibile con altri plugin. Tuttavia, a causa della sua semplicità, Selenium IDE dovrebbe essere utilizzato solo come strumento di prototipazione . Se desideri creare casi di test più avanzati, dovrai utilizzare Selenium RC o WebDriver.
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:
- Giava
- C #
- PHP
- Pitone
- Perl
- Rubino
Breve introduzione WebDriver
Il WebDriver si dimostra migliore di Selenium IDE e Selenium RC sotto molti aspetti. Implementa un approccio più moderno e stabile nell'automazione delle azioni del browser. WebDriver, a differenza di Selenium RC, non si basa su JavaScript per il test di automazione del selenio. Controlla il browser comunicando direttamente con esso.
Le lingue supportate sono le stesse di Selenium RC.
- Giava
- C #
- PHP
- Pitone
- Perl
- Rubino
Griglia di selenio
Selenium Grid è uno strumento utilizzato insieme a Selenium RC per eseguire test paralleli su macchine e browser diversi contemporaneamente. L'esecuzione parallela significa eseguire più test contemporaneamente.
Caratteristiche:
- Consente l'esecuzione simultanea di test in più browser e ambienti.
- Risparmia enormemente il tempo .
- 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 architetturali, Selenium IDE, Selenium RC e WebDriver supportano diversi set di browser e ambienti operativi.
IDE di selenio | WebDriver | |
---|---|---|
Supporto browser | Mozilla Firefox | Internet Explorer versioni da 6 a 11, sia 32 che 64 bit Microsoft Edge versione 12.10240 e successive (supporto parziale di alcune funzionalità in fase di sviluppo) Firefox 3.0 e versioni successive Google Chrome 12.0. e versioni successive Opera 11.5 e versioni successive Android - 2.3 e versioni successive per telefoni e tablet (dispositivi ed emulatori) iOS 3+ per telefoni (dispositivi ed emulatori) e 3.2+ per tablet (dispositivi ed emulatori) HtmlUnit 2.9 e versioni successive |
Sistema operativo | Windows, Mac OS X, Linux | Tutti i sistemi operativi in cui possono essere eseguiti i browser sopra. |
Nota: Selenium WebDriver è definito come il successore di Selenium RC che è stato deprecato e annunciato ufficialmente da SeleniumHQ.
Come scegliere lo strumento di selenio giusto per le tue esigenze
Attrezzo | Perché scegliere? |
---|---|
IDE di selenio |
|
Selenio RC |
|
WebDriver |
|
Griglia di selenio |
|
Un confronto tra selenio e QTP (ora UFT)
Quick Test Professional (QTP) è uno strumento di test automatizzato proprietario precedentemente di proprietà della società Mercury Interactive prima che fosse acquisito da Hewlett-Packard nel 2006 . La Selenium Tool Suite ha molti vantaggi rispetto a QTP come descritto di seguito:
Vantaggi e benefici del selenio rispetto a QTP
Selenio | QTP |
---|---|
Open source , gratuito e gratuito. | Commerciale . |
Altamente estensibile | Componenti aggiuntivi limitati |
Può eseguire test su diversi browser | Può eseguire test solo in Firefox , Internet Explorer e Chrome |
Supporta vari sistemi operativi | Può essere utilizzato solo in Windows |
Supporta i dispositivi mobili | QTP Supporta l'automazione del test delle app mobili (iOS e Android) utilizzando la soluzione HP chiamata - HP Mobile Center |
Può eseguire test mentre il browser è ridotto a icona | È necessario che l'applicazione in prova sia 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. |
Vantaggi del QTP rispetto al selenio
QTP | Selenio |
---|---|
Può testare applicazioni web e desktop | Può solo testare le applicazioni web |
Viene fornito con un repository di oggetti integrato | Non ha un repository di oggetti integrato |
Si automatizza più velocemente di Selenium perché è un IDE completo. | Automatizza a una velocità più lenta perché non dispone di un IDE nativo e solo l'IDE di terze parti può essere utilizzato per lo sviluppo |
Il test basato sui dati è più facile da eseguire perché dispone di tabelle di dati globali e locali incorporate . | I test basati sui dati sono più laboriosi poiché devi fare affidamento sulle capacità del linguaggio di programmazione per impostare i valori per i tuoi dati di test |
Può accedere ai controlli all'interno del browser (come la barra dei preferiti, la barra degli indirizzi, i pulsanti Indietro e Avanti, ecc.) | Impossibile accedere a elementi al di fuori dell'applicazione Web sottoposta a test |
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 su formati esterni |
Viene creato il supporto per la parametrizzazione | La parametrizzazione può essere eseguita tramite programmazione ma è difficile da implementare. |
I rapporti di prova vengono generati automaticamente | Nessun supporto nativo per generare rapporti di test / bug. |
Sebbene chiaramente, QTP abbia capacità più avanzate, Selenium supera QTP in tre aree principali:
- Costo (perché il selenio è completamente gratuito)
- Flessibilità (a causa di una serie di linguaggi di programmazione, browser e piattaforme che può supportare)
- Test parallelo (qualcosa di cui QTP è capace ma solo con l'uso di Quality Center)
Sommario
- L'intera Selenium Software Testing Suite è composta da quattro componenti:
- Selenium IDE, un componente aggiuntivo di Firefox che puoi utilizzare solo per creare test case e suite di test relativamente semplici.
- 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 con il browser, controllandolo in tal modo dal livello del sistema operativo.
- Selenium Grid è anche uno strumento utilizzato con Selenium RC per eseguire test paralleli su diversi browser e sistemi operativi.
- Selenium RC e WebDriver sono stati fusi 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.