Skip to content


HADOPI - Le Net en France : black-out

Tester avec « selenium » sous différentes plate-formes (IE, Firefox, etc…) vos sites internet / intranet

Logo_Mandriva.png

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 :

  1. 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)
  2. 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é)
  3. 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 :

  1. selenium-java-client-driver-1.0.1
  2. selenium-php-client-driver-1.0.1
  3. selenium-ruby-client-driver-1.0.1
  4. selenium-dotnet-client-driver-1.0.1
  5. selenium-perl-client-driver-1.0.1
  6. selenium-python-client-driver-1.0.1
  7. selenium-server-1.0.3

Le serveur se lançant par :

$ java -jar selenium-server.jar -log lelogquivabien.log
ou
C:> 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

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

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

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

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″.

The End ;)

Posted in Debian, Important, Linux, Mandriva, Technique, VirtualBox. Tagged with , , , , , .

0 Responses

Stay in touch with the conversation, subscribe to the RSS feed for comments on this post.

Some HTML is OK

(required)

(required, but never shared)

or, reply to this post via trackback.



droits-numeriques.org


Creative Commons License
Cette création par Laurent Besson est mise à disposition selon les termes de la licence Creative Commons Paternité-Partage des Conditions Initiales à l'Identique 2.0 France.