Création de scénarios Selenium

Pour une personne souhaitant créer ses scénario Selenium

Step-by-step guide – Installation de l’IDE

 

    1. Installation de Selenium IDE. Il s’agit d’un plugin Firefox qui s’installe comme un plugin classique.
    2. Lien direct vers le plugin firefox Selenium IDE : https://addons.mozilla.org/en-US/firefox/addon/selenium-ide/
      C:\39172b3f40c4fce4518e61471ac4f731
    3. Installer le plugin et redémarrer le navigateur
      C:\1b4ab3fa4c27e45cfec10b7b39f0f6e6
    4. Dans Selenium IDE aller dans Options > Options > Format Tab
    5. Cliquer sur Ajouter en bas de page
    6. Mettre le nom : « Perl-Webdriver »
    7. Coller le contenu complet du fichier disponible ici
    8. Cliquer sur Sauvegarder, puis OK.
    9. Fermer Selenium IDE et le lancer de nouveau
    10. Aller dans Options > Options > Format
    11. Sélectionner le format qui vient d’être ajouté : Perl-WebDriver
      C:\85b0fb83ce5104f68d62fd200edf75e8
    12. Dans le champ Header, remplacer le code actuel par celui disponible dans ce fichier (Attention à bien copier/coller les sauts de lignes en bas du code) :
      ################################# Start Header #######################################
      use strict;
      use warnings;
      use Selenium::Remote::Driver;
      use Selenium::Remote::RemoteConnection;
      use Selenium::Remote::ErrorHandler;
      use Test::More;
      use Time::HiRes;
      use Data::Dumper;
      use Carp;
      use Try::Tiny;
      my $server = shift;
      my $port = shift;
      my $url = shift;
      my $browser = shift; #pour utilisé un navigateur il faut télecharger son driver et mettre le lien dans la variable PATH
      my $login = shift;
      my $password = shift;
      my $rc = Selenium::Remote::RemoteConnection->new(
          remote_server_addr => $server,
          port               => $port,
      );
      my $statusServer = $rc->request({method => 'GET', url => 'status'});
      if($statusServer->{cmd_status} eq "NOTOK"){
          print "Cannot connect to $server:$port";
          exit 3;
      }
      my $driver;
      try {
          $driver = Selenium::Remote::Driver->new('browser_name' => $browser,'remote_server_addr' => $server,'port' => $port,'base_url' => $url);
      } catch {
          print "Webdriver not installed or browser not supported";
          exit 3;
      };
      try{
      ################################# Fin Header ######################################### 
      

       

    13. Dans le champ Footer, remplacer le code actuel par celui-ci (Attention à bien copier/coller les sauts de lignes en haut du code)
      
      ################################# Start Footer #####################################
      #mettre ce code dans la zone de texte Footer : ouvrir selenuim IDE -> menu Options -> options... -> onglet Format -> selectionner le formater
      #Perl-Webdriver
      } catch {
          $driver->quit();
          exit 2;
      };
      $driver->quit();
      exit 0;
      ################################ End Footer #########################################

       

Générer un plugin en code Perl

 

      1. Ouvrir Selenium IDE
      2. Cliquer sur le bouton Enregistrer
        C:\e66ebc55b97ddc2796d2d2b8f0f24342
      3. Exécuter le scénario dans le navigateur
      4. Cliquer sur le bouton Enregistrer pour stopper l’enregistrement
      5. Pour conserver le scénarii pour le modifier ensuite, il faut le sauver. (Il est impossible d’importer un scénarii exporté)
      6. Aller dans Fichier > Exporter le Test Sous > Perl-Webdriver
        C:\5e49bdcd3edf13761b81b80014f5c317
      7. Enregistrer en tant que <nom_scenario>.pl
      8. Editer le fichier Perl obtenu si nécessaire
      9. Une fois le scénario correct, le placer sur la SNB qui supervise l’équipement sur lequel est installé le serveur Sélénium dans /usr/local/nagios/libexec/selenium (Uploader le fichier grâce à WinScp ou autre outil)
      10. Sur la SNB dans /usr/local/nagios/libexec/selenium
        1. Changement de propriétaire : chown nagios:nagios <nom_fichier>
        2. Donner les droits d’éxécution sur le fichier : chmod a+x <nom_fichier>
      11. Ajouter un Service dans ServiceNav de la façon suivante : (Les informations non détaillées ci dessous, doivent être reprises dans les autres documentations – configuration des notifications, des relations ….)
        1. Modèle de Service : Global-Selenium-Scenario
        2. Serveur Selenium : IP du serveur Selenium (le serveur doit être joignable par la box)
        3. Port Selenium : « 4444 »
        4. Nom du scénario : <nom_scenario>.pl
        5. identifiant
        6. Navigateur : « firefox » ou « chrome » ou « internet explorer »
        7. Seuil d’alerte : Temps en seconde au delà duquel, le temps d’exécution du scénario fait passer le statut du service à l’état Alerte
        8. Seuil critique: Temps en seconde au delà duquel, le temps d’exécution du scénario fait passer le statut du service à l’état Critique
        9. URL de base : Adresse de démarrage du scénario

C:\9dc6bb1d75eeb801d128b212ec6bf885

 

Modification du script perl

Dans certains cas il peut être intéressant de modifier le script perl.

Ouverture en taille maximale du navigateur

Par défaut le navigateur ne se lance pas en taille maximale (notamment Chrome), pour passer le navigateur en plein écran il faut ajouter la ligne dans le script :
$driver->maximize_window();

Déboguer un scénario Sélénium

Dans certains cas, il peut être intéressant de visualiser via un navigateur ce qui est réalisé par le navigateur

Pour cela il faut suivre la procédure suivante :

  • Couper le service windows du serveur selenium
  • Lancer le service en ligne de commande. Pour cela lancer cmd.exe, se positionner dans le dossier Selenium et lancer la commande suivante
    java.exe -jar selenium-server-standalone-3.4.0.jar -port 4444

    (adapter la version du serveur si nécessaire et le port si nécessaire)

  • Au niveau de la fenêtre CMD, il y a l’ensemble des logs avec à chaque fois la raison de l’erreur
  • Le navigateur se lance sur la session courante, il est possible de voir ce qu’il lance réellement et ce qu’il se passe.
  • Au niveau du script il est possible de rajouter des $driver->pause(2000) ; pour faire des pauses de 2 secondes entre chaque étape et bien voir ou se situe un éventuel problème au niveau du code.

Pour remettre en fonctionnement normal :

  • Fermer la fenêtre CMD
  • Relancer le service Windows
  • Enlever les pauses (pour éviter les KO à cause du temps)
Facebook
Google+
Google+
http://servicenav.coservit.fr/documentation/creation-de-scenarios-selenium/
Youtube
Youtube
LinkedIn