Outils de test d’application web en Ruby

J’ai repris récemment l’ensemble des outils de test d’application web utilisant le langage Ruby. Au départ, je cherchais des outils pilotant des navigateurs web. La solution la plus prometteuse était watir. L’environnement que j’utilise maintenant est Windows Vista avec le navigateur Internet Explorer 7. Les autres navigateurs que j’utilise ici sont Safari, SeaMonkey, Opera, Firefox et Flock.

Pour commencer, il faut installer le langage Ruby. Pour Windows, il existe la version 1.8.6. L’installation ne pose pas de problème. Double click sur un exécutable. Watir est une librairie Ruby qui pilote Internet Explorer. Associé avec la librairie de test du langage Ruby (Test::Unit), elle permet de tester les application web. Watir peut cependant servir à d’autres tâches d’automatisation. Test::Unit est la version pour le langage Ruby du framework xUnit. A titre de comparaison, la version pour le langage Java est JUnit. Test::Unit est installé par défaut avec le langage Ruby. La version de Watir est la 1.5.4 datant du 08/04/2008.

L’installation de Watir ne pose pas de problème, il suffit d’utiliser les commandes « gem ». L’archive est sous le forme d’un fichier gem.

gem install –local watir

Watir fonctionnait correctement sur des anciennes versions de Windows comme XP. Mais sur Windows Vista, cette librairie semble inutilisable. En effet, le navigateur démarre, même si la gestion des onglets est assez étrange. Par contre, il n’est pas possible d’aller plus loin comme remplir des champs ou cliquer sur des bouton. Cela semble provenir d’un problème de sécurité au niveau du système.

Il existe des portage de watir en java avec watij et en C# avec WatiN. Je n’ai testé que Watij qui pose exactement le même problème que Watir sous Windows Vista.

Il existe également des librairies en Ruby pour piloter les autres navigateurs. Safariwatir permet de piloter le navigateur Safari sous Mac OS uniquement (pas sous Windows). Il n’a donc pas beaucoup d’intérêt dans mes environnements techniques. Firewatir concerne le navigateur. Il fonctionne correctement sous Windows Vista (enfin !). La dernière version est la 1.1.1 du 08/04/2008. L’illustration avec le google test peut être la suivante :


require "firewatir"
test_site = "http://www.google.com"
ff = FireWatir::Firefox.new
ff.goto test_site
ff.text_field(:name, "q").set "pickaxe" # "q" is the name of the search field
ff.button(:name, "btnG").click # "btnG" is the name of the Search button

La seconde piste pour utiliser le langage Ruby pour les tests des applications web est d’utiliser la suite d’outils Selenium. Selenium remote control permet de faire des tests en pilotant des navigateurs web. Il n’est pas limité à un navigateur. Il n’est pas limité au seul langage Ruby. Il est possible par exemple d’utiliser le langage Java. Contrairement à Watir, Selenium est orienté exclusivement outil de test.

L’installation de la librairie Ruby est assez simple. L’archive Selenium remote control contient un serveur dans le dossier selenium-server. Le lancement de ce serveur se fait en double clickant sur l’archive selenium-server.jar ou par la commande java -jar selenium-server.jar. Le serveur utilise par défaut le port 4444.

Il est possible d’utiliser Selenium remote control avec 6 langages de programmation différents : dotnet, java, perl, php, python et Ruby. Pour utiliser le langage Ruby, il faut placer le fichier selenium.rb du dossier selenium-ruby-client-driver-* dans le dossier \lib\ruby\1.8 de l’installation du langage Ruby.

Selenium remote control permet de faire des tests en ruby avec de nombreux navigateurs. Il faut mettre au préalable l’exécutable correspondant au navigateur dans le path de Windows. Sous Windows Vista, les navigateurs IE, Firefox et Opera fonctionnent. Cela ne fonctionne pas pour les navigateurs Safari, Seamonkey et Flock. Voici un exemple du « google test » dans le cas du navigateur Firefox.


require "Selenium"
browser = Selenium::SeleniumDriver.new("localhost",4444,"*firefox","http://www.google.fr");
browser.start;
browser.open("http://www.google.fr");
puts browser.get_title();

Le troisième paramètre de l’operateur new définit le type de navigateur. « iexplore » pour IE, « *safari » pour Safari et « *opera » pour Opera. Si le navigateur n’est pas dans la liste des navigateurs par défaut, il est possible d’utiliser « *custom » suivi du chemin complet de l’exécutable du navigateur.


#browser = Selenium::SeleniumDriver.new("localhost",4444,"*custom E:/program/opera/Opera.exe","http://www.google.fr");

Publicités

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s


%d blogueurs aiment cette page :