Cours du soir GWT
Cours du soir Selenium
Lundi 7 Juin 2008Philippe [email protected]://ultrafil.tuxfamily.orghttp://planet.valtech.fr
Licence Creative Commons: http://creativecommons.org/licenses/by-nc-nd/2.0/fr/
Sommaire du cours
Prsentation de Selenium
TP Selenium IDE
TP Selenium RC partie 1
Notions sur le DOM et le cross scripting
Notions sur XPath
Aller plus loin avec les standards
Retour d'exprience
TP Selenium RC partie 2
Selenium: Vue d'ensemble
Appartient au projet OpenQA
Tests fonctionnels d'applications web
Pilote les navigateurs Web
OpenSource et Multi-plateforme
License Apache 2.0
Selenium: Les composants
Selenium IDESelenium CoreSelenium RCSelenium Grid
Ecrit en Javascript/DHTML
Ecrit par une quipe de Thoughtworks
http://www.thoughtworks.com/
Selenium is designed specifically for the acceptance testing requirements of Agile teams
Principe bas sur le cross-scripting
Supporte tous les navigateurs
Supporte toutes les plate-formes
Composant bas niveau
Selenium Core
Plate-formes Supportes
Windows:
Internet Explorer 6.0 and 7.0
Firefox 0.8 to 2.0
Mozilla Suite 1.6+, 1.7+
Seamonkey 1.0
Opera 8 & 9
Linux:
Firefox 0.8 to 2.0
Mozilla Suite 1.6+, 1.7+
Konqueror
Opera 8 & 9
Mac OS X:
Safari 2.0.4+
Firefox 0.8 to 2.0
Camino 1.0a1
Mozilla Suite 1.6+, 1.7+
Seamonkey 1.0
Pas encore support:
OmniWeb
Plugin Firefox
Interface graphique
Enregistre, dite et debug les tests
Possibilit de rutiliser les scnarios de Selenium IDE dans Selenium RC (Selenes)
Ne supporte que Firefox
Peut faciliter la prise en main de Selenium
Selenium IDE
Copie d'cran
TP Selenium IDE
Utiliser Firefox pour surfer l'adresse suivante
http://www.openqa.org/
cliquer sur Selenium IDE
cliquer sur Download
cliquer sur Version 1.0 Beta 2 pour installer le plugin
Suivre les instructions de l'animateur
Pilote un navigateur Web par programmation
Supporte la plupart des navigateurs Web
Fonctionne en client / Serveur
Le programme pilote le client Selenium
Le serveur Selenium pilote le navigateur
Le serveur doit tre install sur la machine du navigateur piloter
Se programme dans les langages suivants:
Java, .NET, Perl, PHP, Python, Ruby, Selenes, Javascript
Point fort: l'intgration continue
Selenium RC
S-RC: Architecture simplifi
TP Selenium RC
Lancer Eclipse
Ouvrir le workspace fourni par l'animateur
Lancer le test Junit du projet 1
Suivre les instructions de l'animateur
Selenium Grid
Extension Selenium RC
Permet de diminuer le temps global des tests
paralllise les tests sur un cluster
Se programme dans les langages suivants:
Java, .NET, Perl, PHP, Python, Ruby, Selenes, Javascript
S-Grid: Architecture de dployement
Piloter un navigateur avec Selenium
Les locators
id: Slectionne llment avec lattribut @id
name: Slectionne le premier lment avec lattribut @name
identifier: @id sinon @name.
xpath: Slectionne llment correspondant lexpression xpath
link: Slectionne le lien qui contient le texte spcifi
Quelques exemples de locators
selenium.click(id=idOfThing); //un id locator
selenium.click(name=nameOfThing); //un name locator
selenium.click(xpath=//img[@alt='The image alt text']);
selenium.click(dom=document.images[56] );
selenium.click(link=Test Page For Selenium); //un link locator
selenium.click(css=span#firstChild); //un css locator
Mthodes communes de DefaultSelenium
Pilotage
open(String url)
click(String locator)
type(String locator, String value)
select(String locator, String optionLocator)
check(String locator)
waitForPageToLoad(String timeoutInMilliseconds)
Mthodes communes de DefaultSelenium
Rcuprer les donnes
getTitle()
getText(String locator)
getValue(String locator)
isEditable(String locator)
isElementPresent(String locator)
getSelectedLabel(String locator)
getSelectedValue(String locator)
isChecked(String locator)
Le DOM (Document Object Model)
Standardis: W3C DOM
API pour les documents HTML et XML
Indpendant de tout langage de programmation
Reprsentation structurelle du document
Permet de modifier son contenu
Permet de modifier sa prsentation visuelle
Relie les pages web aux scripts et langages de programmation
Le cross-scripting
String SeleniumClient.getEval(String)
Injecte du javascript dans la page charge
Permet de rcuprer les valeurs de retour
XPath (XML Path Language)
syntaxe non-XML
Puissant et souple
Permet d'adresser des parties de DOM
Peut tre utilis dans des URI et des attributs XML
Xpath est au DOM ce que le SQL est aux BDD
Principes de XPath
Notation cheminement
//*
/ns:racine/ns:toto
/racine/toto/@attribut1
Les axes
//ns:racine/child::ns:toto
/racine/toto/attribute::attribut1
Les fonctions
count(/racine/toto) OU sum(/racine/valeur)
/racine/toto[position()=1]
/racine/toto[position()=last()]
Aller plus loin avec les standards
L'utilisation de XHTML permet de valider la structure du DOM grce au Schma associ
grce Selenium RC et au cross-scripting
SeleniumClient.getEval()
L'utilisation du vieux HTML ne permet pas ce niveau de validation de la structure des documents
Retour d'exprience
Explications du contexte (Web/CICS/BDD)
Structure du Fwk
Maven, TagsLib, Prototype et services spring
FWGE, SCTS, FWTE et FWTF
Le serveur d'intgration continu continuum
Le projet FWTC
Les projets Finaux (640 applications)
Des milliers de tests automatiss
References
http://openqa.org/
http://selenium.openqa.org/
http://release.openqa.org/selenium-remote-control/0.9.0
http://developer.mozilla.org/fr/docs
http://developer.mozilla.org/fr/docs/DOM
http://developer.mozilla.org/fr/docs/XML
http://developer.mozilla.org/fr/docs/XPath
http://www.w3.org/
http://www.w3.org/DOM/
http://www.w3.org/XML/
http://www.w3.org/Style/XSL/
http://www.w3.org/TR/xhtml11/
#
#