Cosa è Selenium? Tutorial introduttivo

⚡ Riepilogo intelligente

Selenium è un framework di test automatizzato gratuito e open source, progettato per convalidare applicazioni web su browser e piattaforme utilizzando diversi linguaggi di programmazione. Consente un'automazione dei test robusta, efficiente e scalabile per le moderne pratiche di controllo qualità.

  • Principio chiave: Selenium facilita la convalida automatizzata delle applicazioni web su diversi browser e sistemi operativi, supportando linguaggi come Java, C#, PythonE altro ancora.
  • Struttura della suite di strumenti: Selenium include quattro componenti principali: IDE, Remote Control, WebDriver e Grid, ognuno dei quali risponde a esigenze di automazione distinte.
  • IDE e Prototipazioneping: Selenium IDE è un'estensione del browser per la creazione rapida di casi e prototipipingma è più adatto a scenari di test semplici.
  • Evoluzione del controllo remoto: Selenium RC, ora in modalità di manutenzione, è stato il primo framework a consentire script di test in più linguaggi, risolvendo così le restrizioni imposte dalle policy del browser.
  • Implementazione WebDriver: WebDriver comunica direttamente con i browser, offrendo controllo a livello di sistema operativo e stabilità superiore per automazioni complesse.
  • Griglia per il parallelismo: Selenium Grid consente l'esecuzione parallela dei test su più macchine e browser, riducendo drasticamente la durata del ciclo di test.
  • Supporto multi-browser e piattaforma: Selenium supporta un'ampia gamma di browser e sistemi operativi, garantendo una flessibilità senza pari per il controllo qualità del Web.
  • Impatto nel mondo reale: I team usano Selenium per accelerare i cicli di rilascio, ridurre i test manuali e garantire un'esperienza utente coerente su tutti i browser, con risultati comprovati in SaaS, CI/CD e distribuzione delle funzionalità.

cos'è il selenio

Cosa è Selenium?

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 Selenium Script di prova. Test effettuato utilizzando il Selenium lo strumento di test viene solitamente definito come Selenium Collaudo.

Approfondimenti degli esperti

Evita di utilizzare ritardi di sospensione fissi nei tuoi test. Utilizza invece attese esplicite (come WebDriverWait) per attendere il caricamento degli elementi. Questo rende i tuoi script più affidabili e veloci, poiché rispondono dinamicamente alle condizioni effettive della pagina: una best practice fondamentale per gli studenti di tutto il mondo, a partire da Selenium. "

—Himanshu Sheth, Selenium Expert

👉 Iscriviti gratuitamente in diretta Selenium Progetto di prova

Selenium Suite di strumenti

Selenium Il software non è solo un singolo strumento ma una suite di software, ogni pezzo si rivolge a qualcosa di diverso Selenium Esigenze di test QA di un'organizzazione. Ecco l'elenco degli strumenti

  • Selenium Ambiente di sviluppo integrato (IDE)
  • Selenium Controllo remoto (RC)
  • webdriver
  • Selenium Griglia

Selenium Suite di strumenti

Al momento, Selenium RC e WebDriver vengono fusi in un unico framework per formare Selenium 2. Selenium 1, tra l'altro, si riferisce a Selenium RC.

Video Tutorial Selenium

Clicchi Qui. se il video non è accessibile

Chi si è sviluppato Selenium?

Dal Selenium è una raccolta di strumenti diversi, ha avuto anche diversi sviluppatori. Di seguito sono elencate le persone chiave che hanno dato un contributo notevole al Selenium Progetto

Sviluppato Selenium

In primis, Selenium Prima creato da Jason Huggins nel 2004Ingegnere presso ThoughtWorks, stava lavorando su un'applicazione web che richiedeva test frequenti. Dopo essersi reso conto che i test manuali ripetitivi della loro applicazione stavano diventando sempre più inefficienti, ha creato un JavaCopione programma che avrebbe controllato automaticamente le azioni del browser. Chiamò questo programma "JavaScriptTestRunner."

Vedendo in questa idea il potenziale per aiutare ad automatizzare altre applicazioni web, ha realizzato JavaScriptRunner open source, che in seguito è stato rinominato Selenium Nucleo. Per coloro che sono interessati ad esplorare altre opzioni per il test delle applicazioni Web, dai un'occhiata a queste Selenium alternative.

Lo stesso problema di politica di origine

La politica della stessa origine lo vieta JavaImpedisce al codice script di accedere agli elementi da un dominio diverso da quello in cui è stato lanciato. Ad esempio, il codice HTML in www.google.com utilizza un JavaProgramma script "randomScript.js". La stessa policy di origine consentirà a randomScript.js di accedere solo alle pagine 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.

Lo stesso problema di politica di origine

Questo è il motivo per cui, prima di Selenium RC, i tester dovevano installare copie locali di entrambi Selenium Nucleo (a JavaProgramma script) e il server web contenente l'applicazione web in fase di test, in modo che appartengano allo stesso dominio

Nascita di Selenium Telecomando (Selenium RC)

Paolo Hammant

Sfortunatamente, i tester che utilizzano Selenium Core ha dovuto installare l'intera applicazione in prova e il server web sui propri computer locali a causa delle restrizioni imposte dal politica della stessa origineQuindi un altro ingegnere di ThoughtWorks, Paolo Hammant, ha deciso di creare un server che avrebbe agito come un proxy HTTP per "ingannare" il browser facendogli credere che Selenium Core e l'applicazione web in fase di test provengono dallo stesso dominio. Questo sistema divenne noto come Selenium Controllo remoto or Selenium 1.

Nascita di Selenium Griglia

Patrick Corpo leggero

Selenium La griglia è stata sviluppata da Patrick Corpo leggero per rispondere alla necessità di ridurre al minimo i tempi di esecuzione dei test. Inizialmente chiamò il sistema "QA ospitato." Era in grado di catturare schermate del browser durante fasi significative e anche di inviando Selenium comandi a macchine diverse contemporaneamente.

Nascita di Selenium IDE

Shinya Kasatani

Shinya Kasatani del Giappone creato Selenium IDE Firefox e un'estensione di Chrome che può automatizzare il browser attraverso una funzione di registrazione e riproduzione. Ha avuto questa idea per aumentare ulteriormente la velocità di creazione dei casi di test. Ha donato Selenium IDE al Selenium Proietta dentro 2006.

Nascita di WebDriver

Simon Stewart

Simon Stewart creato WebDriver circa 2006 quando i browser e le applicazioni web stavano diventando più potenti e più restrittivi JavaProgrammi script come Selenium Nucleo. È stato il primo framework di test multipiattaforma in grado di controllare il browser a livello di sistema operativo.

Nascita di Selenium 2

In 2008, L'intero Selenium Il team ha deciso di unire WebDriver e Selenium RC per formare uno strumento più potente chiamato Selenium 2, con WebDriver è il nucleo. Attualmente, Selenium RC è ancora in fase di sviluppo, ma solo in modalità di manutenzione. La maggior parte dei Selenium Gli sforzi del progetto sono ora concentrati su Selenium 2.

Quindi, perché il nome Selenium?

Il nome Selenium deriva da uno scherzo che Jason ha fatto una volta alla sua squadra. Durante Seleniumlo sviluppo, un altro test automatizzati il framework è stato comunemente realizzato dalla società chiamata Mercury Interactive (sì, l'azienda che originariamente ha realizzato QTP prima che venisse acquisita da HP). Da Selenium è un noto antidoto per Mercury avvelenamento, Jason suggerì quel nome e i suoi compagni di squadra lo presero. Ecco come dobbiamo chiamare questo quadro fino ad oggi.

Perché il nome Selenium

Cosa è Selenium IDE?

Selenium L'ambiente di sviluppo integrato (IDE) è il quadro più semplice nella Selenium suite ed è quello più facile da imparare. È un Chrome e Firefox plug-in che puoi installare con la stessa facilità con cui potresti farlo con altri plugin. Tuttavia, data la sua semplicità, Selenium L'IDE deve essere utilizzato solo come file prototipoping . Se desideri creare casi di test più avanzati, dovrai utilizzare entrambi Selenium RC o WebDriver.

Selenium IDE

Cosa è Selenium Telecomando (Selenium RC)?

Selenium RC era il quadro di test di punta del tutto Selenium progetto da molto tempo. Questo è il primo automatizzato test web strumento che consente agli utenti di utilizzare un linguaggio di programmazione che preferisconoA partire dalla versione 2.25.0, RC può supportare i seguenti linguaggi di programmazione:

Selenium Telecomando (Selenium RC)

Cos'è WebDriver?

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

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

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

Webdriver

Cosa è Selenium Griglia?

Selenium La griglia è uno strumento usato insieme a Selenium RC da eseguire prove parallele su macchine diverse e browser diversi contemporaneamente. L'esecuzione parallela significa eseguire più test contemporaneamente.

Caratteristiche:

  • Consente esecuzione simultanea di test in più browser e ambienti.
  • Risparmio di tempo enormemente.
  • Utilizza il hub e nodi concetto. L'hub funge da fonte centrale di Selenium comandi ad ogni nodo ad esso connesso.

Selenium Supporto per browser e ambiente

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

  Selenium IDE webdriver
Supporto Browser Mozilla Firefox e Chrome Google Chrome 12+
Firefox
Internet Explorer 7+ e Edge
Safari,
HtmlUnit e PhantomUnit
Operasistema di ting Windows, Mac OS X, Linux Tutti i sistemi operativi su cui possono essere eseguiti i browser sopra indicati.

Nota: Opera Il driver non funziona più

Come scegliere il giusto? Selenium Strumento per le tue esigenze

Chiavetta Perché scegliere?
Selenium IDE
  • Per conoscere i concetti sui test automatizzati e Selenium, Compreso:
  • Comandi selenesi come type, open, clickAndWait, assert, verify, ecc.
  • Localizzatori come id, nome, xpath, selettore css, ecc.
  • Esecuzione personalizzata JavaCodice script che utilizza runScript
  • Esportazione di casi di test in vari formati.
  • Per creare test con poca o nessuna conoscenza preliminare della programmazione.
  • Per creare semplici casi di test e suite di test che è possibile esportare in seguito in RC o WebDriver.
  • Per testare un'applicazione web Firefox e solo Chrome.
Selenium RC
  • Progettare una prova utilizzando un linguaggio più espressivo di quello selenese
  • Per eseguire il test su diversi browser (eccetto HtmlUnit) su diversi sistemi operativi.
  • Per distribuire i test su più ambienti utilizzando Selenium Griglia.
  • Per testare la tua applicazione rispetto a un nuovo browser che supporti JavaScript.
  • Per testare applicazioni web con scenari complessi basati su AJAX.
webdriver
  • Utilizzare un determinato linguaggio di programmazione nella progettazione del caso di test.
  • Per testare applicazioni ricche di funzionalità basate su AJAX.
  • Per eseguire test sul browser HtmlUnit.
  • Per creare risultati di test personalizzati.
Selenium Griglia
  • Per eseguire il tuo Selenium Script RC in più browser e sistemi operativi contemporaneamente.
  • Per eseguire una suite di test di grandi dimensioni che deve essere completata nel più breve tempo possibile.

Casi di studio del mondo reale

🔍 Caso di studio 1: compatibilità tra browser per dashboard SaaS

Scenario

Un'azienda di software-as-a-service si stava preparando a rilasciare un dashboard di analisi che doveva funzionare in modo coerente su tutti i browser moderni (Chrome, Firefox, Edge, Safari).

La sfida

I test manuali su ciascun browser richiedevano molto tempo, erano soggetti a errori e non riuscivano a tenere il passo con le rapide iterazioni di sviluppo.

Soluzione con Selenium

Un ingegnere QA ha creato un Selenium Griglia configurazione per eseguire la stessa suite di test simultaneamente su più browser e combinazioni di sistemi operativi. I test sono stati creati in Python utilizzando Selenium WebDriver per azioni quali accesso, filtraggio dei grafici ed esportazione dei dati.

Risultato

  • Durata della regressione ridotta dell'80%.
  • Sono stati individuati in anticipo bug di rendering specifici del browser (ad esempio grafici disallineati in IE).
  • Mantenimento di un'esperienza utente della dashboard coerente in tutta la matrice del browser, senza cicli manuali aggiuntivi.

⚙️ Caso di studio 2: Integrazione CI/CD per app Web tramite Selenium + TestNG

Scenario

Un'azienda di sviluppo web di medie dimensioni si affida a una pipeline CI/CD utilizzando JenkinsDovevano assicurarsi che i percorsi utente principali funzionassero correttamente dopo ogni modifica al codice.

La sfida

Le nuove implementazioni di build a volte interrompono i flussi utente: accesso, invio di moduli, ecc.ping Rilevamento fino a fine giornata tramite test manuale.

Soluzione con Selenium

Un tester ha implementato un Java-based Selenium Suite WebDriver integrata con TestNG. I test hanno riguardato l'autenticazione, gli aggiornamenti del profilo e le funzionalità di ricerca. Questi sono stati eseguiti su ogni Jenkins compilazione, sfruttando l'esecuzione parallela e la parametrizzazione del browser.

Risultato

  • Feedback rapido ottenuto: i flussi interrotti venivano segnalati immediatamente.
  • Riduzione dei bug post-distribuzione di oltre il 60%.
  • Ha consentito agli sviluppatori di risolvere i problemi prima che raggiungessero il reparto QA.

🚀 Caso di studio 3: Accelerare il rilascio delle funzionalità per l'aggregatore di viaggi

Scenario

Una piattaforma di aggregazione di viaggi aveva bisogno di rilasciare una funzionalità di prenotazione voli rinnovata. I test di regressione manuali su oltre 10 pagine hanno richiesto giorni e ne hanno bloccato il rilascio.

La sfida

La pressione per ridurre il time-to-market non poteva superare i cicli di test manuali, con il rischio di ritardi o di una qualità inferiore.

Soluzione con Selenium & Modello di oggetti di pagina

Un responsabile dell'automazione del controllo qualità ha introdotto una struttura Page Object Model (POM) in C#. Selenium Gli script WebDriver incapsulavano elementi e azioni della pagina (ricerca voli, applicazione filtri e casi di pagamento). Esecuzioni di test automatizzate venivano attivate ogni notte su GitLab CI.

Risultato

  • Il tempo impiegato per effettuare i test è sceso da 3 giorni a sole 4 ore.
  • Il riutilizzo degli script su più funzionalità ha ridotto del 50% lo sforzo di scripting.
  • Aumento della fiducia: la versione è stata distribuita nei tempi previsti, con un numero minimo di segnalazioni di bug.

Uncommon Selenium Sfide (e soluzioni)

Sebbene Selenium è potente, ma i tester spesso si trovano ad affrontare sfide che possono influire sull'affidabilità e sulla velocità. Ecco alcune delle sfide più comuni e come risolverle:

  1. Test a scaglie:
    I test potrebbero fallire in modo casuale a causa di problemi di temporizzazione o di rete.
    Fix: Utilizzare attese esplicite e localizzatori stabili; evitare Thread.sleep().
  2. Elementi Web dinamici:
    La modifica degli ID elemento o degli XPath causa errori di tipo "elemento non trovato".
    Fix: Utilizzare XPath relativi, selettori CSS o gestione dinamica degli attributi.
  3. SyncProblemi di ronizzazione:
    Gli elementi vengono caricati più lentamente dell'esecuzione dello script.
    Fix: Implementare WebDriverWait con le condizioni previste.
  4. Incongruenze tra browser:
    I test si comportano diversamente su Chrome, Firefox, o Edge.
    Fix: Esegui test su Selenium Piattaforme Grid o cloud per la convalida multi-browser.
  5. Gestione di pop-up e avvisi:
    Pop-up inaspettati possono interrompere il flusso del test.
    Fix: Usa il SeleniumInterfaccia di avviso o blocchi try-catch per gestirli in modo corretto.
  6. Spese generali di manutenzione dei test:
    Le frequenti modifiche all'interfaccia utente rendono i test fragili.
    Fix: Adotta il Page Object Model (POM) e il controllo delle versioni per semplificare gli aggiornamenti.
  7. Sfide di integrazione:
    Le pipeline CI/CD potrebbero non funzionare a causa di problemi del driver.
    Fix: Usa il Selenium Manager (Selenium 4+) o WebDriver Manager per gestire automaticamente i driver.

In breve: ponte Selenium i problemi derivano da una scarsa sincronizzazione o da localizzatori fragili, entrambi risolvibili tramite attese più intelligenti, progettazione modulare e manutenzione continua.

FAQ:

Selenium è un framework di automazione open source utilizzato per testare applicazioni web su diversi browser e piattaforme. Consente ai tester di simulare le interazioni degli utenti, come clic, invio di moduli e navigazione, utilizzando vari linguaggi di programmazione.

Selenium Viene utilizzato principalmente per automatizzare i test basati su browser. Aiuta a garantire il corretto funzionamento delle applicazioni web su tutti i browser, supporta i test di regressione e funzionali e si integra facilmente con le pipeline CI/CD per i test continui.

Selenium comprende quattro componenti principali: Selenium IDE (strumento di registrazione/riproduzione), Selenium RC (obsoleto), Selenium webdriver (API di automazione moderna) e Selenium Griglia (per l'esecuzione di test paralleli su più browser).

I quattro tipi sono: Selenium IDE per la registrazione dei test, Selenium RC per l'automazione legacy, Selenium webdriver per il controllo diretto del browser e Selenium Griglia per test distribuiti e paralleli su più browser.

Selenium WebDriver è il componente principale che interagisce direttamente con i browser tramite API native. Consente agli sviluppatori di scrivere script di automazione robusti e multi-browser in linguaggi come Java, Pythone C#, senza fare affidamento su JavaScript.

Selenium IDE è adatto ai principianti e offre funzionalità di registrazione e riproduzione tramite estensioni del browser. webdriver, d'altro canto, è basato su codice, supporta più linguaggi e fornisce un'automazione del browser avanzata e scalabile, adatta a framework di test del mondo reale.

Riassumi questo post con: