Skip to content


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 😉

Print Friendly, PDF & Email

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

2 Responses

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

  1. Sofia said

    Bonjour,

    Comment préciser le profile firefox avec lequel on veut travailler??
    En fait je test mon intranet et il ya un problème d'apparition de certificat SSL et le problème d'authentification kerberos.
    J'ai crée un profile firefox pour selenium et lors du lancement du serveur je lance cette commande:
    java -jar selenium-server.jar -firefoxProfileTemplate /home/sofia/Bureau/selenium/selenium-server-1.0.3/firefox -trustAllSSLCertificates
    j'ai mis le nouveau profil firefox sous le dossier du serveur RC.
    Dans le script python j'ai pas su ou mettre le chemin de profil firefox
    self.selenium = selenium("localhost", 4444, "*pifirefox ", "https://mon_intranet)

    une erreur apparait quand je spécifie le chemin "*pifirefox /path" dans cette options.

    a chaque lancement du test un nouveau profil se lance et les pop up pour le certificat et l'authentification apparaissent.
    quelqu'un a une idée je galère depuis 3 jours.
    Merci.

  2. admin said

    Je n'ai pas essayé avec les profiles, ma machine étant dédiée.
    Mais si des infos me parviennent... je reviendrais dessus.

Some HTML is OK

(required)

(required, but never shared)

or, reply to this post via trackback.

Time limit is exhausted. Please reload CAPTCHA.


/* */
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.