Définitions de macros avec Canoo WebTest
30 juillet 2008
Vous êtes ennuyé par d’abrutissantes et répétitives séquences de tests? authentification, sélection d’un dossier client, ou une certaine séquence de navigation? Il est possible, avec Canoo WebTest, de définir des macros.
On se crée d’abord un projet:
webtest -f %WEBTEST_HOME%\webtest.xml wt.createProject
La structure de répertoires du projet se décline comme suit:
monprojet
|-- definitions/
|-- dtd/
|-- includes/
|-- tests/
|-- build.xml
|-- definitions.xml
Sous /définitions, il suffit de créer des fichiers XML représentants ces macros éreintantes:
<?xml version="1.0" encoding="UTF-8"?>
<macrodef name="login">
<attribute name="username"/>
<attribute name="password"/>
<sequential>
<invoke url="/login.do" />
<verifyTitle text="Ouverture de la session" />
<setInputField name="u" value="@{username}" />
<setInputField name="p" value="@{password}" />
<clickButton name="Ok" />
<verifyTitle text="Bienvenue @{username}!" />
</sequential>
</macrodef>
Une fois ceci fait, on roule la commande nécessaire afin d’ajouter notre macro au fichier prévu à cet effet, definitions.xml:
monprojet%> webtest wt.generateDefinitions
NOTE: cette étape est, selon moi, de trop. Ceci devrait se faire automatiquement lors de l’exécution des tests. D’autant que le fichier des définitions de macros contient un avertissement de ne pas l’éditer manuellement, qu’un script s’en occupera, ce qui nous expose bêtement au fonctionnement de l’outil.
Ensuite, dans notre test, on se sert de cette macro de façon fort élégante:
<webtest name="S'authentifier et ...">
<login username="jjcharest" password="canada" />
<!-- ... -->
</webtest>
Et Hop! On roule les test …
monprojet%> webtest
Et là on est heureux en saperlipopette!
JS.
30 juillet 2008 à 18:37
Ouin, c’est facile à lire comme un livre pour enfants…
:)
CB
31 juillet 2008 à 6:37
Je suis un fervant utilisateur de Selenium pour mes tests d’intégration. Par contre, j’aime l’approche très simple de ce petit framework. J’y jeterai définitivement un oeil. Belle découverte !!!
8 septembre 2008 à 5:21
hmm, je saisis pas trop la différence avec les includes… ça doit être subtil non?
8 septembre 2008 à 13:39
En fait (et je te répond rapidement), je n’en ai aucune idée. Par contre, les macros sont pas mal plus élégantes, exprimées à l’aide de balises, plutôt qu’un échafaudage à partis d’un obscur DTD.
9 septembre 2008 à 10:10
je note que ça existe et que c’est élégant…
).