Présentation de Selenium RC
4 novembre 2017

Licence Creative Commons

Selenium Remote Control est un outil d'automatisation de tests fonctionnels pour application web. Il a été développé par Paul Hammant dans le but de contourner les limitations de Selenium Core.

À cause des politiques de sécurité que les navigateurs appliquent à JavaScript, l'application web et Selenium Core devaient être installés sur la même machine. Un Script chargé depuis un domaine ne pouvait pas interagir avec une ressource chargées depuis un autre domaine.

Pour résoudre ce problème, Paul Hammant ajoute un proxy HTTP qui sert à faire croire au navigateur que l'application web et Selenium Core appartiennent au même domaine. La politique de même origine (same-origine policy) est ainsi respecté.

Selenium RC est composé de deux éléments:
  • Le serveur qui lance et stop le navigateur, interprète et exécute les commandes Selenese transmises par le programme de test. Il contient le serveur proxy qui intercepte et vérifie les requêtes HTTP transmise entre le navigateur et l'application testée. 
  • La librairie client qui fournit une interface entre le serveur Selenium et le langage de programmation. Il existe différentes librairies pour chaque langage supporté. Les tests peuvent être implémenté en Java, Ruby,  Python, Perl, PHP ou C# .

Le schéma ci-dessous est une représentation du fonctionnement de Selenium RC

Selenium RC Architecture

1) Le client établit une connexion avec le serveur Selenium.
2) Lancement du navigateur avec une url qui injecte le code javascript de Selenium Core
3) Le client transmet au serveur Selenium une commande Selenese via une requête HTTP.
4) Selenium Core obtient la premiere instruction. En général, il s'agit de l'ouverture d'une page.
5) Le navigateur demande au serveur Selenium RC le contenu de la page web.
6) Le serveur Selenium RC demande au serveur web le contenu de la page en passant par le proxy.
7) Le navigateur reçoit la page et restitue le contenu dans un frame ou une fenêtre qui lui est réservé.

Le serveur Selenium RC est un exécutable jar (selenium-server-standalone-<numéro de version>.jar)
et nécessite donc l'installation d'une JRE. Il faut aussi ajouter que la partie client reçoit les résultats des commandes Selenese.

Selenium RC est compatible avec de nombreux navigateurs et peut être exécuté avec différents systèmes d'exploitation.

Navigateur Système d'exploitation
Firefox
  • Windows
  • Linux
  • Mac
Explorer
  • Windows
Safari
  • Mac
Opera
  • Windows
  • Linux
  • Mac
Chrome
  • Windows
  • Linux
  • Mac

Depuis 2008, Selenium Remote Control est devenu obsolète mais continue a être maintenu par les développeurs.    Il a été remplacé par Selenium WebDrivier qui est un outil beaucoup plus efficace et beaucoup plus puissant que Selenium RC.


A lire aussi:

Références: