Test Automatisation

1 551 vues

Publié le

Automatisation de test

Publié dans : Technologie
0 commentaire
0 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

  • Soyez le premier à aimer ceci

Aucun téléchargement
Vues
Nombre de vues
1 551
Sur SlideShare
0
Issues des intégrations
0
Intégrations
4
Actions
Partages
0
Téléchargements
31
Commentaires
0
J’aime
0
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

Test Automatisation

  1. 1. TESTS FONCTIONNELS AUTOMATISÉS SELENIUM 2 : WebDriver & Selenium RC Gwendal-sojavawest@gmail.com-Licence CREATIVECOMMONS
  2. 2. SOMMAIRE  Application témoin – Spring ROO  Présentation  Atouts  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- LicenceCREATIVECOMMONS
  3. 3. APPLICATION TÉMOIN Spring ROO Gwendal-sojavawest@gmail.com-Licence CREATIVECOMMONS
  4. 4. SPRING ROO Framework haute productivité qui permet :  de produire rapidement un modèle d’architecture 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 Gwendal-sojavawest@gmail.com- LicenceCREATIVECOMMONS
  5. 5. ATOUTS o Particulièrement adapté pour du prototypage rapide à partir d’un modèle objet o Très bien documenté 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- LicenceCREATIVECOMMONS
  6. 6. UN PEU D’HISTOIRE Selenium RC versus WebDriver Gwendal-sojavawest@gmail.com-Licence CREATIVECOMMONS
  7. 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 , 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 Gwendal-sojavawest@gmail.com- LicenceCREATIVECOMMONS
  8. 8. SELENIUM 2 & WEBDRIVER o WebDriver est un projet initialement réalisé par un ingénieur de chez Google pour piloter directement un navigateur. 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- LicenceCREATIVECOMMONS
  9. 9. SUITE D’OUTILS SELENIUM Présentation Gwendal-sojavawest@gmail.com-Licence CREATIVECOMMONS
  10. 10. SELENIUM IDE Selenium IDE est un environnement de développement pour la réalisation de scripts de test, développé sous 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…). Gwendal-sojavawest@gmail.com- LicenceCREATIVECOMMONS
  11. 11. SELENIUM SERVER Selenium server est indispensable pour lancer les tests sur une machine distance mais également pour lancer 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. Gwendal-sojavawest@gmail.com- LicenceCREATIVECOMMONS
  12. 12. RÉALISATION DES TESTS FONCTIONNELS Enregistrement VS Implémentation Gwendal-sojavawest@gmail.com-Licence CREATIVECOMMONS
  13. 13. SELENIUM IDE  Les « + »  Réalisation rapide de scripts de test  Scripts de test aisés à maintenir  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) Gwendal-sojavawest@gmail.com- LicenceCREATIVECOMMONS
  14. 14. LANGAGE DE PROGRAMMATION SUPPORTÉ  Les « + »  Plus robuste et plus homogènes que les tests HTML dans un contexte projet  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 Gwendal-sojavawest@gmail.com- LicenceCREATIVECOMMONS
  15. 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é. 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- LicenceCREATIVECOMMONS
  16. 16. ANNEXES Intégration Maven Gwendal-sojavawest@gmail.com-Licence CREATIVECOMMONS
  17. 17. MAVEN SELENIUM PLUGIN Permet de démarrer Selenium server et de lancer une suite de tests HTML.  mvn selenium:selenese MAVEN SUREFIRE PLUGIN MAVEN FAILSAFE PLUGIN Surcouche de Surefie destiné à gérer spécifiquement les tests d’intégration  mvn failsafe:integration-test  mvn failsafe:verify Utiliser pendant la phase de test pour exécuter les tests unitaires et générer les rapports d’erreur.  mvn surefire:test Gwendal-sojavawest@gmail.com- LicenceCREATIVECOMMONS
  18. 18. ANNEXES Navigateurs et plateformes supportés Gwendal-sojavawest@gmail.com-Licence CREATIVECOMMONS
  19. 19. SELENIUM-WEBDRIVER¶  Google Chrome 12.0.712.0+  Internet Explorer 6, 7, 8, 9 - 32 and 64-bit where applicable  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) Gwendal-sojavawest@gmail.com- LicenceCREATIVECOMMONS
  20. 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 IE 8 Test execution only via Selenium RC* Start browser, run tests Windows IE 7 Test execution only via Selenium RC* Start browser, run tests Windows IE 6 Test execution only via Selenium RC* Start browser, run tests Windows Safari 4 Test execution only via Selenium RC Start browser, run tests Windows, Mac Safari 3 Test execution only via Selenium RC Start browser, run tests Windows, Mac Safari 2 Test execution only via Selenium RC Start browser, run tests Windows, Mac Opera 10 Test execution only via Selenium RC Start browser, run tests Windows, Linux, Mac Opera 9 Test execution only via Selenium RC Start browser, run tests Windows, Linux, Mac Opera 8 Test execution only via Selenium RC Start browser, run tests Windows, Linux, Mac Google Chrome Test execution only via Selenium RC Start browser, run tests Windows, Linux, Mac Others Test execution only via Selenium RC Partial support possible** As applicable Gwendal-sojavawest@gmail.com- LicenceCREATIVECOMMONS
  21. 21. ANNEXES Spring ROO Gwendal-sojavawest@gmail.com-Licence CREATIVECOMMONS
  22. 22. EXEMPLES DE COMMANDES¶ roo> hint roo> jpa setup --provider HIBERNATE --database HYPERSONIC_IN_MEMORY roo> entity jpa --class ~.Timer --testAutomatically ~.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- LicenceCREATIVECOMMONS
  23. 23. ANNEXES Ressources Gwendal-sojavawest@gmail.com-Licence CREATIVECOMMONS
  24. 24. 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- pageobjects-by-example/ docs.seleniumhq.org/docs/01_introducing_selenium.jsp Gwendal-sojavawest@gmail.com- LicenceCREATIVECOMMONS

×