mardi 14 février 2012

La version 1.2.3 de PHPUnit_Selenium est sortie

selenium-logo.png PHP

PHPUnit est l'équivalent pour PHP de JUnit pour Java. Framework très abouti, utilisant même des annotations, il permet de plus de s'interfacer avec Selenium pour tester des applications Web. Depuis la version 1.2.0, il prend maintenant en compte l'API WebDriver en ajoutant la classe PHPUnit_Extensions_Selenium2TestCase ainsi que:

  • le partage de session pour l'API WebDriver
  • l'ouverture d'URL et la sélection d'élément pour l'API WebDriver
  • le clic d'éléments et le raccourci clickOnElement($id) pour l'API WebDriver
  • le support partiel de 'alert()' pour l'API WebDriver
  • la manipulation d'éléments pour l'API WebDriver: accesseur de test, modificateurs de valeurs
  • les sélecteurs raccourcis `by*()` pour l'API WebDriver
  • l'extraction d'une classe de commande de base pour étendre les commandes gérées des sessions et des éléments pour l'API WebDriver

Viennent donc de sortir coup sur coup les versions 1.2.2 et 1.2.3 qui vient réparer un petit oubli de la 1.2.2.

Lire la suite...

jeudi 9 février 2012

Selenium Grid pour Selenium 1 et WebDriver

selenium-grid-logo.png

La grille Selenium permet

  • de répartir la charge en distribuant les tests sur plusieurs machines (exécution parallèle)
  • de gérer de multiples environnement depuis un point central en facilitant l'exécution de tests sur une grande variété de navigateurs et d'OS
  • de réduire le temps de maintenance de la grille en permettant d'implémenter des déclencheurs personnalisés pour mettre en place une infrastructure virtuelle par exemple

Démarrage rapide

L'exemple qui suit montre comment lancer le Hub Selenium 2 et d'y enregistrer à la fois un noeud WebDriver et un ancien noeud Remote Control Selenium 1. Sera également montrée la façon d'appeler la grille en Java. Le hub et les noeuds seront lancés sur la même machine mais il est bien sûr possible de copier le selenium-server-standalone sur plusieurs machines.

Lire la suite...

Sortie de Selenium 2.19.0 "Prancing Unicorn"

selenium-logo.png

Après un certain calme (le froid sans doute), voici du mouvement: Selenium 2.19.0 est sorti. Le changement majeur réside dans la possibilité d'utiliser le webdriver-backed avec tous les langages supportés. Ainsi, il est possible de passer de l'API Remote Control à l'API WebDriver sans réécriture de tous les tests. En python, par exemple:

  driver = RemoteWebDriver(desired_capabilities = DesiredCapabilities.FIREFOX)
  selenium = DefaultSelenium('localhost', 4444', '*webdriver', 'http://www.google.com')
  selenium.start(driver = driver)

Du moment que vous gardez une référence aux objets originels webdriver et selenium que vous avez créés, vous pouvez utiliser les 2 API de manière interchangeable. Tout se passe dans le nom de navigateur "webdriver" passé à l'instance Selenium que nous passons à l'instance webdriver en appelant start().

Lire la suite...

samedi 4 février 2012

Test d'une application Web avec Thucydides

Thucydides

L'objet de cet article, inspiré fortement par le guide utilisateur de Thucydides, et de mettre en place des tests de validation fonctionnelle sur une application Web à l'aide de Thucydides, donc, et de WebDriver/Selenium 2. Thucydides est une bibliothèques OpenSource destinée à faciliter ces tests de recette, en utilisant, soit JUnit, soit EasyB.

Lire la suite...

mardi 31 janvier 2012

php-webdriver

selenium-logo.png PHP

PHPWebDriver (https://github.com/Element-34/php-w...) est un fork de projet Facebook php-webdriver (https://github.com/facebook/php-web...) avec quelques différences:

  • distribution via PEAR
  • ajoute de la classe WebDriverWait
  • ajout de ActionChains
  • interface nettoyée pour réduire le couplage avec l'implémentation de WebDriver

Ce fork résulte de l'insatisfaction de son auteur avec les autres implémentations PHP. Pour mémoire, aucune de ces implémentations n'est officiellement soutenue par Selenium. Évidemment, c'est libre et distribué sous la licence Apache 2 (comme le reste de la suite Selenium). L'auteur offre un support commercial et une correction prioritaire des bugs (http://element34.ca/blog).

Ce qui suit est la traduction de la documentation actuellement fournie....

Lire la suite...

samedi 28 janvier 2012

Utiliser Selenium 2 avec Maven

selenium-logo.png Logo Maven

Traduction de l'article de Michael Tamm sur le blog Selenium.

Il y a plusieurs façon d'utiliser Selenium 2:

Si vous n'avez pas de code datant de Selenium 1.x, utilisez directement les nouvelles implémentations WebDriver telles que ChromeDriver, HtmlUnitDriver, FirefoxDriver ou InternetExplorerDriver qui fournissent une API agréable, légère et facile à apprendre.

Si vous avez ce type de code, vous pouvez continuer à utiliser la désormais célèbre classe DefaultSelenium ou la nouvelle WebDriverBackedSelenium qui hérite de la précédente mais utilise en interne l'une des implémentation WebDriver.

Lire la suite...

Sortie de Selenium WebDriver version 2.18.0

selenium-logo.png selenium-grid-logo.png

Selenium WebDriver et Selenium Server sortent en version 2.18.0, poursuivant le rythme rapide des mises à jour. Concernant les modifications:

  • WebDriver:
    • correction de récupération de la valeur d'un attribut des éléments option
    • gestion des alert dans Firefox et IE: lance une exception UnhandledAlertException si une boîte alert est présente lors de l'opération. Le alert non géré est également acquitté pour éviter les exceptions à répétition
    • meilleure gestion des appels de getText dans les éléments SVG
    • correction des clics qui ne fonctionnaient plus sous Firefox 4
    • le driver Android gère maintenant le Flash et Geolocation
    • correction du support du changement de frame pour le driver iPhone
  • Remote Control:
    • correction du problème de fermeture de IE HTA à la fin des tests
  • WebDriverJS (le binding Javascript):
    • correction de findElements

Le jar: http://selenium.googlecode.com/file...

Pour une utilisation avec Maven, voir http://seleniumhq.wordpress.com/201...