Caratteristiche e Componenti base di Selenium per test automatici

Caratteristiche e Componenti base di Selenium per test automatici

Test di automazione con selenium

Nell’ambito del Software Automation Testing, Selenium è stato creato da Jason Huggins lavorando in Thought Works nel 2004 quando stava lavorando a un’applicazione web che richiedeva test regolari. Egli si rese conto che la replica dei test manuali stava diventando sempre più inefficiente; quindi ha creato un programma JavaScript che controllerebbe automaticamente l’azione del browser. Ha chiamato questo programma JavaScript Test Runner. Successivamente ha completato questo open source JavaScript Runner che è stato successivamente ribattezzato Selenium Core. Selenium è un insieme di strumenti software diversi, ciascuno con un approccio diverso a supporto dell’automazione dei test. L’intera suite di strumenti si traduce in un ricco set di funzioni di test specificamente adattate alle esigenze di test di applicazioni Web di tutti i tipi.

Caratteristiche e Componenti base di Selenium per test automatici

Le operazioni con selenium sono estremamente flessibili, ti permettono di localizzare su ogni elemento della tua pagina usando diversi set di proprietà tra cui ID elemento, CSS, XPath. Selenium è open source, con un robusto set di strumenti che supporta il rapido sviluppo dell’automazione dei test appositamente per il web – applicazioni basate. Selenium fornisce uno strumento di registrazione per la creazione di test anche senza imparare troppo sui linguaggi di script di test. Selenium è anche un framework di test software portatile per applicazioni web. Alcune delle sue caratteristiche principali sono:

  1. Compatibile con le esecuzioni in molti browser e sistemi operativi
  2. Estendibile utilizzando molti linguaggi di programmazione e framework di test.
  3. Fornire una serie di strumenti diversi ciascuno con un approccio diverso per supportare l’automazione dei test.

L’intera suite di strumenti si traduce in un ricco set di funzioni di test specificamente adattate alle esigenze di test di applicazioni Web di tutti i tipi.

Componenti base di selenium

Come già detto, Selenium è uno strumento di test di automazione utilizzato per testare applicazioni basate sul Web. Il Selenium non è un singolo strumento ma una suite di strumenti. Esistono quattro componenti del Selenium: Selenium IDE, RC, WebDriver e Grid. Gli ultimi due sono i più famosi. Diversi componenti di Selenium offrono funzionalità diverse: supporto di più browser, capacità di test parallele, esecuzione su più macchine e molto altro.

Può automatizzare tutti i siti Web e non dipende dalla tecnologia in cui è progettata l’applicazione. Le prestazioni e la velocità di esecuzione dello strumento Selenium Automation sono molto migliori di qualsiasi altro strumento disponibile sul mercato.

Descriviamo dunque i 4 componenti del Selenium:

  1. Selenium IDE (Integrated Development Environment).
  2. Selenium RC (Telecomando)
  3. Selenium WebDriver
  4. Selenium Grid

Selenium IDE

Selenium IDE è un semplice strumento di registrazione e riproduzione che viene fornito come componente aggiuntivo solo per Mozilla Firefox. Viene utilizzato per i test dei prototipi. I casi di test scritti in IDE possono essere esportati in molti linguaggi di programmazione come Ruby, Java, C #, ecc. Sono anche disponibili opzioni di modifica e debug insieme a record. È uno strumento eccellente per i principianti per comprendere la sintassi di Selenium WebDriver.

Selenium RC

Selenium RC (Remote Control) è stato il primo strumento di Selenium Suite. In precedenza era noto come JavaScript Executor. RC è stato lo strumento che ha reso famoso il Selenium sul mercato. È stato il primo strumento a fornire supporto per più linguaggi di programmazione (JAVA, Ruby, Perl, PHP, Python e C #). Ha inoltre supportato quasi tutti i principali fornitori di browser come Mozilla Firefox, Google Chrome, Internet Explorer. Tutti i browser che supportano JavaScript possono essere automatizzati utilizzando questo strumento.

Selenium WebDriver

Selenium WebDriver è lo strumento più importante della suite Selenium. A causa di molte limitazioni con RC, WebDriver è stato sviluppato. Non richiede alcun processo manuale come Selenium Server. C’è una comunicazione diretta tra codice e browser.

Le caratteristiche principali di Selenium WebDriver sono sicuramente le seguenti:

  • Open source
  • Supporta tutti i principali fornitori del browser come Mozilla Firefox, Internet Explorer, Google Chrome, Safari, ecc.
  • Supporta più lingue come C #, JAVA, Ruby, Perl, Python e PHP.
  • Supporta piattaforme multiple come Linux, Windows, MAC, ecc.
  • Non è richiesto alcun intermediario come il server Selenium RC.
  • API facili da ricordare.
  • Facile da integrare con i framework di test.
  • Sviluppo del framework.
  • Funzionalità di test in parallelo.

Selenium Grid

Il selenium grid è l’ultimo componente della suite di Selenium e viene utilizzato per test paralleli o test distributivi. Ci consente di eseguire script di test su macchine diverse contemporaneamente. Esiste inoltre un hub che controlla l’esecuzione su varie macchine e vi sono più nodi su cui viene eseguita l’implementazione effettiva.

Le caratteristiche di questo componente sono:

  • Esecuzione parallela su più nodi
  • Platform Independent, supporta quasi tutti i sistemi operativi
  • Indipendente dalla lingua.
  • Browser Independent supporta quasi tutti i principali fornitori di Browser.
  • L’esecuzione rapida riduce i tempi di esecuzione poiché i casi di test vengono eseguiti in parallelo.

Componenti base di Selenium per test automatici

Un esempio di test automatico dell’interfaccia utente con Selenium

Per fornire una panoramica delle possibili applicazioni dei test automatizzati, in questa parte del lavoro forniamo un esempio di test UI automatizzato utilizzando Selenium.
Ogni caso di test composto da uno scenario di test è stato creato per dichiarare lo scopo del test. Un esempio di codice per uno degli scenari di test può essere visto nella figura seguente (esempio di implementazione del test automatizzato dell’interfaccia utente).

Selenium - Esempio di implementazione del test automatizzato dell'interfaccia utente

I casi di test funzionano indipendentemente l’uno dall’altro e sono resi il più atomici possibile. Questa strategia è stata utilizzata per garantire che i casi di test non fallissero a causa dell’influenza reciproca.
La parte principale nel rendere atomici i test era usare un nuovo driver per ciascun caso di test, ovvero aprire e chiudere una nuova finestra del browser prima e dopo ogni test. Ciò ha reso i test più lenti, ma ha assicurato che i casi di test non si sarebbero arrecati a vicenda perché utilizzavano lo stesso driver. Inizialmente lo stesso driver è stato utilizzato per ogni suite di test, questo ha reso i test più veloci ma ha anche comportato un effetto domino se uno dei test falliva e il driver finiva nel posto sbagliato nell’automazione del browser.

Una delle migliori pratiche per scrivere da zero i casi di test è il modello a oggetti di pagina (POM), l’utilizzo di questi metodi potrebbe trarre vantaggio dallo sviluppo di casi di test stabili e avere il maggior controllo possibile durante lo sviluppo poiché è una possibile base per sviluppo futuro di test per l’interfaccia utente.

Secondo la documentazione del Selenium durante l’implementazione dei casi di test, gli attributi più efficienti sugli elementi HTML sono l’ID dell’elemento. Se l’implementazione dell’interfaccia utente non ti offre la funzione di avere un ID univoco per tutti gli elementi di una pagina, puoi utilizzare attributi come gli attributi selettore XPath e CSS. Infine, un esempio di codice per localizzare un elemento usando un XPath può essere visto nella figura seguente (esempio di implementazione del test UI automatizzato).

Selenium - Esempio di implementazione del test UI automatizzato

Pubblicato da Vito Lavecchia

Lavecchia Vito Ingegnere Informatico (Politecnico di Bari) Email: [email protected] Sito Web: https://vitolavecchia.altervista.org

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *