Projet

Général

Profil

Wiki » Historique » Version 5

Version 4 (Gilles Grandgérard, 06/06/2014 15:17) → Version 5/32 (Gilles Grandgérard, 25/06/2014 16:07)

h1. Wiki

h2. Mémo sur Selenium

h3. Selenium IDE

*Disponible sous forme de plugin firefox.*

Interface graphique pour créer des suites de tests d'interface web. La fonction d'enregistrement permet de décomposer le parcours de l'utilisateur en pas d'un cas de test. Le menu contextuel permet d'accéder à des propositions d'assertions à insérer dans les cas de tests (commandes assert* verify*).

*Remarque :* les pas définis par un parcours utilisateur sont souvent à adapter pour un parcours automatisé plus rapide afin de forcer à attendre que des éléments de page soient présents.

Les cas de test peuvent être lancés directement depuis l'IDE ou exportés en python. Par défaut on doit exporter les cas individuellement mais l'extension _Test Suite Batch Converter (Selenium IDE)_ permet d'ajouter des fonctionnalités d'export par lot.

Pour certains formats de commande disponibles dans l'IDE, l'export en python n'est pas supporté.

h3. Selenium Webdriver

Pour exploiter les cas de test exportés depuis l'IDE (ou en écrire directement en python) :

@sudo pip install selenium@

On a alors accès à l'API _webdriver_

@from selenium import webdriver@

Par défaut, l'export des cas depuis l'IDE construit une classe héritant de @unittest.TestCase@ pour chaque cas de test.

h3. Automatisation "complète"

La suite construite avec Selenium IDE fournit déjà une automatisation, qu'il faut cependant lancer à la main dans l'interface graphique. L'idéal serait d'avoir une automatisation complète : conversion en python et lancement via un script.

Obstacles :

* APIs un peu différentes entre l'IDE et le module _webdriver_ en python ;
* dans une moindre mesure : reformatage nécessaire du code exporté (regroupement des exports dans un seule classe par exemple).

*Conclusion temporaire :* il faut prévoir d'adapter le code python exporté ou alors écrire directement les tests en python sans passer par Selenium IDE...