Première sortie de Selenium IDE

Posté par  . Modéré par Mouns.
Étiquettes :
0
6
fév.
2006
Mozilla
Selenium est un outil entièrement écrit en Javascript qui permet de tester une application web en jouant des scénarios directement dans le navigateur. Selenium IDE est une extension de Firefox qui permet d'enregistrer des tests Selenium.

Les scénarios sont rédigés soit sous formes de tables HTML (à la manière de FIT), soit sous forme de programmes qui pilotent le navigateur (Ruby, Python, Java, C#).

Ces outils se sont récemment réunis sous une même bannière : OpenQA (QA pour Quality Assurance ou Assurance Qualité dans la langue de Molière). Les fonctionnalités suivantes sont proposées :
  • Enregistrement automatique des actions
  • Localisation des éléments de manière intelligente
  • Possibilité d'inclure ses extensions Selenium
  • Rejouer rapidement le test
  • Copier/coller très complet
  • Maîtrise du format des fichiers
  • Sauvegarde en tests HTML ou Ruby

Ces outils sont sous licence Apache 2. Selenium est un outil impressionnant de simplicité, de puissance et de souplesse à la fois. La relative pauvreté du mode "tables HTML" pour contrôler le flot est en fait voulu et force à se placer dans des conditions de tests très déterministes ce qui est un facteur de qualité des tests.

Mené par Shinya Kasatani, le Selenium IDE s'appelait précédemment Selenium Recorder et a repris beaucoup d'idées de Selenium Test Editor écrit par Hoa Dung Ha Duong.

Il apporte un réel plus pour enregistrer des tests.

Sur une application qui serait développée avec un HTML suffisamment clair (pas du HTML4 plein de tableaux), il permettrait à un utilisateur de saisir des tests de manière quasi autonome.

Une vidéo de démonstration est disponible sur le site.

Aller plus loin

  • # Plugin ruby on rails

    Posté par  . Évalué à 8.

    pour ceux qui utilisent ruby on rails, il y a un plugin ici : http://andthennothing.net/archives/2006/02/05/selenium-on-ra(...)


    This plugin does four things:

    1. The Selenium files don’t have to pollute /public, they can stay in the Selenium gem or in /vendor/selenium/javascript.
    2. No need to create suite files, they are generated on the fly—one suite per directory in /test/selenium (suites can be nested).
    3. Instead of writing the test cases in HTML you can use ERb/RHTML or Selenese (a template provided by this plugin).
    4. Loading of fixtures and wiping of session (/selenium/setup).
  • # Appli Web

    Posté par  . Évalué à 3.

    Est ce que ca marche aussi avec XUL ?
    Peut-on s'en servir pour tester ses extension Mozilla ?
    • [^] # Re: Appli Web

      Posté par  . Évalué à 4.

      Dans l'état actuel du code, je ne pense pas (les locator s'appliquent à document).
      Par contre le code est très bien écrit et une évolution pour tester des extension Mozilla serait sûrement intéressante.
  • # WebInject

    Posté par  (site web personnel) . Évalué à 2.

    Une sauvegarde en XML serait intéressante pour le ré-injecter dans webinject[1] et réaliser ainsi des tests applicatifs. En effet, dans mon cadre (supervision avec nagios), la dépendance forte sur un navigateur n'est pas souhaitable...
    Visiblement, on peut écrire de nouvelles fonctions pour la sauvegarde, ce serait donc possible.

    [1]: http://www.webinject.org/
    --
    Raphaël 'SurcouF' Bordet
    • [^] # Re: WebInject

      Posté par  . Évalué à 2.

      Je ne suis pas sûr que l'on soit au même niveau.
      Webinject s'occupe de test avec Http alors que Selenium test l'interface dans le navigateur. Donc, d'une part, Selenium test aussi le javascript mais surtout décrit les actions utilisateur : rentrer xxx dans tel champs sans forcément savoir quel est le résultat final en terme de formulaire (ce qui sera envoyé par Http).

      J'avais a un moment regardé une solution de tests par Http qui s'appelle webtst ( http://webtst.assisrosa.com ) : l'utilisateur peut enregistrer des tests avec un proxy qui enregistre les trames Http. Le test peut ensuite être rejoué et comparé au résultat précédent.
      • [^] # Re: WebInject

        Posté par  (site web personnel) . Évalué à 1.

        Je vois. En fait, je suis à la recherche d'un outil me permettant d'enregistrer des "scénarios" comme le permet Seleniume IDE mais aussi LiveHTTPHeaders (bien que ça n'enregistre que les entêtes) et à même de rédiger les fichiers de configuration (en XML) pour WebInject (ou, à la rigueur, tout autre outil du même genre permettant de remonter une alerte à nagios).
        Tout ce qu'il me manque jusqu'à présent, c'est l'outil qui saura convertir les requêtes HTTP en fichiers de configuration XML (et du temps aussi).
        Etant donné que Selenium IDE permettait manifestement d'enregistrer au format HTML, je me demandais si c'était possible d'en faire autant en XML, les langages de descriptions étant sensiblement assez proches, àmha.
        • [^] # Re: WebInject

          Posté par  . Évalué à 1.

          Selenium-IDE permet d'enregistrer les scénarios avec Firefox uniquement. Mais ensuite il est possible de les rejouer avec MS-IE, et d'autres navigateur, sur Linux, OSX ...
          Enfin il faut faire un tour dans les options de Selenium-IDE pour voir que le format de sortie (par défaut table HTML) est completement configurable. Et si ca ne suffit pas, un petit coup de XSLT fera l'affaire.

          J'attend beaucoup de cet outil, Selenium permet d'automatiser des tests fonctionnels, mais le driver/proxy est un peu en chantier semble-t-il. Derrière OpenQA, il y a ThoughWorks et ca met en confiance.

          Sinon, pour élargir l'horizon : http://opensourcetesting.org/

          Bruno
  • # tres fort

    Posté par  . Évalué à 1.

    tres fort, felicitation aux developpeurs "concecutif" de ce projet. Des web tests sont tjrs tres pratique pour un dev web.
    • [^] # Re: tres fort

      Posté par  . Évalué à 2.

      Bah désolé même si je trouve le truc puissant visiblement pratique etc.
      Je me demande concrêtement comment l'utiliser. Quel utilité ça a vraiment ? Ca m'échappe un peu. En quoi un site web à besoin d'être testé ?
      • [^] # Re: tres fort

        Posté par  (site web personnel) . Évalué à 4.

        ça dépend des sites web. on ne sous-entend ici que les sites web dynamiques bien sûr (php, servlets/jsp java, etc). une "application web" est comme toutes applications, au cours de sa vie des fonctionnalités sont modifiées, et il est très utile de disposer d'une infrastructure de tests unitaires et d'ensemble automatiques afin de détecter au plus vite les régressions. c'est plutôt facile pour toutes les applications command line ou dialoguant par flux normalisé (xml, base de données etc) mais moins pratique pour les interfaces utilisateurs graphiques ; selenium fournit une solution dans ce dernier cas de figure pour les applications web.

        en espérant avoir été agréable à ton oreille.
      • [^] # Re: tres fort

        Posté par  . Évalué à 1.

        Je travail actuellement sur un projet hébergé sur 16 instances weblogic. Parfois, lors de la création d'un compte, on a une page d'erreur. Ca arrive TRES rarement, et les utilisateurs ne nous ont jamais donné les informations necessaires pour identifier le serveur. Grace à ce genre d'outil, on va pouvoir faire tourner la création de compte toute la nuit, et on aura plus qu'à regarder l'heure de plantage. apres, sur chacun des serveur, regarder dans le log à l'heure indiquée.

        Donc pour ma part, je trouve cela tres pratique, et je vais m'en servir frequemment. Ce qui serait encore mieux, ca serai de pouvoir prendre les saisies dans un fichier ou une base. Par exemple si je veux tester mes deux millions de comptes, ben j'aimerai pouvoir dire "login" = select * from matable...

        Voila un exemple d'utilisation...

        JMS
        • [^] # Re: tres fort

          Posté par  (site web personnel) . Évalué à 1.

          Je travail actuellement sur un projet hébergé sur 16 instances weblogic. Parfois, lors de la création d'un compte, on a une page d'erreur. Ca arrive TRES rarement, et les utilisateurs ne nous ont jamais donné les informations necessaires pour identifier le serveur. Grace à ce genre d'outil, on va pouvoir faire tourner la création de compte toute la nuit, et on aura plus qu'à regarder l'heure de plantage. apres, sur chacun des serveur, regarder dans le log à l'heure indiquée.

          Sans doute conviendra-t-il alors, si le test n'est toujours pas concluant, de le rejouer aux heures normalement ouvrées parce que la nuit, l'utilisation des ressources peut-être sensiblement différente (sauvegardes, moins d'utilisateurs, etc.).
      • [^] # Re: tres fort

        Posté par  . Évalué à 3.

        Beaucoup d'entreprises aujourd'hui développent leurs applications métier en applications dites "web", c'est à dire avec un serveur http et en utilisant le navigateur comme client. Outre l'effet de mode évident, l'idée est de ne pas avoir à déployer de produit, d'avoir des technologies standards, sans dépendence à un seul système/produit, de vendre des gros serveurs....

        Dans ce cas ce sont des applications métier. Dans ce genre d'application, la difficulté n'est pas dans l'algoritmique mais plus dans le comprendre et respecter la spécification, ce que veut le client, et avoir un produit évolutif.

        Dans ce contexte, les tests fait par une personne différente du développeur sont un grand plus.
        - celui qui fait les tests à souvent une vision orientée par les données, tandis que le développeur à une vision orientée par les traitements, et là déjà on trouve plein de bugs.
        - La meilleur façon de clarifier la spécification est souvent de raconter un scénario. C'est exactement ce que l'on fait avec un test
        - Le test est une vrai capitalisation lorsque l'on veut faire évoluer le produit. Tu peux reprendre les entrailles de la bête et s'assurer pourtant que rien ne devrait être cassé en terme de fonctionnalités
  • # merci

    Posté par  (site web personnel) . Évalué à 2.

    un grand merci aux développeurs. un outil très pratique et déjà bien abouti !
    • [^] # Re: merci

      Posté par  . Évalué à 0.

      oui merci, on pourra bientot s'en servir pour cliquer sur les pubs de linuxfr :o)

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.