Comme dans l'audiovisuel, la première difficulté dans la création d'un scénario n'est pas sa traduction technique mais sa conception. Quelles sont les situations à traiter ? Quel sera le décor, le contexte, de l'action ? Quel enchaînement des actions ? Comment exprimer le maximum de choses (tester les fonctionnalités majeures) dans un minimum de “plans”.
Plusieurs outils permettent de bâtir des fichiers de scenarii par imitation d'une navigation à travers un navigateur classique.
Ce type de technologie permet de se focaliser sur le scenario lui-même. Quelle(s) séquence(s) veut-on jouer ? L'outil se charge de l'enregistrer afin que l'on puisse la rejouer à volonté.
Fidèle à son approche neutre, jMeter permet d'intercepter une séquence de navigation depuis tout navigateur et de la traduire, à la volée, en actions de scenario jMeter que l'on pourra disséquer, adapter et intégrer dans un scenario jMeter.
On crée un proxy dans jMeter et l'on configure le navigateur que l'on va utiliser pour l'apprentissage afin qu'il accède au site visé, à travers ce proxy.
Ce peut être un moyen heuristique de construire des action complexes telles qu'une authentification ou tout autre remplissage de formulaire classique ou d'interaction ajax. Même si le résultat n'est pas “plug&play”, on obtient du “code” de scenario à partir duquel on peut démarrer le travail.
Sources : Site officiel de SeleniumHQ
Selenium fait figure de référence dans le domaine de la construction de scenarii par imitation.
Dans la confusion des appellations, il faut prendre garde à ne pas confondre Selenium IDE et Selenium Builder. Les deux permettent d'apprendre des scenarii à partir d'une navigation mais permettent également d'éditer le code du scénario. Selenium Builder offre plus de formats d'enregistrement des scenarii, permettant notamment de créer des scenarii qui pourront être joués par Tanaguru1).
Les deux se bornant aux interactions “à l'intérieur” du code html/javascrip, ils sont incapables de résoudre correctement l'authentification par protocole (http), tel que htaccess. Cela rappelle que le navigateur remplit deux fonctions bien disnctinctes. D'une part, c'est un interpréteur html/css/js et, d'autre part, c'est un client http.
Un scénario créé dans Selenium IDE peut être joué par une application dédiée : Selenium Webdriver. Cette dernière peut piloter des instances de navigateurs “du commerce” (firefox, IE…) mais aussi HtmlUnit, un puissant navigateur dépourvu d'interface graphique.
On peu également jouer un scenario sur des machines distantes, grâce au serveur Selenium Grid.
Lorsque que l'outil d'apprentissage ne peut pas communiquer avec le logiciel qu'il surveille à travers une API, il peut encore s'appuyer sur le graphisme. Bien sûr, cela n'est pertinent que lorsque le logiciel surveillé présent une interface graphique.
Sikuli relève ce défi et s'appuie sur la reconnaissance des formes, au sein de l'interface. Cela permet de traiter2) le problème de l'authentification http, par interaction avec la fenêtre modale ouverte par le navigateur. C'est un bon exemple pour en mesure les limites. Opérant sur l'interface graphique et non sur le protocole, elle donne une solution dépendant aussi bien du navigateur sur de sa présentation (système d'exploitation, environnement de bureau, bibliothèque graphique, skin…).