SlideShare una empresa de Scribd logo
1 de 17
Selenium
Framework
Automazione e test su Browsers
Introduzione
• Selenium è un framework open-source per l'automazione e il testing
di applicazioni web, permette di controllare in remoto le istanze del
browser ed emulare l'interazione di un utente
• Utilizzando questo framework è possibile automatizzare i test web
che altrimenti dovrebbero essere eseguiti da un utente umano
• Selenium fornisce supporto a diversi linguaggi di programmazione:
Java, Python, C#, Ruby, Javascript, Kotlin
• Selenium è attualmente utilizzato nella produzione in aziende come
Netflix, Google, HubSpot, Fitbit e altre
Componenti
Selenium IDE
• Uno strumento utilizzabile per sviluppare i casi di test Selenium.
• È un'estensione di Chrome e Firefox di facile utilizzo
• Registra le azioni degli utenti nel browser, utilizzando i comandi
Selenium esistenti, con parametri definiti dal contesto di
quell'elemento
• Risparmio di tempo se si vuole implementare test senza
utilizzare linguaggi di programmazione
• Uso di sintassi specifica per definire script Selenium
Selenium GRID
• Selenium Grid consente l'esecuzione di script WebDriver su
macchine remote (virtuali o reali) instradando i comandi inviati
dal client alle istanze del browser remoto
• Metodo semplice per eseguire test in parallelo su più macchine
• Gestione centralizzata delle diverse versioni di browser e
configurazioni di browser (invece che in ogni singolo test)
• Non gestisce l'infrastruttura di un progetto quindi potrebbe non
soddisfare esigenze specifiche
Selenium WebDriver
• Fornisce un protocollo cablato indipendente dalla piattaforma e
dalla lingua per consentire ai programmi fuori processo di istruire
il comportamento dei browser web
• Fornisce funzioni per manipolare gli elementi DOM nei
documenti web e per controllare il comportamento di un
programma utente
• Il WebDriver guida un browser come farebbe un utente,
localmente sulla macchina dove viene installato o in remoto
• Controlla il browser a livello del sistema operativo piuttosto che
utilizzare comandi JavaScript
Selenium WebDriver
• Ogni browser è supportato da una specifica implementazione
WebDriver (ChromeDriver, Mozzilla GeckoDriver, Opera, Edge
driver, HtmlUnitDriver ecc..)
• WebDriver trasmette i comandi al browser tramite il driver e
riceve le informazioni tramite lo stesso percorso.
• È inteso principalmente per consentire agli autori di applicazioni
web di scrivere test che automatizzino i processi utente senza
dover accedere manualmente all'applicazione web
Cosa serve?
• Selenium 3 (WebDriver): Nuget .NET, C#
• Driver per browser: da installare sulla macchina a seconda del
browser utilizzato (tabella sopra)
Come funziona?
Esempio
Migliorare i test e
l'automazione
• Report dei risultati
– Di base Selenium non si occupa di report ma è possibile
utilizzare framework di testing per generarli (Es. xUnit result su
AzureDevOps)
• Page Object design pattern
– Classe che funge da interfaccia per una pagina del tuo SUT
(subject under test)
– L'oggetto conterrà la rappresentazione della pagina e i servizi
che la pagina fornisce tramite metodi
– L'oggetto non deve contenere nessun codice relativo a ciò che
viene testato
Migliorare i test e
l'automazione
• Assicurarsi che i test siano isolati l'uno dall'altro
– Es. instanziare un WebDriver per test
• Mock dei servizi esterni, se utilizzati per interfacciarsi con altre
componenti dell'applicazione (es. API o Database)
• Utilizzare WebDriverWait invece di altri metodi per restare in attesa
su thread. Il metodo wait.Until fornisce molteplici eventi su cui
effettuare il controllo di attesa ed è gestito dal framework
• In generale utilizzare le best-pratice tipiche dello sviluppo orientato
ai test
Esempio
Criticità del framework
• CAPTCHAs non testabili, disabilitarli durante i test o aggiungere un
hook per consentire ai test di bypassarlo
• Autenticazione a 2 fattori
• Download dei file
– l'API non mostra l'avanzamento del download
• Ordine di esecuzione dei test
– i test dovrebbero essere in grado di essere eseguiti in qualsiasi
ordine
• Non è un framework ottimizzato per gli stress test di performace di
un applicazione web
Vantaggi e svantaggi
• PRO:
– Selenium gratuito e open-source
– Integrabile con DevOps o CI/CD
– Mobile testing (plugin: Appium, Selendroid, Robotium, ios-driver)
– Supporto a diversi lignuaggi, piattaforme e browsers
• CONTRO:
– Costoso implementare testing web
– Cambio frequente dell UI significa riscrivere i test
– Nessun report dei risultati di test (Anche se esitono soluzioni di
terze parti)
– No confronto tra immagini built-in (si con plugin esterni)
Link utili
https://www.selenium.dev/documentation/en/
https://github.com/SeleniumHQ/seleniumhq.github.io
https://www.w3.org/TR/webdriver1/
https://github.com/SeleniumHQ/htmlunit-driver
Reference:
https://poweredtemplate.com/it/modello-powerpoint-sfondo-
astratto-con-righe-diagonali-rosse-52045/
Contatti
• https://www.giuneco.tech/
• https://www.facebook.com/Giuneco
• https://www.linkedin.com/company/giuneco-s-r-l-/
• https://www.instagram.com/giuneco

Más contenido relacionado

La actualidad más candente

Utilizzare Windows Vista come Software Developer
Utilizzare Windows Vista come Software DeveloperUtilizzare Windows Vista come Software Developer
Utilizzare Windows Vista come Software Developer
Stefano Ottaviani
 
AngularJS – Reinventare le applicazioni web
AngularJS – Reinventare le applicazioni webAngularJS – Reinventare le applicazioni web
AngularJS – Reinventare le applicazioni web
Luca Milan
 

La actualidad más candente (20)

Angular js o React? Spunti e idee per la scelta di un framework
Angular js o React? Spunti e idee per la scelta di un frameworkAngular js o React? Spunti e idee per la scelta di un framework
Angular js o React? Spunti e idee per la scelta di un framework
 
ASP.NET Core - dove siamo arrivati
ASP.NET Core - dove siamo arrivatiASP.NET Core - dove siamo arrivati
ASP.NET Core - dove siamo arrivati
 
Utilizzare Windows Vista come Software Developer
Utilizzare Windows Vista come Software DeveloperUtilizzare Windows Vista come Software Developer
Utilizzare Windows Vista come Software Developer
 
Blazor: are we ready for the launch?
Blazor: are we ready for the launch?Blazor: are we ready for the launch?
Blazor: are we ready for the launch?
 
Spa with Blazor
Spa with BlazorSpa with Blazor
Spa with Blazor
 
Applicazioni Web ultra-performanti con Vue.js e Delphi
Applicazioni Web ultra-performanti con Vue.js e DelphiApplicazioni Web ultra-performanti con Vue.js e Delphi
Applicazioni Web ultra-performanti con Vue.js e Delphi
 
Realizzare applicazioni cross-platform con Xamarin e il pattern MVVM
Realizzare applicazioni cross-platform con Xamarin e il pattern MVVMRealizzare applicazioni cross-platform con Xamarin e il pattern MVVM
Realizzare applicazioni cross-platform con Xamarin e il pattern MVVM
 
Blazor per uno sviluppatore Web Form
Blazor per uno sviluppatore Web FormBlazor per uno sviluppatore Web Form
Blazor per uno sviluppatore Web Form
 
Multi-Device Hybrid Apps con Visual Studio e Apache Cordova
Multi-Device Hybrid Apps con Visual Studio e Apache CordovaMulti-Device Hybrid Apps con Visual Studio e Apache Cordova
Multi-Device Hybrid Apps con Visual Studio e Apache Cordova
 
Maven: Convention over Configuration
Maven: Convention over ConfigurationMaven: Convention over Configuration
Maven: Convention over Configuration
 
AngularJS – Reinventare le applicazioni web
AngularJS – Reinventare le applicazioni webAngularJS – Reinventare le applicazioni web
AngularJS – Reinventare le applicazioni web
 
Christmas greetings cards with blazor
Christmas greetings cards with blazorChristmas greetings cards with blazor
Christmas greetings cards with blazor
 
Training Signal Webtrends
Training Signal WebtrendsTraining Signal Webtrends
Training Signal Webtrends
 
Cosa c'è di nuovo in asp.net core 2 0
Cosa c'è di nuovo in asp.net core 2 0Cosa c'è di nuovo in asp.net core 2 0
Cosa c'è di nuovo in asp.net core 2 0
 
Integrazione con Visual Studio Online
Integrazione con Visual Studio OnlineIntegrazione con Visual Studio Online
Integrazione con Visual Studio Online
 
Wasm and Blazor CDays keynote
Wasm and Blazor CDays keynoteWasm and Blazor CDays keynote
Wasm and Blazor CDays keynote
 
Sviluppo Web con React e Delphi - Seminario Delphi Day 2016, Piacenza
Sviluppo Web con React e Delphi - Seminario Delphi Day 2016, PiacenzaSviluppo Web con React e Delphi - Seminario Delphi Day 2016, Piacenza
Sviluppo Web con React e Delphi - Seminario Delphi Day 2016, Piacenza
 
Dal requisito all'implementazione @ CD2010
Dal requisito all'implementazione @ CD2010Dal requisito all'implementazione @ CD2010
Dal requisito all'implementazione @ CD2010
 
Angularjs
AngularjsAngularjs
Angularjs
 
Asp.Net MVC 5
Asp.Net MVC 5Asp.Net MVC 5
Asp.Net MVC 5
 

Similar a Selenium e testing web - di Alessio Benedetti

Qualità del Software
Qualità del SoftwareQualità del Software
Qualità del Software
Yeser Rema
 
Cert03 70-486 developing asp.net mvc 4 web applications
Cert03   70-486 developing asp.net mvc 4 web applicationsCert03   70-486 developing asp.net mvc 4 web applications
Cert03 70-486 developing asp.net mvc 4 web applications
DotNetCampus
 

Similar a Selenium e testing web - di Alessio Benedetti (20)

Single Page Applications
Single Page ApplicationsSingle Page Applications
Single Page Applications
 
Qualità del Software
Qualità del SoftwareQualità del Software
Qualità del Software
 
Tech Webinar: Come ottimizzare il workflow nello sviluppo di Web App
Tech Webinar: Come ottimizzare il workflow nello sviluppo di Web AppTech Webinar: Come ottimizzare il workflow nello sviluppo di Web App
Tech Webinar: Come ottimizzare il workflow nello sviluppo di Web App
 
Webinar: “Testing automatico: la scelta vincente per ottenere una riduzione d...
Webinar: “Testing automatico: la scelta vincente per ottenere una riduzione d...Webinar: “Testing automatico: la scelta vincente per ottenere una riduzione d...
Webinar: “Testing automatico: la scelta vincente per ottenere una riduzione d...
 
Cert03 70-486 developing asp.net mvc 4 web applications
Cert03   70-486 developing asp.net mvc 4 web applicationsCert03   70-486 developing asp.net mvc 4 web applications
Cert03 70-486 developing asp.net mvc 4 web applications
 
Xamarin Test Cloud
Xamarin Test CloudXamarin Test Cloud
Xamarin Test Cloud
 
Automated UI testing for iOs and Android mobile apps
Automated UI testing for iOs and Android mobile appsAutomated UI testing for iOs and Android mobile apps
Automated UI testing for iOs and Android mobile apps
 
CMS - Analisi Vulnerabilità
CMS - Analisi VulnerabilitàCMS - Analisi Vulnerabilità
CMS - Analisi Vulnerabilità
 
Progetto e implementazione di una pipeline di sviluppo software con tecnologi...
Progetto e implementazione di una pipeline di sviluppo software con tecnologi...Progetto e implementazione di una pipeline di sviluppo software con tecnologi...
Progetto e implementazione di una pipeline di sviluppo software con tecnologi...
 
Neoload webinar-24_07
Neoload webinar-24_07Neoload webinar-24_07
Neoload webinar-24_07
 
Tech Webinar: Test e2e per AngularJS e non solo
Tech Webinar: Test e2e per AngularJS e non soloTech Webinar: Test e2e per AngularJS e non solo
Tech Webinar: Test e2e per AngularJS e non solo
 
ASP.NET MVC: Andare oltre il 100% (Web@work)
ASP.NET MVC: Andare oltre il 100% (Web@work)ASP.NET MVC: Andare oltre il 100% (Web@work)
ASP.NET MVC: Andare oltre il 100% (Web@work)
 
Designing with microservices - Daniele Mondello
Designing with microservices - Daniele MondelloDesigning with microservices - Daniele Mondello
Designing with microservices - Daniele Mondello
 
OpenDevSecOps 2019 - Open devsecops un caso di studio
OpenDevSecOps 2019 - Open devsecops un caso di studioOpenDevSecOps 2019 - Open devsecops un caso di studio
OpenDevSecOps 2019 - Open devsecops un caso di studio
 
SUE AGILE Framework (Italiano)
SUE AGILE Framework (Italiano)SUE AGILE Framework (Italiano)
SUE AGILE Framework (Italiano)
 
Azure dayroma java, il lato oscuro del cloud
Azure dayroma   java, il lato oscuro del cloudAzure dayroma   java, il lato oscuro del cloud
Azure dayroma java, il lato oscuro del cloud
 
Blazor ha vinto? Storie di casi reali
Blazor ha vinto? Storie di casi realiBlazor ha vinto? Storie di casi reali
Blazor ha vinto? Storie di casi reali
 
Asp.Net MVC 2 :: VS 2010 Community Tour
Asp.Net MVC 2 :: VS 2010 Community TourAsp.Net MVC 2 :: VS 2010 Community Tour
Asp.Net MVC 2 :: VS 2010 Community Tour
 
Niccolò Becchi: Introduzione a GWT
Niccolò Becchi: Introduzione a GWTNiccolò Becchi: Introduzione a GWT
Niccolò Becchi: Introduzione a GWT
 
Thesis
ThesisThesis
Thesis
 

Más de Giuneco S.r.l

Más de Giuneco S.r.l (6)

GraphQL in .Net Core - di Lorenzo Zarone
GraphQL in .Net Core - di Lorenzo ZaroneGraphQL in .Net Core - di Lorenzo Zarone
GraphQL in .Net Core - di Lorenzo Zarone
 
Variable Fonts - di Jessica Risica
Variable Fonts - di Jessica RisicaVariable Fonts - di Jessica Risica
Variable Fonts - di Jessica Risica
 
Testi per il web - di Elena Granchi
Testi per il web - di Elena GranchiTesti per il web - di Elena Granchi
Testi per il web - di Elena Granchi
 
Risolvi i tuoi problemi di sviluppo con agilità - di Stefano Brocchi
Risolvi i tuoi problemi di sviluppo con agilità - di Stefano BrocchiRisolvi i tuoi problemi di sviluppo con agilità - di Stefano Brocchi
Risolvi i tuoi problemi di sviluppo con agilità - di Stefano Brocchi
 
Svelte js - di Mattia Bonanni
Svelte js - di Mattia BonanniSvelte js - di Mattia Bonanni
Svelte js - di Mattia Bonanni
 
Unit Test di Gabriele Seroni
Unit Test di Gabriele SeroniUnit Test di Gabriele Seroni
Unit Test di Gabriele Seroni
 

Selenium e testing web - di Alessio Benedetti

  • 2. Introduzione • Selenium è un framework open-source per l'automazione e il testing di applicazioni web, permette di controllare in remoto le istanze del browser ed emulare l'interazione di un utente • Utilizzando questo framework è possibile automatizzare i test web che altrimenti dovrebbero essere eseguiti da un utente umano • Selenium fornisce supporto a diversi linguaggi di programmazione: Java, Python, C#, Ruby, Javascript, Kotlin • Selenium è attualmente utilizzato nella produzione in aziende come Netflix, Google, HubSpot, Fitbit e altre
  • 4. Selenium IDE • Uno strumento utilizzabile per sviluppare i casi di test Selenium. • È un'estensione di Chrome e Firefox di facile utilizzo • Registra le azioni degli utenti nel browser, utilizzando i comandi Selenium esistenti, con parametri definiti dal contesto di quell'elemento • Risparmio di tempo se si vuole implementare test senza utilizzare linguaggi di programmazione • Uso di sintassi specifica per definire script Selenium
  • 5. Selenium GRID • Selenium Grid consente l'esecuzione di script WebDriver su macchine remote (virtuali o reali) instradando i comandi inviati dal client alle istanze del browser remoto • Metodo semplice per eseguire test in parallelo su più macchine • Gestione centralizzata delle diverse versioni di browser e configurazioni di browser (invece che in ogni singolo test) • Non gestisce l'infrastruttura di un progetto quindi potrebbe non soddisfare esigenze specifiche
  • 6. Selenium WebDriver • Fornisce un protocollo cablato indipendente dalla piattaforma e dalla lingua per consentire ai programmi fuori processo di istruire il comportamento dei browser web • Fornisce funzioni per manipolare gli elementi DOM nei documenti web e per controllare il comportamento di un programma utente • Il WebDriver guida un browser come farebbe un utente, localmente sulla macchina dove viene installato o in remoto • Controlla il browser a livello del sistema operativo piuttosto che utilizzare comandi JavaScript
  • 7. Selenium WebDriver • Ogni browser è supportato da una specifica implementazione WebDriver (ChromeDriver, Mozzilla GeckoDriver, Opera, Edge driver, HtmlUnitDriver ecc..) • WebDriver trasmette i comandi al browser tramite il driver e riceve le informazioni tramite lo stesso percorso. • È inteso principalmente per consentire agli autori di applicazioni web di scrivere test che automatizzino i processi utente senza dover accedere manualmente all'applicazione web
  • 8. Cosa serve? • Selenium 3 (WebDriver): Nuget .NET, C# • Driver per browser: da installare sulla macchina a seconda del browser utilizzato (tabella sopra)
  • 11. Migliorare i test e l'automazione • Report dei risultati – Di base Selenium non si occupa di report ma è possibile utilizzare framework di testing per generarli (Es. xUnit result su AzureDevOps) • Page Object design pattern – Classe che funge da interfaccia per una pagina del tuo SUT (subject under test) – L'oggetto conterrà la rappresentazione della pagina e i servizi che la pagina fornisce tramite metodi – L'oggetto non deve contenere nessun codice relativo a ciò che viene testato
  • 12. Migliorare i test e l'automazione • Assicurarsi che i test siano isolati l'uno dall'altro – Es. instanziare un WebDriver per test • Mock dei servizi esterni, se utilizzati per interfacciarsi con altre componenti dell'applicazione (es. API o Database) • Utilizzare WebDriverWait invece di altri metodi per restare in attesa su thread. Il metodo wait.Until fornisce molteplici eventi su cui effettuare il controllo di attesa ed è gestito dal framework • In generale utilizzare le best-pratice tipiche dello sviluppo orientato ai test
  • 14. Criticità del framework • CAPTCHAs non testabili, disabilitarli durante i test o aggiungere un hook per consentire ai test di bypassarlo • Autenticazione a 2 fattori • Download dei file – l'API non mostra l'avanzamento del download • Ordine di esecuzione dei test – i test dovrebbero essere in grado di essere eseguiti in qualsiasi ordine • Non è un framework ottimizzato per gli stress test di performace di un applicazione web
  • 15. Vantaggi e svantaggi • PRO: – Selenium gratuito e open-source – Integrabile con DevOps o CI/CD – Mobile testing (plugin: Appium, Selendroid, Robotium, ios-driver) – Supporto a diversi lignuaggi, piattaforme e browsers • CONTRO: – Costoso implementare testing web – Cambio frequente dell UI significa riscrivere i test – Nessun report dei risultati di test (Anche se esitono soluzioni di terze parti) – No confronto tra immagini built-in (si con plugin esterni)
  • 17. Contatti • https://www.giuneco.tech/ • https://www.facebook.com/Giuneco • https://www.linkedin.com/company/giuneco-s-r-l-/ • https://www.instagram.com/giuneco