Re: Scripter les tests

Régis Le Brettevillois <[email protected]> Sat, 09 Apr 2011 07:45:15 +0200
Newsgroups gmane.comp.java.french.general
Message-ID <[email protected]>
Oui avec le support DSL des langages de script comme Groovy ou Scala 
c'est tout à fait possible. Mais même avec le langage lui même de doit 
pouvoir faire quelque chose de beaucoup plus simple.
Groovy a l'avantage d'être assez proche de Java dans la syntaxe ce qui 
permet d'avoir rapidement quelque chose, Scala apporte beaucoup de 
changement dans la syntaxe, mais bénéficie de meilleures performances et 
d'abstractions encore plus poussées.

Par exemple, en Groovy tu pourras écrire quelque chose telle que:

TestScript.execute {
     login x,y
     selectionne "nom"
     ...
}

En plus tu pourras bien sûr utiliser les structure de controles du 
langage pour introduire une logique plus complexe.


TestScript.execute {
     login x,y
     elements = selectionne "liste"
     elements.each { el ->
         ...
     }
     if (valeur("seleniumId") == ) ...
     ...
}


Le 07/04/2011 11:12, Baptiste MATHUS a écrit :
> Pas sûr d'avoir tout compris ce que tu cherches.
> Mais des trucs à la DSL genre spock (groovy), ça pourrait pas coller ?
>
> Mes 2 centimes, cadeau :).
>
> Baptiste
>
> Le 7 avril 2011 10:33, Jean-Baptiste BRIAUD -- Novlog 
> <[email protected] <mailto:[email protected]>> a écrit :
>
>
>     Bonjour à tous,
>
>     Voilà un moment que je voudrais entamer le chantier de scripter
>     nos tests.
>     Nous utilisons Selenium pour piloter par programme un navigateur.
>     Des sous-classes de JUnit enchainent les appels Selenium pour
>     construire un usage plausible d'une application.
>
>     Conceptuellement, j'aurais envie d'écrire ce genre de chose :
>     1. login(l, p)
>     2. trouver le champ "nom" (en fait le SeleniumID et non pas le label)
>     3. entrer "Dupond"
>     4. chercher le bouton "OK" (en fait le SeleniumID et non pas le label)
>     5. Clicker sur le boutoun
>     ...
>
>     Sauf que les appels à Selenium dans notre sous-classe JUnit sont
>     beaucoup, beaucoup trop complexe.
>     En plus, il faut tout compiler les tests pour les lancer.
>
>     Bref, j'aimerais scripter tout cela.
>     Moyennant une lib qui ne nécessite pas d'être recompilée et
>     contenant par exemple, une classe pour un mot clé,
>     il est simple de proposer un interpréteur de fichier texte où le
>     premier mot de chaque ligne correspond à une classe se mot clé.
>     Ensuite, la pattern Commande et "roule ma poule".
>     ... et en plus, çà existe déjà, et en plus je l'ai déjà utilisé
>     dans le passé :
>     http://exactor.sourceforge.net/
>     mais çà n'est plus mis à jour depuis 2008 et depuis le temps il a
>     coulé de l'eau sous les scripts.
>
>     Bref, est-ce qu'un de ces langages de scripts plus récent ne
>     serait pas plus approprié ?
>     Je sur que oui pour au moins une raison : toute la logique de
>     boucle, test, est déjà là et bien faite.
>     Sauf qu'il ne faudrait pas que le script devienne aussi complexe
>     que l'actuelle sous-classe JUnit, sinon, çà ne sert plus à rien.
>
>     ah oui, je ne l'ai pas dit, mais je parlais de ces langages de
>     scripts qui tourne dans une JVM car la portabilité, c'est important.
>     Comment envisager "les appels" (est-ce des appels ?) aux mot clé
>     du test : trouver le champ, cliquer, les divers assert, ...
>
>
>     Des reco, des idées ?
>
>
>
>
> -- 
> Baptiste <Batmat> MATHUS - http://batmat.net
> Sauvez un arbre,
> Mangez un castor !