Selenium (informatique)

Un article de Wikipédia, l'encyclopédie libre.
Sauter à la navigation Sauter à la recherche
Selenium

Description de l'image Selenium IDE.png.
Informations
Dernière version 3.14.0 ()
Dépôt github.com/SeleniumHQ/seleniumVoir et modifier les données sur Wikidata
État du projet Actif
Écrit en Java
Système d'exploitation Microsoft WindowsVoir et modifier les données sur Wikidata
Environnement multiplateforme
Type Framework
Licence Licence Apache 2.0
Site web http://seleniumhq.org/

Selenium est un framework de test informatique développé en Java.

Il permet d'interagir avec différents navigateurs web de même que le ferait un utilisateur de l'application. Il entre ainsi dans la catégorie des outils de test dynamique (à l'inverse des tests statiques qui ne nécessitent pas l'exécution du logiciel) facilitant le test fonctionnel.

Il est associé à

  • Selenium IDE, extension Firefox, pour l'utiliser ;
  • Selenium WebDriver, successeur de Selenium Remote Control (RC) devenu depuis officiellement obsolète[1]. Il permet d'écrire des tests automatisés en différents langages (PHP, Python, Ruby, .NET, Perl et Java).

Exemples de tests avec Selenium[modifier | modifier le code]

require_once 'PHPUnit/Extensions/SeleniumTestCase.php';

class CategoryModifTest extends PHPUnit_Extensions_SeleniumTestCase
{
  protected function setUp()
  {
    $this->setBrowser("*firefox");
    $this->setBrowserUrl("http://...");
  }

  public function testCategoryModif()
  {
    $this->open("http://...");
    $this->type("modlgn_username", "admin");
    $this->type("modlgn_passwd", "password");
    $this->click("link=Connexion");
    $this->waitForPageToLoad("30000");
    $this->open("http:.../administrator/index.php?...");
    $this->waitForPageToLoad("30000");
    $name = $this->getTable("//div[@id='element-box']/div[2]/form/table.2.2");
    $this->click("link=".$name);
    $this->waitForPageToLoad("30000");
    $this->type("name", "Ordinateurs portables modifié");
    $this->click("//td[@id='toolbar-save']/a/span");
    $this->waitForPageToLoad("30000");
    try {
        $this->assertTrue($this->isTextPresent("Ordinateurs portables modifié"));
    } catch (PHPUnit_Framework_AssertionFailedError $e) {
        array_push($this->verificationErrors, $e->toString());
    }
    $this->click("link=Ordinateurs portables modifié");
    $this->waitForPageToLoad("30000");
    $this->type("name", "Ordinateurs portables");
    $this->click("//td[@id='toolbar-save']/a/span");
    $this->waitForPageToLoad("30000");
    $this->click("link=Déconnexion");
    $this->waitForPageToLoad("30000");
  }
}

Interopérabilité[modifier | modifier le code]

En PHP, Selenium s'interface avec PHPUnit[2], voire avec Behat (en) en utilisant la bibliothèque Mink[3].

Références[modifier | modifier le code]

  1. « Selenium - Web Browser Automation », sur www.seleniumhq.org (consulté le 20 avril 2017)
  2. Chaine complète de test avec Selenium IDE, Selenium RC et PHPUnit
  3. (en) Junade Ali, Mastering PHP Design Patterns, Packt Publishing Ltd, (lire en ligne)