Outil test unitaires Application Web RESTful

185 views
Skip to first unread message

nicolas_froidure

unread,
Feb 2, 2011, 10:48:09 AM2/2/11
to Professionnels francophones du développement web
Hello,

Je suis sur un projet RESTful qui avance tranquillement, mais je ne
parviens pas à trouver un outil simple à utiliser pour faire des tests
unitaires sur une application web RESTful.

Je pense à une application desktop dans laquelle on pourrait créer des
projets et y ajouter des scénarios d'utilisation pour tester toutes
les fonctionnalités fournies par l'application web.

Mes besoins :
- pas dépendant d'un serveur qui doit être configuré de telle ou telle
manière avec tel ou tel langage.
- adaptable à mes besoins (idéalement GNU/GPL)
- possibilité d'exporter un projet sous forme de fichier pour
permettre à d'autres d'effectuer les tests.

Je réfléchi à le créer si je trouve pas et je voudrais pas réinventer
la roue si possible... Si je devais le créer, ça serait du GPL donc je
serai ouvert à toutes les propositions et aux feedbacks de personnes
intéressées par un tel outil.

++

Julien Wajsberg

unread,
Feb 2, 2011, 12:57:18 PM2/2/11
to webd...@googlegroups.com
je pense qu'un outil comme Soap UI peut te permettre d'interroger des
services REST.
Il a été développer au départ pour SOAP mais il me semble qu'il a
évolué vers REST dans les dernières versions.

- open source (je me rappelle plus de la licence)
- interface graphique (perfectible) pour créer les scénarios
- fichiers de sauvegarde en XML
- plugin maven pour exécuter les tests de manière non interactive

Note que ce que tu veux faire, ce ne sont pas des tests unitaires mais
des tests d'intégration :-)

2011/2/2 nicolas_froidure <nicolas_...@elitwork.com>:

> --
> Vous recevez ce message, car vous êtes abonné au groupe Google Groupes Professionnels francophones du développement web.
> Pour envoyer un message à ce groupe, adressez un e-mail à webd...@googlegroups.com.
> Pour vous désabonner de ce groupe, envoyez un e-mail à l'adresse webdevfr+u...@googlegroups.com.
> Pour plus d'options, consultez la page de ce groupe : http://groups.google.com/group/webdevfr?hl=fr
>
>

Anthony Colas

unread,
Feb 2, 2011, 1:04:12 PM2/2/11
to webd...@googlegroups.com
Salut,

Je pense qu'un outil comme Selenium IDE peut t'aider à répondre à ce besoin surtout si tes fonctionnalités Web sont déjà toutes implémentées. Tu peux faire des scénarios, les exporter, les versionner.

Après je ne l'ai pas utilisé pour des tests unitaires REST (perso j'utilise jersey et junit en java mais on s'en fout ;)) mais pour des services exposés en REST, selenium doit pouvoir le faire !


Frank Taillandier

unread,
Feb 2, 2011, 4:26:38 PM2/2/11
to webd...@googlegroups.com
Outre Selenium, pour écrire des tests tu as aussi Watir (Ruby) : http://watir.com/ 

--
Vous recevez ce message, car vous êtes abonné au groupe Google Groupes Professionnels francophones du développement web.
Pour envoyer un message à ce groupe, adressez un e-mail à webd...@googlegroups.com.
Pour vous désabonner de ce groupe, envoyez un e-mail à l'adresse webdevfr+u...@googlegroups.com.
Pour plus d'options, consultez la page de ce groupe : http://groups.google.com/group/webdevfr?hl=fr




--
Frank Taillandier

nicolas_froidure

unread,
Feb 3, 2011, 3:46:12 AM2/3/11
to Professionnels francophones du développement web
Re,

Merci pour les liens. Il faut croire que je fais mal ma veille IT car
je n'avais pas connaissance de ces outils.

J'étais parti sur le terme de test unitaire car l'idée est de créer
les tests correspondants à l'interface uniforme que je souhaite et
ensuite de développer les drivers REST qui vont permettre de passer
ces tests (Test Driven Development).

L'idée est donc de faire des requêtes HTTP dans un ordre précis et de
comparer le résultat avec le résultat attendu (code HTTP, entêtes
HTTP, contenu). Exemple trivial :

# Scénario de test du driver "File"

# Test de récupération d'un fichier inexistant
GET : /file/test.txt : : (Accept : text/plain)
- 410 : Oops nothing to see here ! : (Content-Type : text/plain)

# Test de l'ajout de fichier
PUT : /file/test.txt : Ceci est un texte : (Accept : text/plain)
- 201 : Ceci est un texte : (Content-Type : text/plain)

# Test de récupération du fichier
GET : /file/test.txt : : (Accept : text/plain)
- 200 : Ceci est un texte : (Content-Type : text/plain)

# Test de l'idempotence de l'ajout de fichier
PUT : /file/test.txt : Ceci est un texte : (Accept : text/plain)
- 201 : Ceci est un texte : (Content-Type : text/plain)

# Test de suppression de fichier
DELETE : /file/test.txt : : (Accept : text/plain)
- 200 : No more file here : (Content-Type : text/plain)

# Test de suppression effective du fichier
GET : /file/test.txt : : (Accept : text/plain)
- 200 : Ceci est un texte : (Content-Type : text/plain)

# Test de l'idempotence de la suppression de fichier
DELETE : /file/test.txt : : (Accept : text/plain)
- 200 : No more file here : (Content-Type : text/plain)

J'ai donc besoin de pouvoir modifier :
- le chemin de l'URI
- la méthode HTTP
- les entêtes HTTP
Et comparer avec :
- le code de réponse attendu
- les entêtes attendus
- le contenu attendu

De cette manière, je suis sûr de répondre au poil près aux
spécifications du service web désiré qui sera utilisé par un
application web cliente en JS via un navigateur.

J'ai le sentiment de pouvoir faire cela avec les outils que vous
m'avez proposé. Il me manque juste une brique pour fabriquer ces
requêtes test de manière conviviale (voire triviales pour un novice).
Ca serait peut-être aussi utile de pouvoir les enregistrer dans un
format indépendant de l'outil de test utilisé pour en changer à
volonté.

Si je trouve chaussure à mon pied, je vous préviens. Hésitez pas si
vous avez d'autres propositions.

Merci en tout cas pour votre coup de main.

On 2 fév, 22:26, Frank Taillandier <frank.tailland...@gmail.com>
wrote:
> Outre Selenium, pour écrire des tests tu as aussi Watir (Ruby) :http://watir.com/
>
> Une rapide présentation :http://web-qualite.over-blog.com/article-watir-outil-de-test-par-exce...
>
> 2011/2/2 nicolas_froidure <nicolas_froid...@elitwork.com>
>
>
>
> > Hello,
>
> > Je suis sur un projet RESTful qui avance tranquillement, mais je ne
> > parviens pas à trouver un outil simple à utiliser pour faire des tests
> > unitaires sur une application web RESTful.
>
> > Je pense à une application desktop dans laquelle on pourrait créer des
> > projets et y ajouter des scénarios d'utilisation pour tester toutes
> > les fonctionnalités fournies par l'application web.
>
> > Mes besoins :
> > - pas dépendant d'un serveur qui doit être configuré de telle ou telle
> > manière avec tel ou tel langage.
> > - adaptable à mes besoins (idéalement GNU/GPL)
> > - possibilité d'exporter un projet sous forme de fichier pour
> > permettre à d'autres d'effectuer les tests.
>
> > Je réfléchi à le créer si je trouve pas et je voudrais pas réinventer
> > la roue si possible... Si je devais le créer, ça serait du GPL donc je
> > serai ouvert à toutes les propositions et aux feedbacks de personnes
> > intéressées par un tel outil.
>
> > ++
>
> > --
> > Vous recevez ce message, car vous êtes abonné au groupe Google
> > Groupes Professionnels francophones du développement web.
> > Pour envoyer un message à ce groupe, adressez un e-mail à
> > webd...@googlegroups.com.
> > Pour vous désabonner de ce groupe, envoyez un e-mail à l'adresse
> > webdevfr+u...@googlegroups.com<webdevfr%2Bunsu...@googlegroups.com>
> > .

Frédéric Massart

unread,
Feb 3, 2011, 4:26:21 AM2/3/11
to webd...@googlegroups.com

Hello,

Tes besoins me font penser à SOAPUI. À première vue pour du soap, il est aussi capable de gérer les WS en REST.

Regarde ce post pour te faire une idée http://blog.objetdirect.com/webservices/soapui-et-les-tests-de-web-services (même si l'exemple est en soap, tu peux faire la même chose avec du REST).

++
Frédéric

> Pour vous désabonner de ce groupe, envoyez un e-mail à l'adresse webdevfr+u...@googlegroups.com.

fabrice31

unread,
Feb 3, 2011, 5:29:51 AM2/3/11
to Professionnels francophones du développement web
Bonjour

Effectivement, les outils sont légions : voici ma liste "maison", avec
leurs principaux défauts.
Webtest, rapport super détaillé, mais ne permet pas de vérifier
certains formats de fichier comme le xml, trop de faux positifs sur le
javascript des pages testés.
Selenium, dont le principal souci à mes yeux est qu'une erreur dans
une série de tests empêche l'éxecution des tests suivants
Watir, extensible à volonté (avec unitest par exemple), tests
multinavigateurs "facilement"... c'est celui que j'utilise
actuellement

On a aussi :
RobotFramework http://code.google.com/p/robotframework/ (mais je ne
l'ai pas testé celui-ci meme si son plugin pour tester Android a l'air
intéressant),
Sahi

Tout ca pour dire que pour écrire des tests, il faut avant tout
choisir le bon outil. Inutile d'utiliser un système complexe pour
tester le ping d'un site par exemple.
Les tests des pages d'erreur à partir de leur code de retour (200,
500, 404) ne sont pas facile à mettre en place sur certains de ces
outils... Je me demande si utiliser un script shell ne serait pas plus
intéressant dans ce cas là. (Mais comme j'ai jamais testé de REST, je
ne suis pas totalement pas convaincu)

Bon courage en tout cas.

Fabrice




On 3 fév, 10:26, Frédéric Massart <frankyf...@gmail.com> wrote:
> Hello,
>
> Tes besoins me font penser à SOAPUI. À première vue pour du soap, il est
> aussi capable de gérer les WS en REST.
>
> Regarde ce post pour te faire une idéehttp://blog.objetdirect.com/webservices/soapui-et-les-tests-de-web-se...me
> si l'exemple est en soap, tu peux faire la même chose avec du REST).
>
> ++
> Frédéric
> Le 3 févr. 2011 09:46, "nicolas_froidure" <nicolas_froid...@elitwork.com> a
> >> > webdevfr+u...@googlegroups.com<webdevfr%2Bunsubscribe@googlegroups.c om>
>
> <webdevfr%2Bunsu...@googlegroups.com<webdevfr%252Bunsubscribe@googlegro ups.com>
>
> >> > .
> >> > Pour plus d'options, consultez la page de ce groupe :
> >> >http://groups.google.com/group/webdevfr?hl=fr
>
> >> --
> >> Frank Taillandierhttp://frank.taillandier.me
>
> > --
> > Vous recevez ce message, car vous êtes abonné au groupe Google
>
> Groupes Professionnels francophones du développement web.> Pour envoyer un message à ce groupe, adressez un e-mail à
>
> webd...@googlegroups.com.> Pour vous désabonner de ce groupe, envoyez un e-mail à l'adresse
>
> webdevfr+u...@googlegroups.com<webdevfr%2Bunsubscribe@googlegroups.c om>
Reply all
Reply to author
Forward
0 new messages