SlideShare une entreprise Scribd logo
CREATIVE COMMONS
                                       Gwendal - sojavawest@gmail.com - Licence
TESTS FONCTIONNELS
AUTOMATISÉS
SELENIUM 2 : WebDriver & Selenium RC
SOMMAIRE
   Application témoin – Spring ROO
     Présentation
     Atouts




                                                   Licence CREATIVE COMMONS
                                                   Gwendal - sojavawest@gmail.com -
   Un peu d’histoire
     Selenium Remote Control
     Selenium 2 & WebDriver

   Suite d’outils Selenium
     Selenium IDE
     Selenium server

   Exécution des tests fonctionnels automatisés
     Selenium server
     Junit
     Intégration Maven
Gwendal - sojavawest@gmail.com - Licence
CREATIVE COMMONS
                        APPLICATION TÉMOIN
                                             Spring ROO
SPRING ROO
  Framework haute productivité qui permet :
 de produire rapidement un modèle d’architecture




                                                              Licence CREATIVE COMMONS
                                                              Gwendal - sojavawest@gmail.com -
applicative, basé sur des technologies couramment
employées (Maven, Spring core/MVC/security, JPA,
REST…)
  faire de la génération de code (ou Scaffholding) à
partir du modèle objet (approche « model first ») jusqu’à
la couche de présentation.
Les objets métiers, ou entités, sont des objets Java (POJO)
portant des annotations JPA pour décrire le mapping
objet / relationnel.

    POJO : Plain Old Java Object
    JPA : Java Persistence Annotation
ATOUTS
o   Particulièrement adapté pour du prototypage rapide à partir d’un
modèle objet
o   Très bien documenté




                                                                                  Licence CREATIVE COMMONS
                                                                                  Gwendal - sojavawest@gmail.com -
o   Environnement de développement adapté et complet
o   Courbe d’apprentissage très courte
o   Les modèles de page, produits avec Tiles et des feuilles de style CSS, sont
parfaitement personnalisables,
o   Grâce à la gestion d’extensions, facilite l’accès à des technologies telles
que : Solr, Google App Engine, Spring Mobile & User Agent Analysis,
Selenium…
o   Spring ROO fournit une méthodologie pas à pas pour débrancher vers
une application J2E / Spring standard.



  Petit bémol : Utilise beaucoup l’AOP. Pourrait-être difficile à maintenir
sans un environnement adapté tel que Spring Tool Suite.
Gwendal - sojavawest@gmail.com - Licence
CREATIVE COMMONS
                                            Selenium RC versus WebDriver
                        UN PEU D’HISTOIRE
SELENIUM 1 - REMOTE CONTROL
o   Bibliothèque JavaScript permettant de simuler des
interactions avec une application Web
o Cette bibliothèque devint le Framework Selenium Core




                                                            Licence CREATIVE COMMONS
                                                            Gwendal - sojavawest@gmail.com -
, sur lequel se base Selenium Remote Control et Selenium
IDE.
o Le JavaScript entraine certaines limitations, notamment
du fait des restrictions de sécurité imposées par les
navigateurs mais aussi, à cause de la complexité
grandissante des applications Web, utilisant les
fonctionnalités fournies par les navigateurs nouvelle
génération.
o En 2008, fusion de Selenium et de WebDriver
SELENIUM 2 & WEBDRIVER
o  WebDriver est un projet initialement réalisé par un
ingénieur de chez Google pour piloter directement un
navigateur.




                                                               Licence CREATIVE COMMONS
                                                               Gwendal - sojavawest@gmail.com -
o Cet outil permet d’interagir avec le navigateur, tel
qu’un utilisateur humain le ferait, et sans les restrictions
imposés par la technologie JavaScripts.
o Le projet Selenium RC est pour le moment maintenu
pour des raisons de rétrocompatibilité et surtout en mode
maintenance. Il ne sera plus maintenu à l’avenir.
Gwendal - sojavawest@gmail.com - Licence
CREATIVE COMMONS
                        SUITE D’OUTILS SELENIUM
                                                  Présentation
SELENIUM IDE

   Selenium IDE est un environnement de développement
pour la réalisation de scripts de test, développé sous




                                                               Licence CREATIVE COMMONS
                                                               Gwendal - sojavawest@gmail.com -
forme d’extension Firefox.
   Il permet entre autre :
 d’enregistrer les scripts simplement en effectuant le test
dans le navigateur.
 de rédiger les étapes du script à l’aide des outils
avancés de l’éditeur             (autocomplétion, menus
contextuels…).
SELENIUM SERVER

   Selenium server est indispensable pour lancer les tests
sur une machine distance mais également pour lancer




                                                             Licence CREATIVE COMMONS
                                                             Gwendal - sojavawest@gmail.com -
une suite de test HTML en local et sur les différents
navigateurs supportés.
   II est rétrocompatible avec les tests implémentés sous
Selenium Remote Control.
CREATIVE COMMONS
                                   Gwendal - sojavawest@gmail.com - Licence
RÉALISATION DES TESTS
FONCTIONNELS
Enregistrement VS Implémentation
SELENIUM IDE
   Les « + »
      Réalisation rapide de scripts de test
      Scripts de test aisés à maintenir




                                                                    Licence CREATIVE COMMONS
                                                                    Gwendal - sojavawest@gmail.com -
      Rapports d’exécution esthétiques et exploitables en
       l’état
      Facile à échanger avec les équipes de tests
   Les « – »
      Scripts de test non variabilisables
      Incompatible avec les composants Flash, Java
       (Applet)…
      Intégration dans l’environnement de développement
       par l’intermédiaire d’un outil de « build », tel que Maven
       (voire batchs)
LANGAGE DE PROGRAMMATION SUPPORTÉ
   Les « + »
      Plus robuste et plus homogènes que les tests HTML dans
       un contexte projet




                                                                Licence CREATIVE COMMONS
                                                                Gwendal - sojavawest@gmail.com -
      Variabilisables / maîtrise des saisies / supporte les
       conditions et les itérations offert
      Accès à toutes les API supportées par le langage
      Intégration continue
   Les « – »
      Charge de développement plus importante (environ 20-
       25 % PTU)
      Plus dur à maintenir dans la durée
      Moins portable
      Ne permet pas un échange avec les équipes de tests
RECOMMANDATIONS
Les équipes Selenium recommandent l’écriture des scripts de
  test dans le langage de développement choisi pour le
  projet, pour plus de robustesse et de stabilité.




                                                                 Licence CREATIVE COMMONS
                                                                 Gwendal - sojavawest@gmail.com -
Cependant, pour des tests simples, pour des tests « manuels »,
 pour des scripts de test destinés à une population autre
 que des développeurs, les tests HTML peuvent être
 appropriés.
Pour des tests implémentés en Java, le design pattern
  recommandé est celui implémenté ici :
  http://code.google.com/p/selenium/wiki/PageObjects
Gwendal - sojavawest@gmail.com - Licence
CREATIVE COMMONS
                                  Intégration Maven
                        ANNEXES
MAVEN SELENIUM PLUGIN
Permet de démarrer Selenium server et de lancer une suite de tests HTML.
   mvn selenium:selenese




                                                                                              Licence CREATIVE COMMONS
                                                                                              Gwendal - sojavawest@gmail.com -
MAVEN SUREFIRE PLUGIN
Utiliser pendant la phase de test pour exécuter les tests unitaires et générer les rapports
     d’erreur.
   mvn surefire:test



MAVEN FAILSAFE PLUGIN
Surcouche de Surefie destiné à gérer spécifiquement les tests d’intégration
   mvn failsafe:integration-test
   mvn failsafe:verify
Gwendal - sojavawest@gmail.com - Licence
CREATIVE COMMONS
                                  Navigateurs et plateformes supportés
                        ANNEXES
SELENIUM-WEBDRIVER¶

   Google Chrome 12.0.712.0+
    Internet Explorer 6, 7, 8, 9 - 32 and 64-bit where applicable




                                                                    Licence CREATIVE COMMONS
                                                                    Gwendal - sojavawest@gmail.com -


   Firefox 3.0, 3.5, 3.6, 4.0, 5.0, 6, 7
   Opera 11.5+
   HtmlUnit 2.9
   Android – 2.3+ for phones and tablets (devices & emulators)
   iOS 3+ for phones (devices & emulators) and 3.2+ for tablets
    (devices & emulators)
SELENIUM 1.0 AND SELENIUM-RC
Browser         Selenium IDE                Selenium 1 (RC)              Operating Systems
Firefox 3.x     Record and playback tests   Start browser, run tests     Windows, Linux, Mac
Firefox 3       Record and playback tests   Start browser, run tests     Windows, Linux, Mac
Firefox 2       Record and playback tests   Start browser, run tests     Windows, Linux, Mac




                                                                                               Licence CREATIVE COMMONS
                                                                                               Gwendal - sojavawest@gmail.com -
                Test execution only via
IE 8                                        Start browser, run tests     Windows
                Selenium RC*
                Test execution only via
IE 7                                        Start browser, run tests     Windows
                Selenium RC*
                Test execution only via
IE 6                                        Start browser, run tests     Windows
                Selenium RC*
                Test execution only via
Safari 4                                    Start browser, run tests     Windows, Mac
                Selenium RC
                Test execution only via
Safari 3                                    Start browser, run tests     Windows, Mac
                Selenium RC
                Test execution only via
Safari 2                                    Start browser, run tests     Windows, Mac
                Selenium RC
                Test execution only via
Opera 10                                    Start browser, run tests     Windows, Linux, Mac
                Selenium RC
                Test execution only via
Opera 9                                     Start browser, run tests     Windows, Linux, Mac
                Selenium RC
                Test execution only via
Opera 8                                     Start browser, run tests     Windows, Linux, Mac
                Selenium RC
                Test execution only via
Google Chrome                               Start browser, run tests     Windows, Linux, Mac
                Selenium RC
                Test execution only via
Others                                      Partial support possible**   As applicable
                Selenium RC
Gwendal - sojavawest@gmail.com - Licence
CREATIVE COMMONS
                        ANNEXES
                                  Spring ROO
EXEMPLES DE COMMANDES¶
roo> hint
roo> jpa setup --provider HIBERNATE --database HYPERSONIC_IN_MEMORY
roo> entity jpa --class ~.Timer --testAutomatically




                                                                      Licence CREATIVE COMMONS
                                                                      Gwendal - sojavawest@gmail.com -
~.Timer roo> field string --fieldName message --notNull
roo> web mvc all --package ~.web
roo> selenium test --controller ~.web.TimerController
roo> web mvc scaffold --class com.foo.web.PersonController
roo> quit
Gwendal - sojavawest@gmail.com - Licence
CREATIVE COMMONS
                        ANNEXES
                                  Ressources
LIENS
http://static.springsource.org/spring-roo/reference/html/index.html
http://blog.xebia.fr/2011/02/18/automatiser-les-tests-selenium-avec-maven/
http://www.hascode.com/2012/03/selenium-webdriver-selenium-server-and-




                                                                             Licence CREATIVE COMMONS
                                                                             Gwendal - sojavawest@gmail.com -
pageobjects-by-example/
docs.seleniumhq.org/docs/01_introducing_selenium.jsp

Contenu connexe

Tendances

Netbeans Install
Netbeans InstallNetbeans Install
Netbeans Install
Dghaies Jihed , PSM I Ⓡ
 
Déploiement d'applications Java EE
Déploiement d'applications Java EEDéploiement d'applications Java EE
Déploiement d'applications Java EE
javalabsf
 
Mon environnement de travail a-t-il encore un avenir ?
Mon environnement de travail a-t-il encore un avenir ?Mon environnement de travail a-t-il encore un avenir ?
Mon environnement de travail a-t-il encore un avenir ?
Frederic Dewinne
 
20091020 - Normandy Jug - Builders Battle
20091020 - Normandy Jug - Builders Battle20091020 - Normandy Jug - Builders Battle
20091020 - Normandy Jug - Builders Battle
Arnaud Héritier
 
Présentation Maven
Présentation MavenPrésentation Maven
Présentation MavenSOAT
 
Apache Maven 3
Apache Maven 3Apache Maven 3
Apache Maven 3
Maxime Gréau
 
Spring boot anane maryem ben aziza syrine
Spring boot anane maryem ben aziza syrineSpring boot anane maryem ben aziza syrine
Spring boot anane maryem ben aziza syrine
Syrine Ben aziza
 
Intégration continue transco
Intégration continue transcoIntégration continue transco
Intégration continue transcolaurent_opnworks
 
Les nouveautés du Framework .NET 4.5
Les nouveautés du Framework .NET 4.5Les nouveautés du Framework .NET 4.5
Les nouveautés du Framework .NET 4.5
Microsoft
 
JCertif 2012 : Maven par la pratique
JCertif 2012 : Maven par la pratiqueJCertif 2012 : Maven par la pratique
JCertif 2012 : Maven par la pratique
Rossi Oddet
 
20090615 - Ch'ti JUG - Apache Maven
20090615 - Ch'ti JUG - Apache Maven20090615 - Ch'ti JUG - Apache Maven
20090615 - Ch'ti JUG - Apache Maven
Arnaud Héritier
 
Princesse CI au pays des tests
Princesse CI au pays des testsPrincesse CI au pays des tests
Princesse CI au pays des tests
Hubert Lenoir
 
Architecture java j2 ee a partager
Architecture java j2 ee a partagerArchitecture java j2 ee a partager
Architecture java j2 ee a partager
aliagadir
 
Installation et Configuration ee JDK et de Tomcat
Installation et Configuration ee JDK et de TomcatInstallation et Configuration ee JDK et de Tomcat
Installation et Configuration ee JDK et de Tomcat
Mohamed Ben Bouzid
 
20080311 - Paris Vi Master STL TA - Initiation Maven
20080311 - Paris Vi Master STL TA - Initiation Maven20080311 - Paris Vi Master STL TA - Initiation Maven
20080311 - Paris Vi Master STL TA - Initiation Maven
Arnaud Héritier
 
JBoss - chapitre JMX
JBoss - chapitre JMXJBoss - chapitre JMX
JBoss - chapitre JMX
Franck SIMON
 
20081113 - Nantes Jug - Apache Maven
20081113 - Nantes Jug - Apache Maven20081113 - Nantes Jug - Apache Maven
20081113 - Nantes Jug - Apache Maven
Arnaud Héritier
 
Play Framework
Play FrameworkPlay Framework
Play FrameworkArmaklan
 

Tendances (20)

Netbeans Install
Netbeans InstallNetbeans Install
Netbeans Install
 
Déploiement d'applications Java EE
Déploiement d'applications Java EEDéploiement d'applications Java EE
Déploiement d'applications Java EE
 
Mon environnement de travail a-t-il encore un avenir ?
Mon environnement de travail a-t-il encore un avenir ?Mon environnement de travail a-t-il encore un avenir ?
Mon environnement de travail a-t-il encore un avenir ?
 
20091020 - Normandy Jug - Builders Battle
20091020 - Normandy Jug - Builders Battle20091020 - Normandy Jug - Builders Battle
20091020 - Normandy Jug - Builders Battle
 
Présentation Maven
Présentation MavenPrésentation Maven
Présentation Maven
 
Apache Maven 3
Apache Maven 3Apache Maven 3
Apache Maven 3
 
Spring boot anane maryem ben aziza syrine
Spring boot anane maryem ben aziza syrineSpring boot anane maryem ben aziza syrine
Spring boot anane maryem ben aziza syrine
 
Intégration continue transco
Intégration continue transcoIntégration continue transco
Intégration continue transco
 
Les nouveautés du Framework .NET 4.5
Les nouveautés du Framework .NET 4.5Les nouveautés du Framework .NET 4.5
Les nouveautés du Framework .NET 4.5
 
Sonar-Hodson-Maven
Sonar-Hodson-MavenSonar-Hodson-Maven
Sonar-Hodson-Maven
 
JCertif 2012 : Maven par la pratique
JCertif 2012 : Maven par la pratiqueJCertif 2012 : Maven par la pratique
JCertif 2012 : Maven par la pratique
 
20090615 - Ch'ti JUG - Apache Maven
20090615 - Ch'ti JUG - Apache Maven20090615 - Ch'ti JUG - Apache Maven
20090615 - Ch'ti JUG - Apache Maven
 
Princesse CI au pays des tests
Princesse CI au pays des testsPrincesse CI au pays des tests
Princesse CI au pays des tests
 
Architecture java j2 ee a partager
Architecture java j2 ee a partagerArchitecture java j2 ee a partager
Architecture java j2 ee a partager
 
Installation et Configuration ee JDK et de Tomcat
Installation et Configuration ee JDK et de TomcatInstallation et Configuration ee JDK et de Tomcat
Installation et Configuration ee JDK et de Tomcat
 
Normandy JUG integration Continue
Normandy JUG integration ContinueNormandy JUG integration Continue
Normandy JUG integration Continue
 
20080311 - Paris Vi Master STL TA - Initiation Maven
20080311 - Paris Vi Master STL TA - Initiation Maven20080311 - Paris Vi Master STL TA - Initiation Maven
20080311 - Paris Vi Master STL TA - Initiation Maven
 
JBoss - chapitre JMX
JBoss - chapitre JMXJBoss - chapitre JMX
JBoss - chapitre JMX
 
20081113 - Nantes Jug - Apache Maven
20081113 - Nantes Jug - Apache Maven20081113 - Nantes Jug - Apache Maven
20081113 - Nantes Jug - Apache Maven
 
Play Framework
Play FrameworkPlay Framework
Play Framework
 

Similaire à Tests ihm automatises avec selenium

Octo Technology - Refcard Tests Web front-end
Octo Technology - Refcard Tests Web front-endOcto Technology - Refcard Tests Web front-end
Octo Technology - Refcard Tests Web front-end
François Petitit
 
Octo RefCard test front-end
Octo RefCard test front-endOcto RefCard test front-end
Octo RefCard test front-end
Clément Dubois
 
At2008 Grenoble Hugonnet Sanlaville Public
At2008 Grenoble Hugonnet Sanlaville PublicAt2008 Grenoble Hugonnet Sanlaville Public
At2008 Grenoble Hugonnet Sanlaville Public
Emmanuel Hugonnet
 
Les nouveautés de Visual Studio 11
Les nouveautés de Visual Studio 11Les nouveautés de Visual Studio 11
Les nouveautés de Visual Studio 11
Microsoft
 
JFTL-2018-Comment-mettre-en-place-des-plateformes-de-test-grâce-à-Docker.pdf
JFTL-2018-Comment-mettre-en-place-des-plateformes-de-test-grâce-à-Docker.pdfJFTL-2018-Comment-mettre-en-place-des-plateformes-de-test-grâce-à-Docker.pdf
JFTL-2018-Comment-mettre-en-place-des-plateformes-de-test-grâce-à-Docker.pdf
qsdqsd4
 
Kalistick MixIT dev@cloud
Kalistick MixIT dev@cloudKalistick MixIT dev@cloud
Kalistick MixIT dev@cloud
kalistick
 
TechDays 2012 - Windows Azure - ALM
TechDays 2012 - Windows Azure - ALMTechDays 2012 - Windows Azure - ALM
TechDays 2012 - Windows Azure - ALM
Jason De Oliveira
 
SharePoint 2010 & Team Foundation Server
SharePoint 2010 & Team Foundation ServerSharePoint 2010 & Team Foundation Server
SharePoint 2010 & Team Foundation ServerPhilippe Sentenac
 
Gérez votre laboratoire de tests avec Visual Studio 2010 Lab Management
Gérez votre laboratoire de tests avec Visual Studio 2010 Lab ManagementGérez votre laboratoire de tests avec Visual Studio 2010 Lab Management
Gérez votre laboratoire de tests avec Visual Studio 2010 Lab Management
Microsoft
 
Soiree Maven 2
Soiree Maven 2Soiree Maven 2
Soiree Maven 2
Laurent RUAUD
 
RefCard Tests sur tous les fronts
RefCard Tests sur tous les frontsRefCard Tests sur tous les fronts
RefCard Tests sur tous les fronts
OCTO Technology
 
Soirée du Test Logiciel - Mise en place d’une plateforme de test automatisé a...
Soirée du Test Logiciel - Mise en place d’une plateforme de test automatisé a...Soirée du Test Logiciel - Mise en place d’une plateforme de test automatisé a...
Soirée du Test Logiciel - Mise en place d’une plateforme de test automatisé a...
TelecomValley
 
JFTL-2018-Comment-mettre-en-place-des-plateformes-de-test-gr__ce-__-Docker.pptx
JFTL-2018-Comment-mettre-en-place-des-plateformes-de-test-gr__ce-__-Docker.pptxJFTL-2018-Comment-mettre-en-place-des-plateformes-de-test-gr__ce-__-Docker.pptx
JFTL-2018-Comment-mettre-en-place-des-plateformes-de-test-gr__ce-__-Docker.pptx
AnisSalhi3
 
Les tests fonctionnels avec Visual Studio 2010
Les tests fonctionnels avec Visual Studio 2010Les tests fonctionnels avec Visual Studio 2010
Les tests fonctionnels avec Visual Studio 2010
Microsoft
 
Objet direct 2013-05-11 Microsoft ALM 2013 Software Factory
Objet direct 2013-05-11 Microsoft ALM 2013 Software FactoryObjet direct 2013-05-11 Microsoft ALM 2013 Software Factory
Objet direct 2013-05-11 Microsoft ALM 2013 Software Factory
FactoVia
 
La gouvernance, ou comment rapprocher les équipes de développement et d'infra...
La gouvernance, ou comment rapprocher les équipes de développement et d'infra...La gouvernance, ou comment rapprocher les équipes de développement et d'infra...
La gouvernance, ou comment rapprocher les équipes de développement et d'infra...
PimpMySharePoint
 
CloudUnit le PaaS par TreeptiK
CloudUnit le PaaS par TreeptiKCloudUnit le PaaS par TreeptiK
CloudUnit le PaaS par TreeptiKAmico Fabien
 
La gouvernance, ou comment rapprocher les équipes de développement et d'infra...
La gouvernance, ou comment rapprocher les équipes de développement et d'infra...La gouvernance, ou comment rapprocher les équipes de développement et d'infra...
La gouvernance, ou comment rapprocher les équipes de développement et d'infra...PimpMySharePoint
 
HTML5 et Internet Explorer 9, est-ce réellement compatible?
HTML5 et Internet Explorer 9, est-ce réellement compatible?HTML5 et Internet Explorer 9, est-ce réellement compatible?
HTML5 et Internet Explorer 9, est-ce réellement compatible?
Frédéric Harper
 
[Scrum Day 2011] Outillage Agile dans un environnement Microsoft
[Scrum Day 2011] Outillage Agile dans un environnement Microsoft[Scrum Day 2011] Outillage Agile dans un environnement Microsoft
[Scrum Day 2011] Outillage Agile dans un environnement MicrosoftChristophe HERAL
 

Similaire à Tests ihm automatises avec selenium (20)

Octo Technology - Refcard Tests Web front-end
Octo Technology - Refcard Tests Web front-endOcto Technology - Refcard Tests Web front-end
Octo Technology - Refcard Tests Web front-end
 
Octo RefCard test front-end
Octo RefCard test front-endOcto RefCard test front-end
Octo RefCard test front-end
 
At2008 Grenoble Hugonnet Sanlaville Public
At2008 Grenoble Hugonnet Sanlaville PublicAt2008 Grenoble Hugonnet Sanlaville Public
At2008 Grenoble Hugonnet Sanlaville Public
 
Les nouveautés de Visual Studio 11
Les nouveautés de Visual Studio 11Les nouveautés de Visual Studio 11
Les nouveautés de Visual Studio 11
 
JFTL-2018-Comment-mettre-en-place-des-plateformes-de-test-grâce-à-Docker.pdf
JFTL-2018-Comment-mettre-en-place-des-plateformes-de-test-grâce-à-Docker.pdfJFTL-2018-Comment-mettre-en-place-des-plateformes-de-test-grâce-à-Docker.pdf
JFTL-2018-Comment-mettre-en-place-des-plateformes-de-test-grâce-à-Docker.pdf
 
Kalistick MixIT dev@cloud
Kalistick MixIT dev@cloudKalistick MixIT dev@cloud
Kalistick MixIT dev@cloud
 
TechDays 2012 - Windows Azure - ALM
TechDays 2012 - Windows Azure - ALMTechDays 2012 - Windows Azure - ALM
TechDays 2012 - Windows Azure - ALM
 
SharePoint 2010 & Team Foundation Server
SharePoint 2010 & Team Foundation ServerSharePoint 2010 & Team Foundation Server
SharePoint 2010 & Team Foundation Server
 
Gérez votre laboratoire de tests avec Visual Studio 2010 Lab Management
Gérez votre laboratoire de tests avec Visual Studio 2010 Lab ManagementGérez votre laboratoire de tests avec Visual Studio 2010 Lab Management
Gérez votre laboratoire de tests avec Visual Studio 2010 Lab Management
 
Soiree Maven 2
Soiree Maven 2Soiree Maven 2
Soiree Maven 2
 
RefCard Tests sur tous les fronts
RefCard Tests sur tous les frontsRefCard Tests sur tous les fronts
RefCard Tests sur tous les fronts
 
Soirée du Test Logiciel - Mise en place d’une plateforme de test automatisé a...
Soirée du Test Logiciel - Mise en place d’une plateforme de test automatisé a...Soirée du Test Logiciel - Mise en place d’une plateforme de test automatisé a...
Soirée du Test Logiciel - Mise en place d’une plateforme de test automatisé a...
 
JFTL-2018-Comment-mettre-en-place-des-plateformes-de-test-gr__ce-__-Docker.pptx
JFTL-2018-Comment-mettre-en-place-des-plateformes-de-test-gr__ce-__-Docker.pptxJFTL-2018-Comment-mettre-en-place-des-plateformes-de-test-gr__ce-__-Docker.pptx
JFTL-2018-Comment-mettre-en-place-des-plateformes-de-test-gr__ce-__-Docker.pptx
 
Les tests fonctionnels avec Visual Studio 2010
Les tests fonctionnels avec Visual Studio 2010Les tests fonctionnels avec Visual Studio 2010
Les tests fonctionnels avec Visual Studio 2010
 
Objet direct 2013-05-11 Microsoft ALM 2013 Software Factory
Objet direct 2013-05-11 Microsoft ALM 2013 Software FactoryObjet direct 2013-05-11 Microsoft ALM 2013 Software Factory
Objet direct 2013-05-11 Microsoft ALM 2013 Software Factory
 
La gouvernance, ou comment rapprocher les équipes de développement et d'infra...
La gouvernance, ou comment rapprocher les équipes de développement et d'infra...La gouvernance, ou comment rapprocher les équipes de développement et d'infra...
La gouvernance, ou comment rapprocher les équipes de développement et d'infra...
 
CloudUnit le PaaS par TreeptiK
CloudUnit le PaaS par TreeptiKCloudUnit le PaaS par TreeptiK
CloudUnit le PaaS par TreeptiK
 
La gouvernance, ou comment rapprocher les équipes de développement et d'infra...
La gouvernance, ou comment rapprocher les équipes de développement et d'infra...La gouvernance, ou comment rapprocher les équipes de développement et d'infra...
La gouvernance, ou comment rapprocher les équipes de développement et d'infra...
 
HTML5 et Internet Explorer 9, est-ce réellement compatible?
HTML5 et Internet Explorer 9, est-ce réellement compatible?HTML5 et Internet Explorer 9, est-ce réellement compatible?
HTML5 et Internet Explorer 9, est-ce réellement compatible?
 
[Scrum Day 2011] Outillage Agile dans un environnement Microsoft
[Scrum Day 2011] Outillage Agile dans un environnement Microsoft[Scrum Day 2011] Outillage Agile dans un environnement Microsoft
[Scrum Day 2011] Outillage Agile dans un environnement Microsoft
 

Tests ihm automatises avec selenium

  • 1. CREATIVE COMMONS Gwendal - sojavawest@gmail.com - Licence TESTS FONCTIONNELS AUTOMATISÉS SELENIUM 2 : WebDriver & Selenium RC
  • 2. SOMMAIRE  Application témoin – Spring ROO  Présentation  Atouts Licence CREATIVE COMMONS Gwendal - sojavawest@gmail.com -  Un peu d’histoire  Selenium Remote Control  Selenium 2 & WebDriver  Suite d’outils Selenium  Selenium IDE  Selenium server  Exécution des tests fonctionnels automatisés  Selenium server  Junit  Intégration Maven
  • 3. Gwendal - sojavawest@gmail.com - Licence CREATIVE COMMONS APPLICATION TÉMOIN Spring ROO
  • 4. SPRING ROO Framework haute productivité qui permet :  de produire rapidement un modèle d’architecture Licence CREATIVE COMMONS Gwendal - sojavawest@gmail.com - applicative, basé sur des technologies couramment employées (Maven, Spring core/MVC/security, JPA, REST…)  faire de la génération de code (ou Scaffholding) à partir du modèle objet (approche « model first ») jusqu’à la couche de présentation. Les objets métiers, ou entités, sont des objets Java (POJO) portant des annotations JPA pour décrire le mapping objet / relationnel. POJO : Plain Old Java Object JPA : Java Persistence Annotation
  • 5. ATOUTS o Particulièrement adapté pour du prototypage rapide à partir d’un modèle objet o Très bien documenté Licence CREATIVE COMMONS Gwendal - sojavawest@gmail.com - o Environnement de développement adapté et complet o Courbe d’apprentissage très courte o Les modèles de page, produits avec Tiles et des feuilles de style CSS, sont parfaitement personnalisables, o Grâce à la gestion d’extensions, facilite l’accès à des technologies telles que : Solr, Google App Engine, Spring Mobile & User Agent Analysis, Selenium… o Spring ROO fournit une méthodologie pas à pas pour débrancher vers une application J2E / Spring standard.  Petit bémol : Utilise beaucoup l’AOP. Pourrait-être difficile à maintenir sans un environnement adapté tel que Spring Tool Suite.
  • 6. Gwendal - sojavawest@gmail.com - Licence CREATIVE COMMONS Selenium RC versus WebDriver UN PEU D’HISTOIRE
  • 7. SELENIUM 1 - REMOTE CONTROL o Bibliothèque JavaScript permettant de simuler des interactions avec une application Web o Cette bibliothèque devint le Framework Selenium Core Licence CREATIVE COMMONS Gwendal - sojavawest@gmail.com - , sur lequel se base Selenium Remote Control et Selenium IDE. o Le JavaScript entraine certaines limitations, notamment du fait des restrictions de sécurité imposées par les navigateurs mais aussi, à cause de la complexité grandissante des applications Web, utilisant les fonctionnalités fournies par les navigateurs nouvelle génération. o En 2008, fusion de Selenium et de WebDriver
  • 8. SELENIUM 2 & WEBDRIVER o WebDriver est un projet initialement réalisé par un ingénieur de chez Google pour piloter directement un navigateur. Licence CREATIVE COMMONS Gwendal - sojavawest@gmail.com - o Cet outil permet d’interagir avec le navigateur, tel qu’un utilisateur humain le ferait, et sans les restrictions imposés par la technologie JavaScripts. o Le projet Selenium RC est pour le moment maintenu pour des raisons de rétrocompatibilité et surtout en mode maintenance. Il ne sera plus maintenu à l’avenir.
  • 9. Gwendal - sojavawest@gmail.com - Licence CREATIVE COMMONS SUITE D’OUTILS SELENIUM Présentation
  • 10. SELENIUM IDE Selenium IDE est un environnement de développement pour la réalisation de scripts de test, développé sous Licence CREATIVE COMMONS Gwendal - sojavawest@gmail.com - forme d’extension Firefox. Il permet entre autre :  d’enregistrer les scripts simplement en effectuant le test dans le navigateur.  de rédiger les étapes du script à l’aide des outils avancés de l’éditeur (autocomplétion, menus contextuels…).
  • 11. SELENIUM SERVER Selenium server est indispensable pour lancer les tests sur une machine distance mais également pour lancer Licence CREATIVE COMMONS Gwendal - sojavawest@gmail.com - une suite de test HTML en local et sur les différents navigateurs supportés. II est rétrocompatible avec les tests implémentés sous Selenium Remote Control.
  • 12. CREATIVE COMMONS Gwendal - sojavawest@gmail.com - Licence RÉALISATION DES TESTS FONCTIONNELS Enregistrement VS Implémentation
  • 13. SELENIUM IDE  Les « + »  Réalisation rapide de scripts de test  Scripts de test aisés à maintenir Licence CREATIVE COMMONS Gwendal - sojavawest@gmail.com -  Rapports d’exécution esthétiques et exploitables en l’état  Facile à échanger avec les équipes de tests  Les « – »  Scripts de test non variabilisables  Incompatible avec les composants Flash, Java (Applet)…  Intégration dans l’environnement de développement par l’intermédiaire d’un outil de « build », tel que Maven (voire batchs)
  • 14. LANGAGE DE PROGRAMMATION SUPPORTÉ  Les « + »  Plus robuste et plus homogènes que les tests HTML dans un contexte projet Licence CREATIVE COMMONS Gwendal - sojavawest@gmail.com -  Variabilisables / maîtrise des saisies / supporte les conditions et les itérations offert  Accès à toutes les API supportées par le langage  Intégration continue  Les « – »  Charge de développement plus importante (environ 20- 25 % PTU)  Plus dur à maintenir dans la durée  Moins portable  Ne permet pas un échange avec les équipes de tests
  • 15. RECOMMANDATIONS Les équipes Selenium recommandent l’écriture des scripts de test dans le langage de développement choisi pour le projet, pour plus de robustesse et de stabilité. Licence CREATIVE COMMONS Gwendal - sojavawest@gmail.com - Cependant, pour des tests simples, pour des tests « manuels », pour des scripts de test destinés à une population autre que des développeurs, les tests HTML peuvent être appropriés. Pour des tests implémentés en Java, le design pattern recommandé est celui implémenté ici : http://code.google.com/p/selenium/wiki/PageObjects
  • 16. Gwendal - sojavawest@gmail.com - Licence CREATIVE COMMONS Intégration Maven ANNEXES
  • 17. MAVEN SELENIUM PLUGIN Permet de démarrer Selenium server et de lancer une suite de tests HTML.  mvn selenium:selenese Licence CREATIVE COMMONS Gwendal - sojavawest@gmail.com - MAVEN SUREFIRE PLUGIN Utiliser pendant la phase de test pour exécuter les tests unitaires et générer les rapports d’erreur.  mvn surefire:test MAVEN FAILSAFE PLUGIN Surcouche de Surefie destiné à gérer spécifiquement les tests d’intégration  mvn failsafe:integration-test  mvn failsafe:verify
  • 18. Gwendal - sojavawest@gmail.com - Licence CREATIVE COMMONS Navigateurs et plateformes supportés ANNEXES
  • 19. SELENIUM-WEBDRIVER¶  Google Chrome 12.0.712.0+ Internet Explorer 6, 7, 8, 9 - 32 and 64-bit where applicable Licence CREATIVE COMMONS Gwendal - sojavawest@gmail.com -   Firefox 3.0, 3.5, 3.6, 4.0, 5.0, 6, 7  Opera 11.5+  HtmlUnit 2.9  Android – 2.3+ for phones and tablets (devices & emulators)  iOS 3+ for phones (devices & emulators) and 3.2+ for tablets (devices & emulators)
  • 20. SELENIUM 1.0 AND SELENIUM-RC Browser Selenium IDE Selenium 1 (RC) Operating Systems Firefox 3.x Record and playback tests Start browser, run tests Windows, Linux, Mac Firefox 3 Record and playback tests Start browser, run tests Windows, Linux, Mac Firefox 2 Record and playback tests Start browser, run tests Windows, Linux, Mac Licence CREATIVE COMMONS Gwendal - sojavawest@gmail.com - Test execution only via IE 8 Start browser, run tests Windows Selenium RC* Test execution only via IE 7 Start browser, run tests Windows Selenium RC* Test execution only via IE 6 Start browser, run tests Windows Selenium RC* Test execution only via Safari 4 Start browser, run tests Windows, Mac Selenium RC Test execution only via Safari 3 Start browser, run tests Windows, Mac Selenium RC Test execution only via Safari 2 Start browser, run tests Windows, Mac Selenium RC Test execution only via Opera 10 Start browser, run tests Windows, Linux, Mac Selenium RC Test execution only via Opera 9 Start browser, run tests Windows, Linux, Mac Selenium RC Test execution only via Opera 8 Start browser, run tests Windows, Linux, Mac Selenium RC Test execution only via Google Chrome Start browser, run tests Windows, Linux, Mac Selenium RC Test execution only via Others Partial support possible** As applicable Selenium RC
  • 21. Gwendal - sojavawest@gmail.com - Licence CREATIVE COMMONS ANNEXES Spring ROO
  • 22. EXEMPLES DE COMMANDES¶ roo> hint roo> jpa setup --provider HIBERNATE --database HYPERSONIC_IN_MEMORY roo> entity jpa --class ~.Timer --testAutomatically Licence CREATIVE COMMONS Gwendal - sojavawest@gmail.com - ~.Timer roo> field string --fieldName message --notNull roo> web mvc all --package ~.web roo> selenium test --controller ~.web.TimerController roo> web mvc scaffold --class com.foo.web.PersonController roo> quit
  • 23. Gwendal - sojavawest@gmail.com - Licence CREATIVE COMMONS ANNEXES Ressources