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

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 :

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

Article non terminé

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



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.