background preloader

PHPUnit-Selenium

Facebook Twitter

Les experts d’Infotel » Maîtriser ses tests fonctionnels automatisés (1/2) Contexte Dans le cadre de nos projets, nous avons voulu renforcer la partie de tests fonctionnels de notre intégration continue.

Les experts d’Infotel » Maîtriser ses tests fonctionnels automatisés (1/2)

Le contexte technique est celui de plusieurs projets JEE basés sur une pile Spring Web Flow & JPA qui dialogue avec une base de données Oracle. Ils sont outillés avec Maven et disposent d’une couverture importante par les tests unitaires ; on utilise à ce sujet JUnit et EasyMock. Améliorer notre intégration continue Le but est de pouvoir rejouer lors de chacun de nos cycles d’intégration un ensemble de sollicitations sur l’application. Nous avons voulu personnaliser cette configuration qui est presque un standard en introduisant : Une base HSQL DB pour exécuter les tests sur un jeu de données constant;Une personnalisation des rapports des tests Selenium grâce à LoggingSelenium, que nous avons étendu à l’occasion pour nos besoins spécifiques. création et déploiement de l’applicatif Quelques aménagements Maven préalables.

Automatiser les tests Selenium avec Maven. Selenium regroupe une suite d’outils permettant de tester des applications web.

Automatiser les tests Selenium avec Maven

Tout comme les tests unitaires, Selenium permet notamment de vérifier la non-régression d’une application et est un gage de qualité supplémentaire. Chapitre 3. Installer PHPUnit. PHPUnit doit être installé en utilisant l'installateur PEAR, la colonne vertébrale du dépôt d'extensions et d'applications PHP (PHP Extension and Application Repository) qui apporte un système de distribution pour les paquets PHP.

Chapitre 3. Installer PHPUnit

Attention Selon votre distribution de système d'exploitation et/ou votre environnement PHP, vous pouvez avoir besoin d'installer PEAR ou de mettre à jour votre installation existante de PEAR avant de pouvoir suivre les instructions de ce chapitre. sudo pear upgrade PEAR suffit habituellement pour mettre à jour une installation PEAR existante. Le manuel PEAR explique comment réaliser une nouvelle installation de PEAR. Note. Guide d'installation de la bibliothèque PEAR.

I-A.

Guide d'installation de la bibliothèque PEAR

Pré-requis▲ Connaître les bases du langage PHP, avoir un serveur HTTP avec PHP 4.3.0 (ou supérieur) et MySQL (optionnel : uniquement pour faire des tests). Pour l'utilisateur de Windows, EasyPHP1.7 ira très bien. Stratégie de tests: Automatisation de tests fonctionnels de non-regression. PHP-unit Selenium et PHP. UPDATE: Un billet plus récent propose une solution plus évoluée: [Test] Cacique + Selenium IDE + Selenium-Grid : pour des tests automatisés et industrialisés Le développement d'application web ou de site web nécessite le recours à des tests automatisés.

Stratégie de tests: Automatisation de tests fonctionnels de non-regression. PHP-unit Selenium et PHP

Ce sujet à déjà été largement abordé dans ce blog (voir le cadre "lisez également"). On avait déjà présenté Selenium. Toutefois, cet outil seul n'offre pas la satisfaction attendue pour des tests de non-régression. Plusieurs limitations frustrantes de cette solution rendent l'utilisation basique inutile pour un projet. Selenium & PHPUNIT Pré requis : Installation Pour reproduire les manipulations de cet article il convient d'installer Selenium IDE, Selenium RC et php-unit.Selenium IDE est un plug-in de firefox à télécharger sur RC est un serveur Java (version 2 bêta) téléchargeable sur est un paquet PEAR Enregistrement du test avec Selenium Au final, on obtient l'enregistrement suivant: Le code exporter en php est le suivant : <?

FAILURES! Selenium Reference. A command is what tells Selenium what to do.

Selenium Reference

Selenium commands come in three 'flavors': Actions, Accessors and Assertions. Each command call is one line in the test table of the form: Actions are commands that generally manipulate the state of the application. They do things like "click this link" and "select that option". If an Action fails, or has an error, the execution of the current test is stopped.

Many Actions can be called with the "AndWait" suffix, e.g. Accessors examine the state of the application and store the results in variables, e.g. Assertions are like Accessors, but they verify that the state of the application conforms to what is expected. All Selenium Assertions can be used in 3 modes: "assert", "verify", and "waitFor".

"waitFor" commands wait for some condition to become true (which can be useful for testing Ajax applications). Chapitre 17. PHPUnit et Selenium. Selenium Server est un outil de test qui vous permet d'écrire des tests automatisés de l'interface utilisateur d'applications web dans n'importe quel langage et menés sur n'importe quel site web HTTP en utilisant n'importe quel navigateur courant.

Chapitre 17. PHPUnit et Selenium

Il réalise des tâches automatisée dans le navigateur en pilotant le processus du navigateur via le système d'exploitation. Les tests Selenium s'exécutent directement dans un navigateur, exactement comme des utilisateurs réels le feraient. Ces tests peuvent être utilisés à la fois comme tests de validation (en exécutant des tests au plus haut niveau sur le système intégré au lieu de simplement tester chaque unité du système indépendamment) et des tests de compatibilité pour les navigateurs (en testant l'application web sur différents systèmes d'exploitation et différents navigateurs).