Outils pour utilisateurs

Outils du site


scenarii

Différences

Ci-dessous, les différences entre deux révisions de la page.


scenarii [2014/01/22 23:02] (Version actuelle) – créée - modification externe 127.0.0.1
Ligne 1: Ligne 1:
 +====== Scenarii de test ======
 +===== Méthodologie de scénarisation =====
 +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".
 +===== Création de scripts par imitation =====
 +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é.
 +==== jMeter ====
 +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 [[http://jmeter.apache.org/usermanual/component_reference.html#HTTP_Proxy_Server|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.
 +
 +==== Selenium ====
 +Sources : [[http://docs.seleniumhq.org/|Site officiel de SeleniumHQ]]
 +
 +[[wp>Selenium_(software)|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 [[wp>Selenium_(software)#Selenium_IDE|Selenium IDE]] et [[http://sebuilder.github.io/se-builder/|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 [[http://tanaguru.org/|Tanaguru]]((Pour Tanaguru, les scénarios doivent être enregistrés au format par défaut //Selenium 2// (.json) )).
 +<note>
 +//Selenium Builder// est également disponible sous forme pré-packagée dans [[http://saucelabs.com/docs/builder|Sauce Builder]].
 +</note>
 +
 +Les deux se bornant aux interactions "à l'intérieur" du code html/javascrip, ils sont [[http://stackoverflow.com/questions/2085348/getting-selenium-to-login-via-htaccess-popup|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 : [[wp>Selenium_(software)#Selenium_WebDriver|Selenium Webdriver]]. Cette dernière peut piloter des instances de navigateurs "du commerce" (firefox, IE…) mais aussi [[wp>HtmlUnit|HtmlUnit]], un puissant navigateur dépourvu d'interface graphique.
 +
 +On peu également jouer un scenario sur des machines distantes, grâce au serveur [[wp>Selenium_(software)#Selenium_Grid|Selenium Grid]].
 +==== Sikuli ====
 +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.
 +
 +[[http://www.sikuli.org/|Sikuli]] relève ce défi et s'appuie sur la reconnaissance des formes, au sein de l'interface. Cela permet de traiter((De manière très circonstancielle)) 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…).