Article non terminé
![]()
Introduction :
Selenium est une suite de process différents permettant de mettre en œuvre des tests personnalisés afin de vérifier les affichages (de vos sites), les temps de ceux-ci, sur différentes plates-formes telles que IE, Firefox,etc…
Voir : http://seleniumhq.org/
Exemple :
- Un site intranet hébergé sur une machine avec l’adresse IP suivante : 10.1.1.200 (sous VirtualBox) (la machine sur laquelle est le site à tester)
- Une machine Windows 2003 serveur avec IE6, ayant l’adresse IP : 10.1.1.248 (sous VirtualBox) (la machine sur laquelle l’affichage et son temps est mesuré)
- Une machine Linux (Debian lenny 5.0) lançant les tests (construits sur celle-ci) avec l’adresse IP : 10.1.1.254 (un autre OS permettant d’avoir Firefox est juste nécessaire pour créer les tests)
Il faut télécharger :
Selenium IDE : http://release.seleniumhq.org/selenium-ide/1.0.5/selenium-ide-1.0.5.xpi à mettre sous Firefox.
Selenium RC : http://selenium.googlecode.com/files/selenium-remote-control-1.0.3.zip à installer sur toutes les machines qui testent vos sites (Windows, Linux, Mac…).
Selon votre OS allez jeter un œil sur : http://seleniumhq.org/download/previous.html
Le dés-archivage du fichier “selenium-remote-control-x.y.z.zip” créera un répertoire “selenium-remote-control-x.y.z” dans le quel se trouve la partie serveur “selenium-server-x.y.z”.
D’autres répertoires existent :
- selenium-java-client-driver-1.0.1
- selenium-php-client-driver-1.0.1
- selenium-ruby-client-driver-1.0.1
- selenium-dotnet-client-driver-1.0.1
- selenium-perl-client-driver-1.0.1
- selenium-python-client-driver-1.0.1
- selenium-server-1.0.3
Le serveur se lançant par :
$ java -jar selenium-server.jar -log lelogquivabien.logouC:> java -jar selenium-server.jar -log lelogquivabien.log
Préparation des machines :
La machine Windows :
Installer l’OS, y ajouter IE6 (http://www.microsoft.com/downloads/details.aspx?FamilyID=1E1550CB-5E5D-48F5-B02B-20B602228DE6&displaylang=fr)
Ajouter Java de Sun : http://www.java.com/fr/download/windows_ie.jsp?locale=fr&host=www.java.com
Java permettra de lancer le processus d’écoute sur la machine. Celui-ci attendant les instructions reçu de la part d’une autre machine…
—————————————————————————————————————————
La machine Linux (ou autre) :
Installer l’OS, y avoir Firefox. Ajouter le module complémentaire de Firefox (selenium-IDE) http://release.seleniumhq.org/selenium-ide/1.0.5/selenium-ide-1.0.5.xpi
Ajouter Java de Sun : http://www.java.com/fr/download/windows_ie.jsp?locale=fr&host=www.java.com
Java permettra de lancer le processus d’écoute sur la machine. Celui-ci attendant les instructions reçu de la part d’une autre machine…
—————————————————————————————————————————
Création des scripts :
Lancer Firefox, accéder au site à tester : http://10.1.1.200
Dans Firefox cliquez sur le menu “Outils”, choisissez “Selenium IDE”.

creation scripts
Puis on exportera ce script au format “Python”….. dns le répertoire “selenium-remote-control-x.y.z/selenium-python-client-driver-f.g.j”

Export sous Python
Voici la tête possible du script python créé :
from selenium import selenium
import unittest, time, re
class google-linux-wikipedia(unittest.TestCase):
def setUp(self):
self.verificationErrors = []
self.selenium = selenium("IP machine qui test", 4444, "*Navigateur testeur", "http://www.google.fr/ig")
self.selenium.start()
def test_google-linux-wikipedia(self):
sel = self.selenium
sel.open("/ig")
sel.type("q", "linux")
sel.click("btnG")
sel.wait_for_page_to_load("30000")
sel.click(u"link=Linux - Wikipédia")
sel.wait_for_page_to_load("30000")
sel.click("//table[@id='toc']/tbody/tr/td/ul/li[1]/ul/li[1]/a/span[2]")
def tearDown(self):
self.selenium.stop()
self.assertEqual([], self.verificationErrors)
if __name__ == "__main__":
unittest.main()
Mais il y a un petit souci, il manque deux ligne pour que lors de l’execution de celui-ci vous n’ayez pas de message d’erreur !
Vous devez ajouter :
#!/usr/bin/python # -*- coding: utf-8 -*-
Le code produit est donc :
#!/usr/bin/python
# -*- coding: utf-8 -*-
from selenium import selenium
import unittest, time, re
class google-linux-wikipedia(unittest.TestCase):
def setUp(self):
self.verificationErrors = []
self.selenium = selenium("$IP machine qui test", 4444, "*$Navigateur testeur", "http://www.google.fr/ig")
self.selenium.start()
def test_google-linux-wikipedia(self):
sel = self.selenium
sel.open("/ig")
sel.type("q", "linux")
sel.click("btnG")
sel.wait_for_page_to_load("30000")
sel.click(u"link=Linux - Wikipédia")
sel.wait_for_page_to_load("30000")
sel.click("//table[@id='toc']/tbody/tr/td/ul/li[1]/ul/li[1]/a/span[2]")
def tearDown(self):
self.selenium.stop()
self.assertEqual([], self.verificationErrors)
if __name__ == "__main__":
unittest.main()
Légende :
$IP machine qui test = ici c’est l’IP du Windows 2003, soit 10.1.1.248
$Navigateur testeur = firefox, iexplorer…
#!/usr/bin/python # -*- coding: utf-8 -*-
Le code produit est donc :
#!/usr/bin/python
# -*- coding: utf-8 -*-
from selenium import selenium
import unittest, time, re
class google-linux-wikipedia(unittest.TestCase):
def setUp(self):
self.verificationErrors = []
self.selenium = selenium("10.1.1.248", 4444, "*iexplorer", "http://www.google.fr/ig")
self.selenium.start()
def test_google-linux-wikipedia(self):
sel = self.selenium
sel.open("/ig")
sel.type("q", "linux")
sel.click("btnG")
sel.wait_for_page_to_load("30000")
sel.click(u"link=Linux - Wikipédia")
sel.wait_for_page_to_load("30000")
sel.click("//table[@id='toc']/tbody/tr/td/ul/li[1]/ul/li[1]/a/span[2]")
def tearDown(self):
self.selenium.stop()
self.assertEqual([], self.verificationErrors)
if __name__ == "__main__":
unittest.main()
Lancement du serveur selenium-server.jar sur le Windows 2003
cd C:selenium-remote-control-x.y.zselenium-server-x.y.z
java -jar selenium-server.jar -log lelogquivabien.log
Le lancement donne :

Lancement de Selenium Serveur
Puis sur la machine Linux ou autre, on lance le script Python :
$ cd /home/lolo/Partage/SOURCES-TGZ/selenium/selenium-remote-control-1.0.3/selenium-python-client-driver-1.0.1 $ python2.5 detailsyntheseepmsi-distant-ie.py

Le test en cours
———————————————————————————————————-
Petite astuce : Dans les noms des scripts mettre des “_” plutôt que des “-”, en effet lors de l’export par l’IDE de Firefox, celui-ci forme le nom des classes et définitions à partir de celui du fichier. Or lors du lancement du script python cela échoue. Exemple, mettre “test_de_mon_intranet_sous_ie6.html”, dans le script la classe aura le nom de “test_de_mon_intranet_sous_ie6″.
Article non terminé
