Projet

Général

Profil

Wiki » Historique » Version 3

Julien Coupey, 03/04/2014 11:59

1 1 Julien Coupey
h1. Wiki
2 1 Julien Coupey
3 2 Julien Coupey
h2. Mémo sur Selenium
4 1 Julien Coupey
5 1 Julien Coupey
h3. Selenium IDE
6 1 Julien Coupey
7 1 Julien Coupey
*Disponible sous forme de plugin firefox.*
8 1 Julien Coupey
9 2 Julien Coupey
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*).
10 1 Julien Coupey
11 2 Julien Coupey
*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.
12 1 Julien Coupey
13 2 Julien Coupey
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.
14 2 Julien Coupey
15 2 Julien Coupey
Pour certains formats de commande disponibles dans l'IDE, l'export en python n'est pas supporté.
16 2 Julien Coupey
17 1 Julien Coupey
h3. Selenium Webdriver
18 1 Julien Coupey
19 2 Julien Coupey
Pour exploiter les cas de test exportés depuis l'IDE (ou en écrire directement en python) :
20 1 Julien Coupey
21 1 Julien Coupey
@pip install selenium@
22 2 Julien Coupey
23 2 Julien Coupey
On a alors accès à l'API _webdriver_
24 2 Julien Coupey
25 2 Julien Coupey
@from selenium import webdriver@
26 2 Julien Coupey
27 2 Julien Coupey
Par défaut, l'export des cas depuis l'IDE construit une classe héritant de @unittest.TestCase@ pour chaque cas de test.
28 2 Julien Coupey
29 2 Julien Coupey
h3. Automatisation "complète"
30 2 Julien Coupey
31 3 Julien Coupey
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.
32 2 Julien Coupey
33 2 Julien Coupey
Obstacles :
34 2 Julien Coupey
35 3 Julien Coupey
* APIs un peu différentes entre l'IDE et le module _webdriver_ en python ;
36 3 Julien Coupey
* dans une moindre mesure : reformatage nécessaire du code exporté (regroupement des exports dans un seule classe par exemple).
37 2 Julien Coupey
38 3 Julien Coupey
*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...