close

Selenio

Vai alla navigazione Vai alla ricerca
selenio
Parte del Software Freedom Conservancy
Selenio IDE.png
Informazione Generale
tipo di programma Automazione dei test
sviluppatore SelenioHQ
Licenza Licenza Apache
Informazioni tecniche
Previsto in Giava
Versioni
Ultima versione stabile 4.1.2 (30 gennaio 2022 (8 mesi e 19 giorni))
Collegamenti

Selenium è un ambiente di test software per applicazioni basate sul Web. Selenium fornisce uno strumento di registrazione/riproduzione per creare test senza utilizzare un linguaggio di scripting di test ( Selenium IDE ). Include anche un linguaggio di test specifico per il dominio ( Selenese ) per la scrittura di test in un ampio numero di linguaggi di programmazione popolari tra cui Java , C# , Ruby , Groovy , Perl , PHP e Python . I test possono quindi essere eseguiti utilizzando i browser Web più moderni su diversi sistemi operativi come Windows , Linux e OSX .

Storia

Selenium è stato originariamente sviluppato da Jason Huggins nel 2004 e presto si sono aggiunti altri tester e specialisti di programmazione. È un software open source con licenza Apache 2.0 che può essere scaricato e utilizzato gratuitamente. Il nome deriva da una battuta fatta da Huggins che prende in giro un concorrente chiamato Mercury dicendo che l'avvelenamento da mercurio può essere curato assumendo integratori di selenio. I partecipanti hanno preso il nome e l'hanno mantenuto. Esistono altri progetti basati su Selenium come Selenium Grid, per testare la concorrenza di più test simultanei di client locali o remoti, nonché Flash Selenium per testare programmi scritti in Adobe Flex o Selenium Silverlight .

Componenti del selenio

Selenio IDE

Selenium IDE è un ambiente di sviluppo integrato per il test con Selenium. È implementato come estensione per Firefox e Chrome e consente di registrare, modificare ed eseguire il debug dei test. Originariamente era conosciuto come il registratore di selenio.

Gli script possono essere sviluppati automaticamente durante la creazione di una registrazione e in questo modo possono essere modificati manualmente con istruzioni e comandi in modo che la riproduzione della nostra registrazione sia corretta

Gli script sono generati in selanese , un linguaggio di scripting speciale per il selenio. Selanese fornisce comandi che eseguono azioni sugli oggetti nel browser, come fare clic su un collegamento , selezionare da un elenco di opzioni, verificare la presenza di un testo particolare, nonché occupare l'intera pagina come risultato delle azioni.

Caratteristica:

  • Facile registrazione e riproduzione
  • Selezione intelligente del campo utilizzando ID, nome o XPath secondo necessità.
  • Completamento automatico dei più comuni comandi Selenium.
  • Prove di controllo incrociato
  • Punti di debug e verifica (punto di interruzione)
  • Memorizza i test come Selanese, Ruby, Java e altri formati.
  • Supporto del file User-extensions.js
  • Opzione per affermare il titolo della pagina.
  • Possibilità di personalizzarlo con l'uso di plugin

API client Selenium

Client Application Programming Interface ( API ) In alternativa alla scrittura di test in selanese, i test possono essere scritti in vari linguaggi di programmazione, questi comunicano con Selenium chiamando i metodi dell'API Selenium Client. Selenium attualmente fornisce API per Java, C#, Ruby e Python. Con Selenium 2 è stata introdotta una nuova API client, con WebDriver come componente principale, sebbene la vecchia API possa ancora essere utilizzata chiamando la classe Selenium .

Telecomando al selenio

Selenium Remote Control (RC) è un server scritto in Java che accetta comandi al browser tramite HTTP . RC consente di scrivere test automatizzati per applicazioni web, in qualsiasi linguaggio di programmazione, consentendo una migliore integrazione di Selenium negli ambienti di test esistenti. Per semplificare la scrittura dei test, Selenium fornisce attualmente driver di dispositivo per PHP, Python, Ruby, .NET, Perl e Java. Il driver Java può essere utilizzato per Javascript tramite il motore di Rhino . Selenium Remote Control era un refactoring di Driven Selenium o Selenium B , la versione originale che avviava direttamente un processo per il browser in questione dalla lingua di test; il protocollo via cavo (chiamato in modo confuso anche selanese all'epoca) fu reimplementato portandolo in ciascuna lingua. Dopo il refactoring, c'era un demone di processo intermedio tra lo script del controller e il browser. I vantaggi includevano la possibilità di controllare i browser remoti e ridurre la necessità di trasferire il codice in un numero crescente di lingue. Con il rilascio di Selenium 2, Selenium RC è stato ufficialmente abbandonato a favore di Selenium WebDriver.

Selenium WebDriver

Selenium WebDriver è il successore di Selenium RC. Selenium WebDriver accetta i comandi (inviati in Selenese o tramite l'API client) e li invia a un browser. Ciò viene implementato tramite un driver specifico del browser per ciascun browser che invia i comandi e restituisce i risultati. La maggior parte dei driver del browser avvia e accede all'applicazione del browser (come Mozilla Firefox o Internet Explorer), ma esiste anche un driver per HtmlUnit che simula un browser. A differenza di Selenium 1, dove il server Selenium RC era indispensabile, in Selenium WebDriver non è richiesto alcun server speciale per eseguire i test, invece WebDriver avvia un'istanza del browser e la controlla; tuttavia Selenium Grid (vedi sotto) può essere utilizzato per eseguire test su sistemi remoti (vedi sotto). Dall'inizio del 2012, Simon Stewart di Google (inventore di WebDriver) e David Burns della Mozilla Foundation hanno negoziato con il W3C che WebDriver diventi uno standard Internet, in quanto tale Selenium-Webdriver (Selenium 2.0) mira ad essere l'implementazione di riferimento dello standard WebDriver in vari linguaggi di programmazione. Selenium-WebDriver è completamente implementato e supportato in Java, Ruby, Python e C#. In pratica, ciò significa che l'API Selenium 2.0 ha un numero significativamente inferiore di chiamate rispetto all'API Selenium 1.0. Laddove Selenium 1.0 ha cercato di fornire un'interfaccia ricca di molte operazioni, Selenium 2.0 cerca di fornire gli elementi costitutivi di base con cui gli sviluppatori possono programmare il proprio linguaggio specifico del dominio . Uno di questi esiste già ed è il progetto Watir in Ruby, che ha una ricca storia di buon design. Watir-WebDriver implementa l'API Watir come wrapper per Selenium-Webdriver in Ruby. Watir-WebDriver viene creato in modo completamente automatico, in base alle specifiche WebDriver e HTML.

Griglia al selenio

Selenium Grid è un server che consente di utilizzare le istanze del browser in esecuzione su macchine remote. Con Selenium Grid, uno dei server funge da hub. I test contattano l'hub per ottenere l'accesso alle istanze del browser; l'hub mantiene un elenco di istanze dei browser (WebDriver Nodes) e consente ai test di utilizzare queste istanze. Selenium Grid consente di eseguire test in parallelo su più macchine e di gestire centralmente versioni e configurazioni diverse. ....

Vedi anche

Collegamenti esterni