Audit scenario 1 seule page

Bonjour,
Je suis en version 5.0.0.rc1 d’asqatasun avec vagrant et je rencontre des problèmes lors de l’audit de scénario.

J’ai créé un scénario simple dans lequel depuis google je vais sur wikipedia pour y faire une recherche. Cependant seulement la page google est auditée et non celles sur wikipedia.

{
  "id": "1a2ce3ec-a556-46c2-b73e-a2e26956884c",
  "version": "2.0",
  "name": "google",
  "url": "https://google.fr",
  "tests": [{
    "id": "8c9340ce-c5ee-482d-9c1e-85b330e49d33",
    "name": "test",
    "commands": [{
      "id": "fd9e0dd6-648d-4f7d-a2b5-1d8b2821eab1",
      "comment": "",
      "command": "open",
      "target": "https://www.google.fr/",
      "targets": [],
      "value": ""
    }, {
      "id": "70e45ec5-dba5-4342-846c-dab9e605dc92",
      "comment": "",
      "command": "setWindowSize",
      "target": "1200x1000",
      "targets": [],
      "value": ""
    }, {
      "id": "b80d9ea6-26b5-4570-8289-9ce575a89021",
      "comment": "",
      "command": "click",
      "target": "xpath=//input[@name='q']",
      "targets": [
        ["name=q", "name"],
        ["css=.gLFyf", "css:finder"],
        ["xpath=//input[@name='q']", "xpath:attributes"],
        ["xpath=//input", "xpath:position"]
      ],
      "value": ""
    }, {
      "id": "6c5b1451-7f8c-4552-8a84-e49a92b40f45",
      "comment": "",
      "command": "type",
      "target": "xpath=//input[@name='q']",
      "targets": [
        ["name=q", "name"],
        ["css=.gLFyf", "css:finder"],
        ["xpath=//input[@name='q']", "xpath:attributes"],
        ["xpath=//input", "xpath:position"]
      ],
      "value": "wikipedia"
    }, {
      "id": "e65f7d31-b8ae-4c87-af4e-8a169bcc90ef",
      "comment": "",
      "command": "click",
      "target": "xpath=//input[@value=\"Recherche Google\"]",
      "targets": [
        ["css=.qarstb", "css:finder"],
        ["xpath=//body/div/div[4]", "xpath:position"]
      ],
      "value": ""
    }, {
      "id": "17481913-2a97-4261-aee3-58ca341b8606",
      "comment": "",
      "command": "click",
      "target": "xpath=//*[text()=\"Wikipédia, l'encyclopédie libre\"]",
      "targets": [
        ["css=.g:nth-child(1) .tF2Cxc .LC20lb", "css:finder"],
        ["xpath=//div[@id='rso']/div/div/div/div/div/div/div/a/h3", "xpath:idRelative"],
        ["xpath=//h3", "xpath:position"]
      ],
      "value": ""
    }, {
      "id": "59531f4e-6892-4cb5-89f8-1923252eef14",
      "comment": "",
      "command": "type",
      "target": "name=search",
      "targets": [],
      "value": "france"
    }, {
      "id": "45ed1ce5-7bc5-40ee-8597-c75bd0a98bf0",
      "comment": "",
      "command": "click",
      "target": "xpath=//form[@id=\"searchform\"]/button",
      "targets": [
        ["css=.wvui-button", "css:finder"],
        ["xpath=//form[@id='searchform']/button", "xpath:idRelative"],
        ["xpath=//button", "xpath:position"],
        ["xpath=//button[contains(.,'Rechercher')]", "xpath:innerText"]
      ],
      "value": ""
    }, {
      "id": "1510b3df-1ebe-4f9e-b401-ab66b104c2e7",
      "comment": "",
      "command": "waitForElementVisible",
      "target": "xpath=//h1[@id=\"firstHeading\"][text()=\"France\"]",
      "targets": [],
      "value": "30000"
    }]
  }],
  "suites": [{
    "id": "5891c26a-1cfe-42da-a3f4-4fd47dbf4846",
    "name": "Default Suite",
    "persistSession": false,
    "parallel": false,
    "timeout": 300,
    "tests": ["8c9340ce-c5ee-482d-9c1e-85b330e49d33"]
  }],
  "urls": ["https://google.fr/"],
  "plugins": []
}

Sur ce scénario j’ai voulu créé mes propres xpath plutôt que ceux proposés lors de l’enregistrement avec selenium IDE mais cela ne change rien.

J’ai essayé plusieurs scénarios mais à chaque fois seul la 1ère page était auditée.

La seule fois où j’ai pu auditer 2 pages sur un scénario fût grâce à l’un des scénarios proposés en exemple https://gitlab.com/asqatasun/scenario-examples/-/tree/main/Websites/https—www.demarches-simplifiees.fr

Toutefois ce scénario visite de nombreuses pages, seulement 2 ont pu donc être auditées.

Je n’ai eu aucun problème lors du lancement de ces scénarios depuis selenium IDE.

Auriez-vous des idées sur ce qui empêcherait l’audit des différentes pages d’un scénario ?

Bonjour @fabricio !

Remarques sur les scénarios cités

Sur ton 1er scénario, tu cherches à auditer 2 sites web différents. Actuellement, ce n’est pas possible. Ce n’est pas obligatoirement pertinent, mais cette contrainte est posée dans Asqatasun. Donc actuellement, ce type d’audit ne fonctionnera pas.

Sur le scénario exemple Websites/https—www.demarches-simplifiees.fr, c’est normal… :slight_smile: Le scénario est ancien, utilise des sélecteurs XPath générés par selenium IDE qui sont plutôt friables et surtout sur la version française du site web. Or ce site évolue rapidement (donc certains selecteurs XPath peuvent ne plus fonctionner). Récemment, sur ce site, une détection de la langue est faite pour envoyer une page en anglais ou en français, mais par défaut le Firefox utilisé par Asqatasun est en anglais et cherche donc dans ce cas du texte en français sur une page en anglais ! C’est de notre faute nous n’avons pas mis à jour ce scénario exemple.

Ce scénario exemple Websites/https—www.demarches-simplifiees.fr vient d’être mis à jour et devrait fonctionner de nouveau normalement.

Remarque générale sur l’audit de scénario

Il y a plein de chose à prendre en compte dans la création d’un scénario avec selenium IDE et son usage dans Asqatasun :

  • Langue de Firefox selenium IDE vs Langue de Firefox Asqatasun (par défaut en anglais)
  • Les cookies déjà existants dans le Firefox selenium IDE qui vont changer le comportement des pages lors de l’enregistrement. Le Firefox utilisé par Asqatasun démarre à chaque audit avec un cache vite (donc sans cookies), ce qui peut changer le déroulé du scénario.
  • Le cache existant dans le Firefox selenium IDE qui provoque un déroulé du scénario rapide dans selenium IDE, mais pas dans le Firefox utilisé par Asqatasun (timeout identifié sur des sites web trop lourd et sur des sites web local audités via des services comme Ngrok ou Expose).

@mfaure a récemment mis à jour la documentation pour préciser plusieurs de ces points :

Once uploaded, a scenario is played on Asqatasun server. Technically, this means a headless Firefox (managed by Asqatasun) executes the desired scenario. This Firefox has an empty default profile with English as language.

You may also leverage Firefox profiles to have a separated environment for Selenium-IDE. To do so create a new profile, have Selenium-IDE extension installed, and simply replay the scenario to verify it actually works (you might need ModHeader to replay locally your scenario).

When creating a scenario, keep in mind the Firefox that will run it, is pristine ; no session in any website is created, no cookie is stored yet, no authentication has been made yet.

So if you create a scenario on an internationalized web application, and want to test it (let say) in French, you’ll have to trigger the relevant actions to switch the web application to French. Those actions must be part of the scenario, then you can record the business tasks you want to audit.

On the other side, the Asqatasun administrator could install a localized version of Firefox ESR (instead of the default English version).

Processus idéal pour l’audit de scénario

Principe

  • Lors de l’enregistrement du scénario : être le plus proche possible du Firefox Asqatasun qui fera tourner le scénario.
  • Lors de l’enregistrement du scénario, s’affranchir du cache de Firefox.
  • Lors de la vérification du scénario enregistré, s’affranchir du cache de Firefox.

Prérequis

utiliser un profil Firefox dédié à l’enregistrement des scénarios :

  1. Utiliser un profil Firefox dédié via la ligne de commande firefox -p
  2. Le configurer pour consulter les pages de préférences en anglais
  3. Le configurer pour ne pas conserver l’historique (navigation privé permanente)
  4. Installer l’extension selenium IDE et autoriser cette extension à fonctionner dans les fenêtres de navigation privé.
  5. Si besoin, installer une extension pour bypasser les règles CSP (content security policy) d’un site web et autoriser cette extension à fonctionner dans les fenêtres de navigation privé.

  1. Configurer Firefox pour consulter les pages de préférences en anglais :


  1. Configurer Firefox pour ne pas conserver l’historique (navigation privé permanente)


  1. Installer l’extension selenium IDE et autoriser cette extension à fonctionner dans les fenêtres de navigation privé.
    Sélection_061

Processus d’enregistrement du scénario

  1. Si le Firefox servant à enregistrer les scénarios est ouvert : il faut le fermer pour vider le cache (voir configuration recommandé en navigation privée permanente).
  2. Ouvrir le Firefox servant à enregistrer les scénarios
  3. Lancer directement selenium IDE, sans consulter aucune page web en amont.
  4. Lancer l’enregistrement du scénario.
  5. Sauvegarder le scénario (fichier your-scenario.side)
  6. Fermer le Firefox servant à enregistrer les scénarios.

Processus de vérification du scénario avant utilisation dans Asqatasun

  1. Si le Firefox servant à enregistrer les scénarios est ouvert : il faut le fermer pour vider le cache (voir configuration recommandé en navigation privée permanente).
  2. Ouvrir le Firefox servant à enregistrer les scénarios
  3. Lancer directement selenium IDE, sans consulter aucune page web en amont.
  4. Charger le scénario (fichier your-scenario.side)
  5. Jouer le scénario —> si tout ce passe bien ici, cela devrait fonctionner avec Asqatasun dans la majorité des cas.
  6. Fermer le Firefox servant à enregistrer les scénarios.