Selenium

Posted by jeko, Wed Mar 28 00:18:00 UTC 2007

Giuliano: Si fà un gran parlare di un certo Selenium� dicono sia imbattibile per i motori diesel� ed anche per fare i functional test no?

Jeko: Una settimana dopo che Loop mi ha fatto scoprire Watir, a Oscon ho scoperto uno strumento che da solo mi ha ripagato il viaggio, ovvero Selenium (www.openqa.org/selenium).

Si, è scritto specificamente per condurre test. Selenium è l’ultima frontiera del QA per web applications e siti internet… è totalmente in javascript e non è strettamente correlato a Ruby, ma è talmente una svolta da non essere mai off topic, come una bella sbombolettata di panna montata compressa direttamente in gola.

Giuliano: Una svolta dici… ma di strumenti per i test ce se sono altri… in che è una svolta questo Selenium?

Jeko: Selenium è scritto totalmente in javascript, e va copiato in una cartella all’interno del sito da testare, presupponendo che sia vostro e che abbiate pieno accesso ai files (certo non vi metterete a testare google no?). Le pagine su cui si basa sono tutte html quindi prescinde dalla presenza o meno di una tecnologia server side, o dal tipo quando presente (+1 per selenium) Un’altra caratteristica vincente di selenium è che gira su ogni browser che supporti javascript a un livello decente, e lo stanno migliorando (la lista si allunga ogni settimana di più)

Questa è la lista dei browser supportati al momento della scrittura dell’articolo

  • Windows:
    • Internet Explorer 6.0
    • Firefox 0.8 to 1.5
    • Mozilla Suite 1.6+, 1.7+
    • Seamonkey 1.0
    • Opera 8
  • Mac OS X:
    • Safari 1.3+
    • Firefox 0.8 to 1.5
    • Camino 1.0a1
    • Mozilla Suite 1.6+, 1.7+
    • Seamonkey 1.0
  • Linux:
    • Firefox 0.8 to 1.5
    • Mozilla Suite 1.6+, 1.7+
    • Konqueror

quindi potete condurre i test sul browser che volete. E con le impostazioni che volete. Ne consegue che se un utente lamenta un problema con un determinato browser, magari con delle toolbar o componenti aggiuntivi o impostazioni sciocche come i cookies disabilitati (frecciatina) voi potete riprodurre l’ambiente esatto (paro paro come se dice qui) e eseguire i test in quelle condizioni.

Giuliano: Puoi farci un esempio concreto in cui Selenium ti è venuto in contro meglio e più facilmente di quanto avesse potuto fare il framework di Test di Ruby?

Jeko: Le cose che distinguono watir (tool di testing per Ruby) da selenium che abbiamo visto fin ora sono:

  • selenium è platform independent, watir no,
  • selenium è browser independent, watir no.

Oltretutto dal momento che non prevede tecnologie server side, i comandi sono passati attraverso una tabella HTML. Avete capito bene, una tabella html (e come ha detto il simpaticissimo John Paul Ashenfelter che ce l’ha presentato… sapete fare una tabella html, vero? :) )

E’ scritto specificamente per condurre test, quindi ha comandi specifici per i test.

Apri questa url, clicca questo link, scrivi questo testo in tal campo, clicca questo bottone, assicurati che nella pagina sia presente quel testo, fai drag & drop, fai qualche chiamata AJAX, apri popup e interagisci con esso, clicca li, no un pò più su… un po più su.. si ecco clicca li… ghhhhhh…. :)

Il tutto nella forma semplicissima
  • 1° colonna: comando,
  • 2° colonna: target,
  • 3° colonna: valore. Il che rende selenium utilizzabile da tutti.

Giuliano: Ad intuito mi sembra che l’innovazione maggiore che Selenium apporta è una “registrazione” dei test completamente visuale o mi sbaglio?

Jeko: Esatto… come hai già intuito, la vera ciliegina sulla torta, il catalizzatore di tutte le virtù di Selenium è Selenium IDE, un pratico plugin per mozilla che consente di registrare i test live, come faceva il vecchio registratore di macro di windows 3.1 (perché l’hanno tolto? era la cosa migliore che avessero fatto!) In sostanza funziona cosi: aprite mozilla, aprite selenium IDE (plugin che avete installato in precedenza) e iniziate a svolgere una serie di operazioni sul sito da testare. Ad esempio, cliccate un link che porta ad una form, la compilate, e fate il submit. A questo punto evidenziate una frase o una parola nella pagina di risposta del server e direttamente nel menu contestuale di mozilla (tasto destro) trovate comandi come “assert taletesto present” o “verify taletesto present”... e il test lo costruite cosi, live! Sforzo zero! Tanto almeno una volta la webapp va testata, no? Basta tener acceso il Selenium IDE nel frattempo e lui si ricorda tutto… Il webtesting non è mai stato cosi facile! Io faccio registrare i test direttamente ai redattori che sono assolutamente non-tecnici… Una svolta!

Vi serve altro per correre a scaricarlo e iniziare ad usarlo?

...forse sapere che è uscito Selenium on Rails? :-)

Il video

Andrea Reginato mette a disposizione questo fantastico video (attenzione pesa 5 mega) che ci fa entrare nel vivo di Selenium. Il video si può anche scaricare in locale.

Gli Autori

Giuliano Uboldi

Informatico per diletto da quel natale di 25 anni fà il suo buon nonno si presentò a casa con un Vic20, è passato attraverso varie esperienze e società informatiche arrivando ad essere infine LIBERO!!! ( professionista ). Quando oramai si stava abituando ad aprire VisualStudio, e le giornate passavano pigre riprogettando i pesantissimi webcontrols di zio Bill, scopre per caso Ruby e in una settimana butta la copia crakkata del suo IDE preferito e diventa cintura nera di Rails. E si risente come quel famoso natale lontano lontano… ciao nonno.

Stefano Guglielmetti alias Jeko

Schiavo dell’industria informatica italiana dal 1996, anno in cui entra in Flashnet, dalla quale esce nel 1998 con la qualifica di webmaster per fondare la sua prima società (flux s.n.c) a 19 anni con 3 amici, due dei quali sono tutt’ora soci (a prova del fatto che non è un infame totale) Sempre nel 1998 inizia l’avventura con Interact, di cui diventa socio, e in un batter di ciglio sono passati quasi 10 anni. Quando ormai aveva preso gran parte delle speranze maturate nella breve fase dell’entusiasmo iniziale, scopre ruby e i metodi agili, e, se non altro, ora si diverte. (quando fa il programmatore e non il manager – project manager – direttore tecnico – chaos wrangler)

Filed Under: Libreria Metodologia | Tags:

Comments

  1. Gianluca 02.02.08 / 16PM
    Interessante la possibilità di registrare le azioni e quindi registrare i casi di test importanti della nostra applicazione. Nel caso di "refactoring del sito", mi chiedeo se è possibile, rifattorizzare i casi di test e quindi modificare i comandi utilizzati da Selenium.
  2. Reggie 02.02.08 / 16PM
    Intanto ringrazio Jeko per l'articolo perchè l'ho usato su un progetto all'uni e ha fatto felice il mio professore (e quindi pure me :P). Detto questo volevo sapere se con Selenium sia possibile o meno generare dei dai in modo casuale per poi effettuare i test. Al momento quando ho usato Selenium registravo i dati che inserivo e poi lanciavo la suite di test, ma in questo modo la mia suite risulta troppo statica e non flessibile al massimo. Mi sembra di avere letto qualcosa su integrazione con altri linguaggi... può essere qui la soluzione? Grazie mille e ancora complimentoni.
  3. Giovanni 02.02.08 / 16PM
    Articolo fondamentale, mi ha salvato la vita :)
  4. Salvatore 02.02.08 / 16PM
    Volevo chiedere a qualcuno di voi se siete riusciti ad effettuare un teste con Selenium IDE su una applicazione javascript. Grazie.
  5. Stefano 06.13.08 / 07AM
    Complimenti per l'articolo, mi sta facendo interessare seriamente a Selenium. Quindi, se ho ben capito, essendo completamente in javascript posso testare anche applicazioni che girano in locale come Google Gears, no ?
  6. Reggie 06.13.08 / 08AM
    Io ho avuto qualche esperienza con Selenium, e credo non ci siano problemi a far girare applicazioni in locale, visto che si ricreano le iterazioni fatte con il browser, e che quindi viene ricreato un ambiente di lavoro normale.

Have your say

A name is required. You may use HTML in your comments.