Versions publiées et à venir d'Agilitest

Ce changelog vous présente la liste des derniers développements, ajouts et corrections de bug dans Agilitest.

Prochaine version :

Nous travaillons !

Nous travaillons actuellement sur d'autres évolutions et valeurs ajoutées, sans date de publication prévue, revenez bientôt pour de nouvelles mises à jour.

Changelog :

Version :
3.1.4
Date de publication :  
26 juin 2026
  • Ajouté :
    • Tests Web à distance via un navigateur — Selenium Grid, BrowserStack et Sauce Labs
      • Agilitest exécute désormais vos tests Web sur des navigateurs hébergés à distance. Définissez vos fournisseurs (Selenium Grid, BrowserStack, Sauce Labs) dans un explorateur dédié, configurez le système d'exploitation et la version pour chaque navigateur, puis lancez l'exécution sur le fournisseur de votre choix depuis la fenêtre de ligne de commande — sans avoir à modifier votre projet.

    • Aide par IA pour les conditions JavaScript et la vérification des propriétés
      • Le bouton « AI » du sélecteur de conditions génère désormais du code JavaScript pur qui évalue la règle décrite. Le nouveau mode de vérification des propriétés affiche d'abord la valeur en temps réel de la propriété sur la page, puis propose plusieurs expressions régulières de validation à différents niveaux de rigueur.

    • Exécution native sous Linux
      • agi-container fonctionne désormais en mode natif sous Linux : la pile de conteneurs s'exécute via un service systemd racine (containerd/nerdctl), la mise en réseau par pont CNI est intégrée, et l'installation ne nécessite qu'une seule utilisation de `sudo` (l'utilisation quotidienne ne nécessite pas de `sudo`). Les opérations de récupération, d'exécution et de test fonctionnent toutes de bout en bout.

    • Mise à jour automatique intégrée : mise à jour d'agi-container
      • Nouvelle commande « agi-container update » qui relance le programme d'installation officiel pour télécharger et installer la dernière version publiée, arrête le démon, remplace les binaires et redémarre le service, puis affiche la version installée. Elle gère de manière propre le remplacement de son propre exécutable en cours d'exécution.

    • Gestion du cache d'images : commande « auto-prune » et « prune »
      • ATS pèsent environ 6 Go ; ainsi, chaque nouvelle récupération d’un tag déplacé laissait derrière elle des couches orphelines qui finissaient par saturer le disque (« plus d’espace disponible sur le périphérique »). Désormais, chaque récupération réussie supprime automatiquement les images orphelines, et la nouvelle commande « agi-container prune [--all] » permet un nettoyage manuel, sans jamais toucher aux tags épinglés.

    • Contrôle du parallélisme : limite de conteneurs et ancrage des cœurs de processeur
      • En mode parallèle, le nombre de conteneurs simultanés est désormais limité (option --max-parallel, dont la valeur par défaut dépend du nombre de cœurs et de la mémoire vive) ; les suites en excès sont mises en file d'attente et démarrent dès que des créneaux se libèrent. Chaque conteneur Linux est également affecté à son propre groupe de processeurs (option --cpuset-cpus), ce qui empêche les pics d'utilisation du processeur de se propager aux conteneurs voisins et de provoquer des délais d'attente intermittents.

    • Interface en ligne de commande (CLI) accessible à tous les utilisateurs et bannière de version
      • « Install » installe désormais l'interface en ligne de commande (CLI) dans le répertoire /usr/local/bin afin que les comptes non-root (gitlab-runner, jenkins…) puissent exécuter agi-container, et une règle validée dans le fichier sudoers permet de démarrer le démon. Chaque exécution de CI affiche une bannière de version bien visible en haut de l'écran et émet un avertissement clair lorsque les versions de la CLI et du démon ne sont pas synchronisées.

    • Option de réseau hôte pour les conteneurs Linux (--net-host)
      • En cas de parallélisme intense, le NAT du réseau-pont peut devenir un goulot d'étranglement (chargement lent des pages, CPU inactif). La nouvelle option --net-host (désactivée par défaut) exécute les conteneurs Linux directement sur le réseau hôte, sans NAT.

    • Exécuter des tests Web sur des navigateurs distants via un fournisseur spécifié
      • Lancez des tests Web sur Selenium Grid, BrowserStack ou Sauce Labs en indiquant simplement le nom du fournisseur (via la ligne de commande, une variable d'environnement, un paramètre de suite ou l'option canal) ; le système d'exploitation et la version du navigateur sont extraits de la configuration du projet. Si le fournisseur ne propose pas le navigateur cible, l'exécution se fait alors en local, accompagnée d'un avertissement clair.

    • Tous les navigateurs acheminés via l'exécution à distance
      • Safari, Brave, Vivaldi et Opera peuvent désormais fonctionner sur un serveur distant, aux côtés de Chrome, Edge, Firefox et IE. Une session Safari à distance bénéficie des capacités appropriées (browserName=safari) au lieu d'utiliser Chrome par défaut.

    • Gestion des groupes directement à partir du rapport HTML
      • Le rapport d'exécution vous permet désormais d'ajouter ou de supprimer un test d'un groupe, ainsi que de modifier les zones « Exécuter / Ne pas exécuter » playlist(glisser-déposer entre les zones, ajouter, supprimer) — aussi bien dans les rapports d'exécution unique que dans les rapports concaténés. Chaque action est enregistrée par l'éditeur.

    • Un tableau de bord de projet plus complet et personnalisable
      • Le tableau de bord du projet propose une section permettant d'inclure ou d'exclure des modèles (table des matières regroupée par thème) ainsi que de nouvelles statistiques : activité des contributeurs, locator ,canal , utilisation des services web et maintenance . Les contributions Git sont associées aux utilisateurs d'Agilitest (pseudo + avatar) via leur adresse e-mail, leur nom et les alias Git qu'ils ont déclarés.

    • Gamification du tableau de bord (niveaux, quêtes, badges, tableau d'honneur)
      • Un nouveau thème ludique affiche le niveau du projet (Bronze → Diamant), les quêtes à accomplir, un classement « karma » des contributeurs pondéré en fonction des résultats, des badges (MVP, Fixer, Builder, Organizer…) et un « Hall of fame » présentant les records du projet (correction la plus rapide, test le plus fiable, etc.), chaque badge étant accompagné d’une infobulle explicative.

    • Tableaux de bord personnalisés conçus de manière visuelle
      • Un tableau de bord personnalisé peut être conçu dans l'éditeur, puis généré et compilé à la volée par ats à partir des données statiques du projet (scripts, actions, état de santé, Git, activité), avec un thème sombre commun. L'absence ou la défaillance d'un tableau de bord personnalisé n'entraîne jamais l'interruption d'une exécution.

    • Regroupement des menus du tableau de bord : création et modification de tableaux de bord personnalisés
      • Le menu « Tableau de bord » regroupe désormais deux actions distinctes : « Générer » et « Modifier », cette dernière permettant d'ouvrir l'éditeur visuel de personnalisation du tableau de bord.

    • Lancer une exécution sur un fournisseur de navigateur distant
      • La fenêtre contextuelle des lignes de commande propose désormais un sélecteur de navigateur. Le navigateur sélectionné est transmis à la commande d'exécution (via -Dats-browser-provider / browser-provider), ce qui vous permet de lancer un test sur un navigateur hébergé sur Selenium Grid, BrowserStack ou Sauce Labs sans avoir à modifier manuellement le projet.

    • Écran de démarrage avec une barre de progression réelle
      • Au démarrage, Agilitest affiche désormais une petite fenêtre d'accueil centrée (logo, animation et indicateur d'état) pendant que la fenêtre principale se prépare. L'indicateur d'état suit les différentes phases de démarrage (initialisation de l'interface utilisateur, initialisation de la licence, chargement du projet), ce qui vous permet d'être immédiatement informé de la progression.

    • Restaurer les onglets de script ouverts d'une session à l'autre
      • Les onglets ATS ouverts sont mémorisés par projet à la fermeture et restaurés au redémarrage, dans le même ordre et avec le même onglet actif. Le chargement se fait de manière différée : seul l'onglet actif est chargé immédiatement, les autres ne le sont qu'au premier clic, ce qui évite de ralentir l'ouverture du projet.

    • Programme d'installation et de désinstallation graphique intégré
      • Un nouvel installateur graphique est intégré à Agilitest et permet d'effectuer des installations, des mises à jour et des réinstallations sans avoir recours à PowerShell. Il offre une ATS sur place avec une barre de progression (sans fermer l'éditeur), une réinstallation de l'éditeur uniquement, ainsi qu'une véritable désinstallation (écran de confirmation suivi d'un journal d'opérations en temps réel). L'interface utilisateur fonctionne également sur Windows Server / RDP sans carte graphique.

    • Identité utilisateur plus riche : rôle, identités Git et avatars locaux
      • La fenêtre contextuelle d'identité intègre désormais un champ « Rôle » (avec des suggestions) et un champ « Identités Git » permettant de déclarer les adresses e-mail et noms supplémentaires sous lesquels vous effectuez des commits, afin que le tableau de bord puisse associer chaque commit au bon compte. L'avatar peut désormais être sélectionné à partir d'une grille prédéfinie intégrée localement (pour un fonctionnement hors ligne), d'une image ou de la webcam. Les fiches utilisateur affichent désormais le rôle et la signature système « utilisateur@machine ».

    • Afficher des notifications Toast lors des actions de copier-coller
      • Lors de la copie ou du collage d'actions, une notification s'affiche désormais pour indiquer le nombre d'actions concernées ainsi que le script source ou cible, ce qui vous offre une confirmation visuelle claire de l'opération.

    • Valeur spécialeats(stepscount)
      • Le menu « Insérer une valeur spéciale » propose désormais le nombre d'étapes exécutées viaats(stepscount), en plus de la description du test, de son identifiant et de ses groupes. La valeur est calculée lors de l'exécution.

    • Personnalisation des sections du tableau de bord
      • Une fenêtre contextuelle vous permet d'inclure ou d'exclure des sections du tableau de bord généré, regroupées par thème (accordeons et boutons bascules, avec un compteur par thème). La sélection est enregistrée dans les propriétés du projet et prise en compte lors de la génération. Le catalogue couvre les nouveaux thèmes (corrélations, gamification, tableau d'honneur, équipe…) compatibles avec le moteur de génération.

    • Prise en charge du moteur de conteneurs Rancher Desktop
      • Rancher Desktop est désormais reconnu comme un moteur de conteneurs (pour les clients qui ne peuvent pas installer Docker Desktop) et traité comme Docker grâce à son interface en ligne de commande (CLI) compatible. La détection, les menus et les vues des conteneurs/images l'intègrent tous, et la déduplication évite les doublons sur une machine équipée à la fois de Docker et de Rancher.

    • Installation en une seule commande et mises à jour automatiques
      • Installez ats à l'aide d'une seule commande (install.sh / 'irm install.ps1 | iex') qui télécharge et configure la dernière version. Le tracker se met ensuite à jour automatiquement chaque semaine (option activable dans les paramètres), avec un bouton de mise à jour manuelle et un panneau d'affichage de la version.
  • Fixé :
  • Evolution :
    • Informations détaillées sur l'environnement distant dans le rapport d'exécution
      • Pour un canal distant canal cloud), le rapport affiche désormais une ligne complète décrivant l'environnement : fournisseur, navigateur et système d'exploitation sous forme d'icône + nom + version (à la manière de Selenium-Grid-UI), ainsi qu'une vignette de navigateur (icône du système d'exploitation, icône du navigateur, version). La machine d'orchestration locale reste affichée au-dessus.

    • Rapport concaténé plus complet (logo, paramètres, groupes, JUnit/TestNG)
      • Le rapport concaténé (parallèle) rétablit désormais le logo, le filigrane, playlist , les filtres de groupe et les jetons, à l'instar du rapport standard, et fusionne les fichiers `junitreports/` et `testng-results.xml` afin que les intégrations CI (rapports JUnit de GitLab) fonctionnent également en mode parallèle.

    • Saisie mobile : fiabilité améliorée des libellés d'icônes et du contenu « innerText »
      • La capture d'éléments mobiles récupère désormais les libellés des boutons-icônes et des onglets via `contentDescription`/`hintText`/`value` lorsque `text()` est vide, et la propriété `innerText` d'un conteneur concatène le texte de ses enfants avec un tabulation (conformément à la convention #elem) au lieu de renvoyer un texte vide.

    • Modernisation de l'authentification OAuth2 et suppression des dépendances Jackson
      • L'authentification API OAuth2 a été réécrite sur la pile HTTP Java standard (en abandonnant Scribejava et la fonctionnalité OctoPerf, désormais obsolète), et tout le traitement JSON a été migré de Jackson vers Gson — ce qui a permis de supprimer complètement Jackson de la distribution afin d'obtenir une version plus légère et plus sûre. L'analyse Driver est également effectuée de manière plus souple.

    • La tolérance en matière de connectivité au serveur de licences diminue
      • Une connexion instable n'entraîne plus le retrait trop rapide du statut d'utilisateur validé. Le délai d'attente entre les tentatives de reconnexion est allongé et une période de tolérance de 15 minutes hors ligne est ajoutée : tant que la dernière validation remonte à moins de 15 minutes, l'utilisateur conserve son statut d'utilisateur validé pendant que les tentatives se poursuivent. Les refus explicites du serveur (compte révoqué, trop d'appareils) entraînent toujours un blocage immédiat.

    • Gestion des fournisseurs de navigateurs : URL cliquables et nomenclature rigoureuse
      • Dans l'explorateur de fournisseurs, l'URL du point de terminaison devient un lien cliquable qui ouvre le navigateur par défaut. La création ou la modification nécessite un nom unique et non vide, limité aux caractères autorisés (lettres, chiffres, tiret, trait de soulignement), avec un message d'erreur s'affichant en cas de doublon.

    • Menu déroulant à défilement pour les suites
      • Le sélecteur de suite d'exécution permet désormais de faire défiler la liste lorsqu'elle est longue, au lieu de déborder de la fenêtre, avec une hauteur maximale adaptée à la fenêtre de l'application.

    • Sélecteur de date dans la configuration de la suite

      • Le champ de saisie libre permettant de définir l'ordre des dates est remplacé par un sélecteur limité aux trois conventions courantes (par défaut : YMD, mais aussi DMY et MDY) et entièrement localisé. L'ordre choisi s'affiche à côté de la suite partout où celle-ci apparaît, mais uniquement lorsqu'il diffère du format ISO par défaut.

    • Réattribution automatique des scripts en cas de changement de nom
      • Lorsqu'un utilisateur modifie son nom, tous les scripts qu'il a créés ou modifiés sont automatiquement réattribués à son nouveau nom, avec une fenêtre contextuelle indiquant la progression de l'opération (celle-ci s'effectue par lots afin de préserver la réactivité de l'interface utilisateur).

    • Recherche du JDK et version minimale du JDK 21
      • La détection du JDK privilégie désormais un JDK installé dans le dossier local des outils Agilitest, et les messages indiquent clairement que la version minimale requise est désormais le JDK 21.

    • Réduction de l'utilisation du processeur et correction des fuites de mémoire
      • Un audit a permis de corriger de nombreux écouteurs d'événements jamais supprimés, des processus orphelins et des minuteries restées actives, et de remplacer plusieurs boucles infinies par des mécanismes à la demande. Il en résulte une utilisation réduite du processeur lorsque l'éditeur est inactif et une empreinte mémoire plus stable lors de longues sessions.

    • driver automatique driver SAP depuis le serveur
      • driver SAP se met driver à jour de la même manière que les pilotes Web : avant chaque lancement, il compare sa version locale à la dernière version publiée sur le serveur et télécharge automatiquement la version la plus récente si nécessaire. Finies driver manuelles driver .

    • Fonctionne derrière un proxy inverse TLS et prend en charge les importations volumineuses
      • Le tableau de bord déduit désormais automatiquement les paramètres ws/wss à partir de l'URL de la page, ce qui lui permet de fonctionner directement ou derrière un proxy TLS nginx. La limite de taille du corps de la requête a été portée à 64 Mo, ce qui permet d'importer sans problème des exportations complètes de la base de données.
  • Fixé :
    • Les rapports et les fichiers de test restent toujours accessibles après l'exécution sous Linux
      • Une fois l'exécution sous Linux terminée, les rapports et les fichiers enregistrés dans le projet sont restitués à l'utilisateur hôte (chown) avec des droits d'accès appropriés, et le répertoire du projet est rendu accessible en écriture au conteneur pendant l'exécution. Finis les rapports appartenant à l'utilisateur root que vous ne pouvez pas supprimer, et finies les erreurs du type « Opération non autorisée ».

    • Finis les conteneurs orphelins lorsqu'une tâche d'intégration continue est annulée
      • Lorsqu'une tâche CI était annulée, les conteneurs qu'elle avait lancés continuaient de s'exécuter sous le démon (conteneurs orphelins) et maintenaient le compteur d'exécutions à une valeur supérieure à zéro, ce qui bloquait les mises à jour. L'interface CLI nomme et arrête désormais ses conteneurs à la réception des signaux SIGTERM/SIGINT, même lorsqu'ils ont été réaffectés à un nouveau parent, et rétablit la propriété du répertoire `target/`.

    • L'installation ou la mise à jour n'interrompt plus une exécution en cours
      • Les commandes « install », « update » et « uninstall » refusent désormais de s'exécuter tant que le démon traite des exécutions (un redémarrage les interromprait) ; l'option --force permet toutefois de contourner cette restriction. Le démon affiche le nombre d'exécutions actives dans le fichier /health. Les exécutions orphelines sont également supprimées afin d'éviter que ce nombre ne gonfle et ne bloque l'installation.

    • Récupération automatique à partir d'un conteneur « zombie »
      • Après un redémarrage incorrect du démon, containerd peut rester actif mais perdre son socket, ce qui entraîne l'échec de tous les appels nerdctl (le « pull » reste bloqué indéfiniment à 0 %). agi-container détecte désormais ce problème, tue le processus zombie, supprime le socket obsolète et lance un nouveau containerd.

    • WSL a été correctement détecté dans l'éditeur Agilitest
      • Lancé par l'éditeur (une application AIR 32 bits) avec un PATH « assaini », le démon ne parvenait pas à trouver wsl.exe et affichait à tort le message « WSL n'est pas installé ». wsl.exe est désormais localisé via un chemin absolu (System32, avec un repli vers Sysnative pour le cas 32 bits), ce qui couvre d'un seul coup tous les appels.

    • Le nombre de suites fiables et les journaux en mode parallèle
      • Les comptages par suite (réussite/échec/filtré) sont désormais extraits du ats.json` au lieu d'être récupérés à partir des journaux (qui affichaient 0/0/0 en mode silencieux), et les rapports provenant de plusieurs sous-suites par conteneur ne se chevauchent plus lors de la fusion. Les journaux de chaque suite sont également enregistrés en continu sur le disque et conservés sous forme d'artefacts afin de permettre le diagnostic des échecs.

    • Opera : une gestion plus fiable des fenêtres et des onglets
      • Plusieurs corrections permettent désormais de rendre les tests multi-fenêtres/onglets d'Opera déterministes : ouverture de nouvelles fenêtres via `window.open` (ce qui évite un blocage d'Operadriver pouvant durer plusieurs minutes), filtrage des pages internes d'Opera, ordre de navigation stable, retour garanti sur un onglet contenant du contenu réel après la fermeture, et nettoyage de l'arborescence des processus propre canal uniquement lors de la fermeture.

    • canal sans fuite ni collision de profils
      • Deux canaux Firefox peuvent désormais coexister au sein d'un même test sur tous les systèmes d'exploitation : le premier canal le profil configuré, tandis que les canaux suivants se voient attribuer un profil unique ; chaque geckodriver est arrêté à canal son canal afin d'éviter l'accumulation de processus lors d'exécutions séquentielles prolongées.

    • Safari : canal rapide et fiable canal
      • À chaque itération de la boucle d'attente, Safari canal vers la page d'accueil, ce qui empêchait la page de se charger correctement et provoquait une erreur de « délai d'attente dépassé lors du chargement de la page d'accueil » au bout d'environ 28 secondes. La navigation n'est désormais plus relancée pendant l'attente : Safari démarre désormais en environ 5 secondes.

    • Capture précise dans des iframes redimensionnées ou complétées
      • Le rectangle de capture/sélection présentait un décalage et une taille incorrecte pour les éléments situés à l'intérieur d'iframes imbriquées utilisant une transformation CSS de mise à l'échelle ou de remplissage (par exemple, GraphTalk/DXC). La capture, la recherche d'éléments et l'actualisation de la position tiennent désormais compte de l'échelle de rendu et de l'origine du contenu de chaque iframe, avec une précision au sous-pixel près.

    • Corriger le texte saisi dans les rapports générés par le driver Linux
      • Le fichier .atsv est une concaténation de flux AMF3 indépendants ; les tables de référence chaîne de caractère « descripteurs de classe » n'étaient pas réinitialisées entre les actions, ce qui entraînait la présence d'un nom de propriété (par exemple « timeLine ») dans la colonne « Texte saisi » du rapport. Ces tables sont désormais réinitialisées avant chaque action.

    • Connexion simplifiée au tracker (TLS, wss://, URL prise en charge)
      • Le programme d'exécution CLI accepte désormais le certificat TLS du tracker sans configuration (trackers sur site derrière une autorité de certification interne ou un proxy), prend en charge les trackers wss:// et utilise l'URL fournie telle quelle (schéma et port respectés) au lieu d'imposer http:// et le port 3000.

    • Rapport résistant aux suites en double et aux résultats incohérents
      • Le rapport ne plante plus lorsqu'un dossier de sortie contient des suites portant le même nom (les versions les plus récentes sont les plus performantes) et résout les cas où TestNG signale un échec sans qu'aucune ATS n'ait échoué, ce qui supprime la bannière « Incohérence dans les résultats d'exécution » dans l'éditeur. Les paramètres des suites reflètent désormais les modifications apportées via la ligne de commande (-A:).

    • Logiciel compatible WebGL dans des conteneurs sans GPU
      • Dansheadless sous Xvfb, Chrome refusait de créer un contexte WebGL en l'absence de GPU, ce qui provoquait le plantage des bibliothèques WebGL (MapLibre, Three.js) et affichait une page vierge. Le fallback logiciel SwiftShader est désormais activé sur toutes les branches de lancement, sans incidence sur les tests ne faisant pas appel à WebGL.

    • driver inoffensifs ne sont plus signalés comme des erreurs
      • Les lignes stderr inoffensives (sandbox Firefox « CanCreateUserNamespace … EPERM » dans les conteneurs, trames de pile mal formées émises par Chrome via BiDi) ne sont plus signalées comme driver : elles restent visibles dans les traces sans déclencher d'alerte, et la capture des journaux de la console n'est plus perturbée par un numéro de colonne négatif.

    • Erreur évidente lors du creusement d'un canal vide
      • Un paramètre ${WebBrowser} non défini ou une valeur canal » vide générait une erreur obscure (« aucune fenêtre trouvée… après N ms ») qui n’apparaissait qu’à un stade avancé du driver système. Le démarrage échoue désormais rapidement, accompagné d’un message indiquant la cause réelle du problème.

    • canal API canal robuste et correction des messages SAP
      • L'API canal plante plus avec une exception NullPointerException lorsque le flux de journalisation WebSocket ne peut pas être créé (par exemple, dossier non accessible en écriture en CI), grâce à un flux de secours sans effet. De plus, le message « SAP non installé » s'affiche désormais correctement, au lieu d'une exception NPE provoquée par une incompatibilité de casse dans le driver Windows.

    • Fermer la capture en cours lors de l'ouverture d'un nouveau canal
      • L'ouverture d'un nouveau canal pas la fermeture de la capture en cours sur le canal actuel canal contrairement canal ) : lors d'une capture Web, l'ouverture d'un canal API canal la superposition de capture Web ouverte. La capture en cours est désormais fermée avant le lancement canal tout nouveau canal.

    • Vue « Conteneurs » : moteur dédié à chaque conteneur et visionneuse plus performante
      • La vue « Conteneurs/Images » n'affichait plus correctement les conteneurs en cours d'exécution après la refonte de la déduplication : le moteur est désormais affiché par conteneur (et non plus par image), la déduplication conserve le moteur réel, et l'ouverture d'une visionneuse ne ferme plus les onglets des autres conteneurs ni ne provoque de plantage lorsque l'exécutable de la visionneuse est manquant (le système utilise alors la visionneuse du navigateur).

    • Retirer un script de son groupe et les fichiers manquants
      • Un script peut à nouveau être supprimé d'un groupe à l'aide du bouton « Corbeille » de sa ligne, ce qui entraîne l'actualisation de la liste, du nombre d'éléments et des filtres. De plus, un script dontats a été supprimé au cours de la session affiche désormais correctement l'icône indiquant qu'un fichier est manquant.

    • Liens de regroupement et d'exécution dans le rapport
      • ats:// links to groups, executions and scripts from the report were misparsed and raised a 'project not found' error. Link parsing is fixed, and new group add/remove links are handled and open the corresponding group panel.

    • Finies les fenêtres de console indésirables lors de la compilation des images
      • Le nettoyage des images Docker orphelines faisait apparaître une fenêtre de console après chaque compilation d'image. Ce processus s'exécute désormais en arrière-plan, sans fenêtre visible. De plus, les commandes suggérées après la compilation d'une image utilisent désormais correctement l'interface CLI du moteur réel (docker/podman).

    • Deux canaux Firefox fonctionnent désormais simultanément sous Linux
      • La tentative d'exécuter deux canaux Firefox dans un même test a échoué avec le message « La session est déjà lancée ». Chaque canal Firefox dispose canal de son propre Geckodriver avec un port Marionette unique, et le Geckodriver est libéré à canal du canal — ce qui évite toute fuite de processus lors de scénarios inter-navigateurs de longue durée.

    • La conservation ne supprime plus les données importées
      • Les enregistrements importés stockaient leur date sous forme de texte ; par conséquent, le processus de nettoyage des données obsolètes considérait chaque ligne importée comme ancienne et la supprimait lors du passage suivant. Désormais, les dates sont converties en date-heure réelle lors de l'importation.

    • Finies les corruptions aléatoires des enregistrements danscanal
      • L'enregistrement simultané sur plusieurs canaux pouvait parfois corrompre le flux de capture et provoquer un plantage de l'enregistrement (« Element node expected, EndElement found »). Les opérations d'enregistrement sont désormais sérialisées, ce qui élimine ces défaillances.

    • Deux canaux Firefox fonctionnent désormais simultanément
      • L'ouverture d'un deuxième canal Firefox canal avec le message « La session est déjà en cours » et a même pu entraîner la fermeture du premier Firefox déjà ouvert. Chaque canal Firefox dispose canal de son propre geckodriver, et la fermeture d'un canal libère canal son driver.

    • Détection fiable des binaires Firefox sur les machines rapides et virtuelles
      • Sur les ordinateurs « rapides » ou « virtuels », la détection de Firefox pouvait renvoyer un chemin d'accès erroné (ntdll.dll), ce qui entraînait le message « Le fichier binaire n'est pas un exécutable Firefox ». Le chemin d'accès réel de l'exécutable est désormais récupéré via WMI, ce qui permet de le corriger immédiatement et d'éviter toute ambiguïté en cas d'installations multiples de Firefox.

    • Capture d'écran sur mobile : rapide et fiable
      • L'enregistreur mobile pouvait rester bloqué jusqu'à 30 s par capture d'écran, perdre les images reçues et générer des rapports contenant des actions vides. Les réponses sont désormais lues en fonction de l'en-tête Content-Length : l'enregistrement d'un scénario mobile comportant 7 actions passe ainsi de 226 s à 24 s, avec de véritables captures d'écran dans le rapport.

    • Démarrage plus stable de SAP
      • Chaque canal SAP déclenchait un téléchargement inutile qui échouait, et driver immédiate driver SAP générait une erreur obscure et illisible. Le démarrage de SAP a désormais été sécurisé et les véritables causes des échecs sont signalées correctement.
Version :
3.1.3
Date de publication :  
8 juin 2026
  • Ajouté :
    • Outil de nettoyage du projet depuis l'éditeur
      • La nouvelle tâche CleanProjectTask est désormais disponible dans l'éditeur-écouteur ; elle peut être appelée depuis l'IDE pour nettoyer l'espace de travail du projet (artefacts de compilation, captures temporaires, états d'enregistrement abandonnés) sans toucher aux fichiers versionnés

    • Ensemble de thèmes modernes pour menus déroulants dans agilitest-components
      • La bibliothèque agilitest-components fournit les habillages IconDropDownList et ModernDropDownItemRenderer, qui sont réutilisés dans les éditeurs d'actions et les panneaux d'exploration afin d'assurer une apparence et une ergonomie cohérentes
  • Fixé :
    • Rapport ATSV : la capture d'écran utilise la dernière image capturée
      • La capture d'écran par action dans le rapport HTML utilise désormais la dernière image ATSV enregistrée pour cette action, qui reflète le résultat d'une saisie au clavier ou d'un clic (le menu déroulant effectivement ouvert, le texte effectivement saisi) plutôt que l'état juste avant la saisie

    • Rapport ATSV : image post-clavier/ post-clic
      • Une nouvelle image est capturée immédiatement après une action au clavier ou un clic, de sorte que le rapport affiche toujours l'état de la page qui en résulte. Le texte saisi est également enregistré avant l'image post-clavier, afin que la légende de la capture d'écran corresponde à ce qui est réellement visible

    • Clavier : point décimal dans la saisie des nombres
      • La saisie d'une valeur décimale (12.5 ou 12,5) dans un champ de saisie de type « nombre » fonctionne désormais quel que soit le paramètre régional de l'utilisateur. Auparavant, un clavier français pouvait envoyer une virgule à un champ de saisie qui attendait un point (ou inversement), ce qui entraînait le rejet de la saisie comme non valide.

    • REPL : résoudre les variables $pass, $prj et $env
      • Les sessions REPL résolvent désormais les variables $pass-*, $prj-* et $env-*, conformément à la résolution effectuée lors de l'exécution du script. Cette fonctionnalité est utile pour l'exploration interactive de scripts qui dépendent des paramètres du projet

    • REPL goto-url : URL de type file:// pour les ressources locales
      • La fonction `getAssetsFilePath` renvoie désormais une URL `file://` valide lorsque la ressource est un fichier local ; ainsi, une commande `goto-url` du REPL sur un fichier HTML local permet désormais d'accéder directement à ce fichier au lieu d'essayer d'interpréter le chemin d'accès nu.

    • La capture de console tolère les trames BiDi mal formées
      • Auparavant, la capture en ligne de commande générait une exception lorsque le modèle de journalisation BiDi de Selenium recevait une trame de pile mal formée (par exemple, une extension Chrome injectant des lignes de journal comportant des champs non standard). Désormais, la capture contourne ce modèle strict et tolère les entrées mal formées : la ligne de journal est enregistrée en laissant les champs manquants vides, au lieu d'être ignorée ou de provoquer un plantage de la capture.

    • Évaluation en cours de compilation/lien [Java]
      • Les actions eval[java] se compilent et s'assemblent désormais correctement lorsque ats s'exécute en cours de traitement (par exemple, au sein du listener de l'éditeur), là où le classpath est fourni par la JVM hôte plutôt que par le lanceur ats

    • Les paramètres de la suite tiennent compte des options de ligne de commande -A :
      • Le bloc des paramètres de la suite du rapport d'exécution reflète désormais les valeurs transmises via la commande de ligne de commande -A:key=value, correspondant ainsi aux valeurs effectivement utilisées lors de l'exécution plutôt qu'aux valeurs par défaut déclarées dans le fichier XML de la suite

    • Flux séquentiel Project.getAtsScripts
      • La méthode `Project.getAtsScripts()` utilise désormais un flux séquentiel au lieu d'un flux parallèle, ce qui résout un problème de perte de données sporadique survenant lorsque deux threads pouvaient entrer en conflit sur le même emplacement d'identifiant de script

    • Rapport de synthèse : génération plus rapide de fichiers JSON
      • La génération des rapports récapitulatifs au format JSON pouvait s'avérer très lente pour les campagnes de grande envergure (comprenant des centaines de suites). Ce processus est désormais nettement plus rapide, et les durées par rapport sont désormais enregistrées, ce qui permet de diagnostiquer les cas de génération lente.

    • Fichiers CSV non formatés
      • Les fichiers CSV avec un nom d'en-tête acceptent désormais les lignes incomplètes (lignes comportant moins de cellules que l'en-tête) ; les cellules manquantes sont chaines de caractères remplacées par chaines de caractères vides, chaines de caractères l'échec du chargement

    • Le fournisseur d'IA configuré uniquement par projet
      • La configuration des fournisseurs d'IA s'effectue désormais exclusivement à partir du projet actif, ce qui évite qu'un fournisseur défini au niveau de l'espace de travail ne prenne le pas sur la sélection effectuée au niveau du projet

    • Renforcement de l'installateur + fenêtre de mise à jour restant ouverte en cas d'erreur
      • Plusieurs utilisateurs ont signalé que le script install-agilitest.ps1 se fermait sans avertissement avant d'avoir terminé, notamment en cas de connexion lente ou de politiques d'exécution strictes. Le script a désormais été renforcé avec : un gestionnaire d'erreurs de niveau supérieur qui maintient la fenêtre ouverte lorsqu'une erreur est levée ; des commandes Stop-NamedProcesses synchrones (agilitest-agent, electrondriver, ats) avec WaitForExit avant le remplacement des binaires ; une vérification des droits d'administrateur avec sortie anticipée lors de l'installation dans Program Files sans élévation de privilèges ; une boucle de 3 tentatives de téléchargement avec délai d'attente exponentiel ; TLS 1.3 ajouté à la liste des protocoles pris en charge avec repli ; Get-ExeVersion encapsulé dans Start-Process + délai d'expiration ; création d'un raccourci dans le menu Démarrer encapsulée dans try/catch ; suivi des échecs par composant qui fait apparaître un code de sortie différent de zéro à la fin du script. Le fichier d'accompagnement update-agilitest.bat s'interrompt désormais également en cas d'erreur afin que l'utilisateur puisse lire le diagnostic avant la fermeture de la fenêtre
    • Panneau d'exécution : variables classées de A à Z, sans distinction de majuscules/minuscules
      • Les variables du panneau d'exécution sont désormais classées par ordre alphabétique (A→Z, sans distinction de majuscules/minuscules) pour faciliter leur recherche

    • Propriété conditionnelle - get / IA : la variable de retour est conservée
      • Lorsqu'une action de récupération de propriété ou d'IA comporte une condition d'exécution dont le résultat est faux, la variable de retour de l'action n'est plus réinitialisée. Auparavant, le fait de subordonner à une condition une action qui remplissait une variable entraînait la réinitialisation de cette variable dès que la condition échouait, ce qui interrompait les actions en aval qui dépendaient de sa valeur précédente

    • URL de la documentation
      • Le lien vers la documentation dans le menu Aide de l'éditeur a été corrigé (il renvoyait vers un ancien domaine)
  • Evolution :
    • Mode pédagogique dans l'agent IA — maintenir l'humain dans la boucle
      • Nouvelle option « Mode pédagogique » dans les paramètres de l'agent. La philosophie d'Agilitest en matière d'IA est que celle-ci doit venir en renfort de l'ingénieur de test, et non le remplacer : l'humain reste impliqué, prend les décisions et apprend. Lorsque ce mode est activé, chaque réponse générée par l'IA est accompagnée d'une brève explication en langage clair sur le rôle de chaque partie du résultat et la raison de ce choix : pour une expression régulière, ce à quoi correspond chaque classe de caractères et pourquoi ce quantificateur a été choisi ; pour un format de date, ce que signifie chaque token ; pour une condition JavaScript, le résultat de l'expression et les alternatives qui ont été envisagées. L'objectif est clair : former et accompagner les ingénieurs qui utilisent Agilitest afin que chaque interaction avec l'agent leur permette de gagner un peu plus d'autonomie sur les expressions régulières, les formats de date/heure et les expressions JS, au lieu de se contenter de copier-coller aveuglément une réponse opaque. Désactivé par défaut afin que la sortie standard reste concise pour les utilisateurs expérimentés ; les ingénieurs souhaitant développer leurs compétences (ou former leurs collègues) peuvent l'activer à tout moment. La préférence est enregistrée en plus du paramètre existant « Afficher au démarrage ».

    • Agent IA : vérification préalable de la validité des données saisies pour la date et l'heure
      • Lorsqu'on lui demande de proposer un format de date ou d'heure et que la valeur d'origine n'est manifestement pas une date/heure (texte aléatoire, identifiant, etc.), l'agent affiche désormais un avertissement préalable sous forme de bannière jaune avant de proposer un format. Les références à des variables (par exemple $prj-MY_VAR) sont détectées et conservées telles quelles.

    • Agent IA : paramètres par défaut de Copilot / Cursor adaptés aux entreprises
      • Lors de la configuration de GitHub Copilot, il est désormais possible de laisser le champ « URL de base » vide : l'agent se rabattra alors sur https://api.githubcopilot.com (et https://api.cursor.sh/v1 pour Cursor) au lieu de générer une erreur. La clé API est également marquée comme facultative dans l'interface utilisateur de l'agent pour ces deux fournisseurs : les passerelles d'entreprise qui gèrent l'authentification au niveau de la couche réseau ou TLS (mTLS, liste blanche IP, SSO pass-through) peuvent laisser la clé vide

    • Agent IA : Vision réutilise le chat fournisseur
      • La configuration distincte du fournisseur Vision a été supprimée. Les grands modèles de langage (LLM) modernes (GPT-4o / 4.1, Claude Sonnet / Opus, Gemini 2.x...) acceptent tous nativement les entrées d'images ; par conséquent, la description des captures d'écran et les requêtes basées sur la vision réutilisent désormais le fournisseur/modèle LLM déjà sélectionné pour le chat. Les anciens fichiers de configuration contenant encore une clé « vision » sont ignorés sans avertissement.

    • L'application Electron en tant que type de canal de premier ordre
      • Electron desktop apps are now testable just like Chrome or Firefox, via the new electron://<path-to-exe> channel URL. The whole capture pipeline was adapted: the visual recorder treats Electron as a headless target (the capture comes from the BrowserWindow content area, not the OS desktop), the overlay rectangle aligns with the application client area (title bar + dev-tools dock accounted for), the initial window resize works the moment the channel starts, the window is reliably brought to the front, and the application icon shown by Agilitest matches the bundled executable

    • Navigation test par test dans les rapports d'exécution
      • Les rapports d'exécution sont désormais dotés de boutons « Précédent » et « Suivant » qui permettent de passer d'un test à l'autre sans revenir à l'index de la suite. Associée aux filtres de statut et de groupe déjà disponibles, la navigation dans une campagne volumineuse est désormais bien plus rapide

    • Matrice de couverture RGAA 4.1
      • Le dossier « doc » contient désormais une matrice de couverture RGAA 4.1 qui établit un lien entre chaque critère et le test Check-RGAA correspondant, et les tableaux de vérification intégrés au code sont alignés sur la formulation officielle

    • Une touche d'IA par entrée sur les champs compatibles avec l'IA
      • Action fields that can be improved by the Agilitest AI agent (regex, date format, hour format, the JS expression in <lang>_eval transformers, the JavaScript condition of the execute-condition selector...) now show an animated violet sparkle in place of the static cog icon. Clicking the sparkle sends the field's current value, transformer kind and surrounding script context to the agent and opens the agent panel pre-filled with a relevant prompt. The sparkle only appears when AI is enabled in the Agilitest license — for offline / no-AI installs, the cog icon is preserved
    • Chargement plus rapide des projets — en-têtes par défaut uniquement
      • Le chargement des projets utilise désormais par défaut un chemin de parse paresseux limité aux en-têtes (-Dload.headersOnly=true). Lors de l'ouverture d'un projet, seules les informations d'en-tête des scripts (description, paramètres, signatures des variables de retour) sont analysées au préalable ; le corps de chaque script est chargé à la demande, au moment de son ouverture effective. Sur les projets volumineux (comportant des centaines de scripts), le temps de chargement à froid passe de plusieurs secondes à une fraction de seconde. Le chemin d'ouverture d'un script unique a également été remanié pour éviter le double LoadScriptProcess qui se produisait auparavant lorsqu'un corps était chargé de manière différée. La trace complète du pipeline est unifiée avec des chronométrages distincts pour le chargement Java et la désérialisation AMF, ainsi qu'un marqueur « java CACHED » lorsque l'éditeur-écouteur est servi à partir du cache

    • Fenêtre contextuelle des lignes de commande : redirection des variables d'environnement + sélecteur Linux/Windows
      • Polish pass on the agi-container tab of the command lines popup: in single-test mode the parallel toggle and 3-choice OS dropdown are hidden, replaced by a simple Linux/Windows picker that emits --os linux|win. AI provider env-var placeholders (${VAR} in apiKey/apiUrl) are forwarded into docker/podman/agi-container as -e VAR=%VAR% (cmd) or -e VAR=$env:VAR (PowerShell), so a provider key never has to be written into the project file
    • AtsLauncher prend en charge ATS_HOME dans les conteneurs Linux
      • AtsLauncher now honors the ATS_HOME environment variable on Linux containers, so libs and drivers pre-cached at /home/ats-user/ats/cache/<version> are picked up instead of /root/ats/cache — eliminating the useless re-download that used to happen on every container start in CI
  • Fixé :
Version :
3.0.8
Date de publication :  
1er juin 2026
  • Ajouté :
    • Tableau de bord avec les données du suivi
      • Lors de la création du tableau de bord, sélectionnez un tracker déclaré dans Agilitest qui soit en ligne et connecté afin d'enrichir le tableau de bord avec l'historique d'exécution enregistré par ce tracker

    • Gestion ATS
      • Gérez les suivis d'exécution des tests directement depuis les paramètres d'Agilitest. Voirats

    • Algorithmes de reconnaissance d'images
      • 3 algorithmes disponibles : ATS différence de pixels), ATS(corrélation croisée normalisée) et ATS(corrélation croisée normalisée multi-échelle) pour différents niveaux de résolution (DPI) et de zoom

    • Prise en charge d'OAuth2
      • Protocole d'authentification OAuth2 intégré pour les tests d'API et les applications web sécurisées

    • Chemin d'accès au fichier JS dans l'action de script
      • Ajouter une référence au chemin d'accès du fichier pour les actions de script JavaScript

    • Glisser-déposer de fichiers JS
      • Faites glisser et déposez des fichiers JavaScript directement sur les actions de script pour définir le chemin d'accès au fichier

    • Script d'installation autonome
      • Le fichier install-agilitest.ps1 permet d'installer ou de réinstaller Agilitest. Il se trouve à la racine du répertoire d'installation ; vous pouvez également le télécharger et l'exécuter avec PowerShell : irm https://agilitest.app/installer.php | iex
  • Fixé :
  • Evolution :
    • Nouvelle barre latérale et nouveaux menus
      • Modernisation de l'éditeur Agilitest avec une nouvelle barre latérale. Personnalisez l'emplacement des menus à l'aide du bouton de configuration

    • Nouvelle console d'exécution
      • La nouvelle console est redimensionnable, propose des thèmes sombres et clairs, et permet de filtrer les journaux et d'effectuer des recherches par mot-clé

    • Refonte de l'exécution en ligne de commande
      • Fenêtre contextuelle repensée avec des paramètres supplémentaires : rapport ATSV, vitesse d'enregistrement, paramètres du tracker, etc.

    • Clavier REPL en mode root
      • Les actions de clavier peuvent désormais être envoyées sans spécifier de sélecteur d'élément dans le REPL (utilise l'élément racine)

    • Directives améliorées en matière d'IA
      • Les directives d'IA enregistrées dans un ATS sont mises à jour au démarrage d'Agilitest

    • Les emojis dans les rapports
      • Prise en charge des emojis dans les étapes fonctionnelles (étape de commentaire) et les résumés de rapport pour une meilleure lisibilité

    • Valider ATS
      • Valider et convertir les anciens formats ATS en syntaxe actuelle. Comparer le contenu des scripts, incrémenter le compteur, ignorer les champs d'horodatage et d'auteur

    • Gestion des utilisateurs du projet
      • Modifier les utilisateurs, afficher en bas de l'éditeur, mise en page et boutons mis à jour

    • Éditeur HTML pour les commentaires
      • Supprimer les balises de police superflues, corriger les balises U et I vides en mode texte brut

    • Refonte de la page d'aide et de la fenêtre contextuelle « À propos »
      • Le journal des modifications et les licences ont été déplacés vers AboutPopup, mise en page adaptative

    • Refonte du lecteur HTML ATSV
      • Écran d'accueil modernisé avec informations sur les tests intégrées, 3 vitesses de lecture (0,5x, 1x, 2x), redémarrage depuis le début à la fin de la lecture et expérience utilisateur améliorée sur la timeline

  • Fixé :
    • ShadowDOM dans les iFrames
      • Fixé et de l'interaction avec les éléments Shadow DOM imbriqués dans des iframes

    • Déplacement de la sélection dans les iFrames
      • Fixé du décalage de position Fixé lors de l'utilisation de l'outil de sélection sur des éléments situés à l'intérieur d'iframes

    • Rectangles de sélection pour les captures d'écran
      • Fixé d'un problème d'alignement ou d'absence des rectangles Fixé lors de la capture d'écran

    • Sélectionner un élément dans le rapport
      • Fixé d'un problème d'affichage du rectangle de mise en évidence Fixé pour les éléments de sélection (menus déroulants) dans le rapport HTML

    • Touches F et Entrée du clavier
      • Fixé et la touche Entrée ne sont pas transmises correctement lors des actions au clavier

    • isEmpty/isNotEmpty avec des espaces
      • Fixé opérateurs Fixé et isNotEmpty traitent de manière incorrecte les valeurs ne contenant que des caractères d'espacement

    • Variables figées
      • Fixé de la perte des valeurs des variables Fixé après le rechargement du script

    • Variables numériques
      • Fixé du traitement Fixé des valeurs par défaut pour les variables de type numérique

    • Geckodriver s'est arrêté en raison d'une erreur dans Firefox
      • Fixé d'un problème empêchant le processus Fixé de se fermer correctement lorsqu'un test échoue dans le navigateur Firefox

    • Cartographie des performances des éléments de capture
      • Optimisation de la construction de la carte des éléments : suppression des opérations de parallélisation et de tri superflues, des recalculs séquentiels et de l'aplatissement direct des éléments

    • Valeur par défaut d'une variable numérique décimale
      • Fixé d'un problème où la valeur par défaut Fixé n'était pas appliquée correctement lors de la création de variables numériques

    • Cliquez sur la photo de profil
      • Fixé : l'événement Fixé » ne fonctionnait pas sur la photo de profil de l'utilisateur dans l'éditeur

    • Mise à jour de l'identifiant de suivi
      • Fixé d'un problème empêchant la mise à jour correcte de l'identifiant Fixé lors de la modification de sa configuration

    • molette de souris
      • Fixé du comportement de la molette Fixé dans les panneaux de l'éditeur et dans la vue des scripts

    • Geste de balayage dans Opera
      • Fixé d'un problème dans le navigateur Opera où Fixé entraînait des décalages incorrects en raison d'un décalage dans la fonction getCartesianOffset d'Opera

    • Animations du lecteur HTML ATSV
      • Fixé : l'étiquette Fixé et le curseur de la souris restent visibles entre deux actions consécutives dans le rapport animé
Version :
3.1.2
Date de publication :  
23 mai 2026
  • Ajouté :
    • Dupliquer une suite d'exécution (clic droit → Dupliquer)
      • Dans la fenêtre « Exécution » de l'éditeur, un clic droit sur une suite d'exécution (les fichiers XML du répertoire src/exec utilisés par TestNG) propose désormais une option « Dupliquer » qui crée une simple copie du fichier : la nouvelle suite est un double indépendant de l'original (mêmes scripts, mêmes variables, même ordre) et peut être modifiée librement, sans aucun lien avec la source. Pratique pour partir d'une campagne existante et l'orienter dans une direction différente

    • Ensemble de clones d'ombre (clic droit → Clone d'ombre)
      • Toujours via le menu contextuel d'une suite dans la fenêtre d'exécution, une deuxième option « Clone fantôme » permet de créer une suite fantôme qui reflète en permanence la liste de tests de sa suite de référence : toute modification apportée à la liste de scripts de la suite source est automatiquement répercutée dans la suite fantôme. La suite fantôme possède toutefois ses propres variables de suite, ce qui permet de rejouer exactement la même campagne dans un contexte différent (environnement d'acceptation, ensemble de données alternatif, etc.) sans avoir à gérer deux listes parallèles. Remarque : vous ne pouvez pas créer de suite fantôme d'une suite fantôme — cela n'aurait aucun sens, la chaîne est limitée à un seul niveau
  • Fixé :
  • Evolution :
    • À propos de la fenêtre contextuelle : saisie du code client pour les utilisateurs de la version de démonstration
      • Les utilisateurs qui découvrent Agilitest grâce à une licence d'évaluation peuvent désormais saisir le code client fourni par leur interlocuteur commercial directement depuis la fenêtre « À propos ». Plus besoin de modifier un fichier de configuration : la saisie s'effectue dans l'interface utilisateur, le code est validé en temps réel et la licence de démonstration est activée immédiatement.

    • Connexion aux licences : terminologie harmonisée, fin des termes techniques tels que « alternative » ou « dégradée »
      • Lorsque le poste de travail se connecte au serveur de licences Agilitest via le chemin de secours HTTPS (au lieu du canal WebSocket sécurisé direct, parfois bloqué par les proxys d'entreprise), l'éditeur affichait auparavant des mentions telles que « dégradé » ou « alternatif », susceptibles d'inquiéter le service informatique. Désormais, le statut s'affiche simplement en vert avec la mention « connecté » dès que la licence répond, quel que soit le canal . Aucun changement fonctionnel — juste uneinterface utilisateur plus claire et plus rassurante‍

    • Icônes Ollama dans la bibliothèque de composants
      • La palette d'icônes officielle d'Ollama a été ajoutée à la bibliothèque de composants partagés utilisée par l'éditeur. Ces icônes apparaissent désormais à côté des fournisseurs d'IA Ollama / AgiLlama dans les propriétés du projet, ce qui permet d'identifier facilement le type de connexion d'un seul coup d'œil

    • ATS : exécution de suites de tests intégrées
      • L'outil interne chargé d'exécuter les suites de tests (AtsLauncher) a été repensé pour permettre la compilation Java, le lancement de TestNG et packaging tar.gz packaging les résultats packaging sans passer par des commandes externes. Le démarrage est plus rapide, les dépendances sont réduites et les journaux d'erreurs sont plus clairs en cas d'échec. Aucun changement visible pour les scripts : l'outil est simplement plus rapide, plus fiable et, surtout, ne déclenche plus d'alertes de sécurité dans certains environnements d'analyse de vulnérabilités.

    • AgiLlama : fournisseur spécialisé dans l'IA
      • AgiLlama devient un fournisseur d'IA de premier plan dans les propriétés du projet, distinct du fournisseur générique Ollama. En arrière-plan, il est compatible avec OpenAI, mais l'éditeur tient compte des spécificités du serveur AgiLlama (liste de modèles, format de requête). La sélection des modèles s'appuie sur un catalogue «ats » géré par Agilitest, et les autres modèles installés sur le serveur sont récupérés en temps réel

    • Fournisseur d'IA : badges de capacités, variables d'environnement et lien vers l'interface d'administration Web
      • The AI provider edit screen now shows colored badges summarizing what each provider can do: text, vision (image analysis), tools (tool use), structured JSON output, and so on. The API key can be referenced through an environment variable (e.g. ${MY_KEY}) to avoid exposing secrets in the versioned project file. A direct link to the provider's web administration interface (Anthropic, OpenAI, etc.) makes quota and model management easier

    • Enregistrement SAP : canal géré explicitement
      • L'état d'enregistrement du canal SAP canal désormais géré de manière explicite et idempotente : réactiver un enregistrement déjà en cours n'a aucun effet (au lieu de générer des doublons), et l'état est réinitialisé proprement lorsque le canal fermé. Du point de vue de l'utilisateur : plus de doublons d'actions enregistrées si vous cliquez deux fois sur le bouton « Enregistrer », et un démarrage/arrêt fiable

    • Mise à jour de macOS : le bouton « Mettre à jour maintenant » fonctionne à nouveau + corrections apportées au programme d'installation
      • Sous macOS, le bouton « Mettre à jour maintenant » de la fenêtre contextuelle de notification de mise à jour ne lançait pas l'installation. Plusieurs bugs du programme d'installation empêchaient bugs la mise à jour automatique selon le chemin d'installation (~/Applications ou /Applications). Tout fonctionne désormais correctement : la mise à jour se lance d'un simple clic, tout comme sous Windows

    • Actions « Vérifier la sécurité » et « Vérifier RGAA » : commande « Arrêter/Continuer » visible dans l'éditeur
      • Les actions de vérification de la sécurité et de l'accessibilité (RGAA) indiquent désormais clairement dans leur éditeur le comportement à adopter en cas d'échec : poursuivre l'exécution du script (le résultat est consigné dans le rapport, le test se poursuit) ou interrompre l'exécution. L'interface utilisateur globale de ces actions a été remaniée afin de faciliter leur configuration

    • Visualiseur et sélecteur de critères RGAA
      • Nouveau composant permettant de parcourir et de sélectionner les critères du RGAA (Référentiel général d'amélioration de l'accessibilité) à appliquer dans une action « Vérifier le RGAA ». Les critères sont classés par thème (visuel, sémantique, interaction, médias) et accompagnés de leur étiquette officielle et de leur description. Plus besoin de mémoriser les codes du référentiel

    • Composant d'interface utilisateur Stepper : corrections
      • Fixé comportement du composant « stepper » (les petits champs +/- destinés à la saisie numérique, que l'on trouve par exemple dans les paramètres « try » et « delay » d'une action) : la touche Entrée valide désormais la saisie, les valeurs limites sont gérées correctement et l'affichage du texte de remplacement fonctionne. Cette correction s'applique à tous les éditeurs d'actions qui utilisent ce composant

    • Conteneurs et explorateur mobile : interface utilisateur et fonctionnalités
      • L'explorateur de conteneurs (la fenêtre qui parcourt la structure d'une page web, d'une application de bureau ou d'une application mobile pour sélectionner un élément) bénéficie de plusieurs améliorations : des filtres plus efficaces, un aperçu des attributs au survol et une sélection plus facile. Sur mobile, les explorateurs iOS et Android affichent désormais les éléments dans une arborescence plus lisible, avec leurs propriétés natives
  • Fixé :
    • Saisie de données dans une liste déroulante SAP
      • Lors de l'enregistrement d'une saisie dans une liste déroulante SAP, l'action capturée pouvait parfois être erronée : sélection d'une valeur vide, doublon ou nouveau clic non détecté. La capture est désormais correcte dès le premier essai, avec un seul événement « select » qui reflète exactement la valeur choisie par l'utilisateur

    • Actions enregistrées sur les écrans SAP
      • Plusieurs cas ont été signalés où les actions n'étaient pas enregistrées du tout, ou l'étaient avec des paramètres erronés, lors de l'utilisation de l'enregistreur sur certains écrans SAP — en particulier après l'apparition de fenêtres contextuelles ou la fermeture brusque d'une fenêtre. L'enregistreur est désormais bien plus fiable dans ces situations : il n'y a plus de frappes fantômes ni d'événements « Entrée » dupliqués.

    • Comportement du paramètre « Try / delay »
      • Les paramètres « try » (nombre de tentatives avant échec) et « delay » (temps d'attente entre les tentatives) d'une action ne se comportaient pas toujours comme prévu, notamment lors de la première exécution juste après canal d'un canal . Le comportement correspond désormais à la documentation : le budget total « try × delay » est respecté

    • ATS généré pour les actions RGAA
      • ATS généré pour les actions de vérification RGAA comportait quelques erreurs de sérialisation (niveau de conformité et seuil parfois incorrects, notamment après la duplication d'une action). La génération est désormais correcte et les scripts générés peuvent être exécutés tels quels.
Version :
3.1.1
Date de publication :  
26 avril 2026
  • Ajouté :
    • Mise à jour de macOS
      • Un outil de mise à jour macOS porté sous Bash (équivalent au fichier install-agilitest.ps1 de Windows), prenant en charge les archives .dmg pour l'installation et la mise à jour de l'éditeur Agilitest. Gestion automatique des chemins d'accès ~/Applications et /Applications, détection du proxy système macOS et fermeture propre des processus avant le remplacement des binaires.

    • Commande d'installation de CMD
      • Une nouvelle commande d'installation par lots (install-agilitest.bat) est désormais disponible en complément du script PowerShell, à l'intention des utilisateurs dont la politique d'entreprise interdit l'exécution de scripts PowerShell. Elle s'appuie sur curl.exe et tar.exe (intégrés à Windows 10 et versions ultérieures), détecte le proxyEdge dans le registre et utilise l'authentification NTLM/Negotiate intégrée à Windows. Elle s'affiche aux côtés de la commande PowerShell dans la mini-fenêtre contextuelle d'installation accessible depuis le bouton Commande de la fenêtre À propos.

    • Sélection de la langue du fournisseur d'IA
      • Un nouveau champ de langue (français/anglais) est disponible lors de la création ou de la modification d'un fournisseur d'IA dans les propriétés du projet. La langue est transmise au fournisseur à chaque appel, afin que les diagnostics de l'IA, les suggestions de correction et les rapports soient générés dans la langue choisie.

    • Liste mise à jour des modèles d'IA (avril 2026)
      • Liste mise à jour des modèles disponibles par fournisseur : Anthropic (claude-opus-4-7, claude-opus-4-6), OpenAI (gpt-5.5, gpt-5.5-pro, gpt-5.4, gpt-5.3-codex, gpt-5 et versions mini/nano), Google Gemini (gemini-pro-latest, gemini-flash-latest, gemini-3.1-pro-preview, gemini-3-pro-preview, gemini-2.5-pro/flash), DeepSeek (deepseek-v4, deepseek-v4-flash, deepseek-v3.2), Mistral (devstral-2-latest en plus des versions large/medium/small/codestral)

    • Bouton « Mobile » dans le panneau flottant
      • Un bouton mobile peut être ajouté à la barre de boutons flottants ; il est toujours placé à côté du bouton « Conteneur ». Il peut être configuré depuis la fenêtre de gestion des boutons de la barre latérale.

    • Capture mobile iOS au format adapté
      • La visionneuse de captures iOS affiche désormais l'aperçu en direct à la taille logique de l'appareil (points iOS) plutôt qu'à la taille brute en pixels, ce qui rend l'aperçu plus fidèle à ce que voit l'utilisateur final, grâce à l'analyse JSON structurée fournie par le nouveau driver iOS.
  • Fixé :
  • Evolution :
    • Auto-correction des actions grâce à l'IA
      • Nouvelle option de correction au niveau du projet : lorsqu'une ATS échoue en raison d'un sélecteur incorrect ou d'un élément manquant, le fournisseur d'IA configuré pour le projet est appelé pendant l'exécution afin de proposer une correction du sélecteur ou de la stratégie d'interaction, et l'action est automatiquement réexécutée avec la nouvelle stratégie. La trace de correction apparaît dans le rapport d'exécution. Cette fonctionnalité peut être activée par projet (ats.aiproviders @healing) uniquement lorsqu'au moins un fournisseur est configuré ; elle est automatiquement désactivée si tous les fournisseurs sont supprimés.

    • Vérification des vulnérabilités CVE des dépendances du projet
      • Une nouvelle option « Vérifier les CVE », activable au niveau de chaque suite (variable ats.cve.check), analyse les dépendances ats utilisées par l'exécution et compare leurs versions à celles de la base de données publique des vulnérabilités (NVD/CVE). Les vulnérabilités détectées sont signalées dans le rapport HTML d'exécution avec leur score CVSS et un lien direct vers la page CVE. Cela garantit qu'une campagne d'automatisation s'exécute sur une pile à jour.

    • Refonte de la fenêtre « À propos »
      • La fenêtre contextuelle « À propos » a été repensée avec une mise en page sous forme de fiches (Système, Licence, Fonctionnalités) et un nouveau mode autonome : lorsque l'éditeur est lancé sans connexion au serveur de licences, la fenêtre contextuelle affiche les métadonnées du fichier agilitest.lic (ID, Émis par, Date de délivrance, Utilisateur sous licence, Nombre maximal de licences), les produits activés (Agilitest, AgiliDoc, AgiliPerf, AgiliSecOps, ceux qui ne sont pas activés étant barrés), ainsi que le statut AI/SAP. Un indicateur de statut de connexion au serveur de licences a été ajouté en haut à gauche du logo (vert = WSS, orange = repli sur HTTPS, gris = autonome/inaccessible).

    • Connexion WSS au serveur de licences
      • Nouveau canal WebSocket sécurisé (WSS) canal la communication en temps réel avec le serveur de licences Agilitest, remplaçant l'ancien canal TCP. Détection intégrée des proxys système, basculement automatique vers le protocole HTTPS de secours lorsque le canal WSS canal bloqué, reconnexion automatique en cas de brèves coupures réseau, et prise en charge continue des legacy pour les clients qui n'ont pas encore effectué la migration.
  • Fixé :
    • Boucle infinie utilisant l'ancienne syntaxe de script d'appel
      • Fixé bug entraîner une boucle infinie lors de l'analyse d'un script utilisant l'ancienne syntaxe sous-script . L'analyseur impose désormais un parcours séquentiel des lignes afin d'éviter toute récursivité croisée.

    • Variable aléatoire vide
      • Fixé condition de concurrence qui pouvait laisser une variable vide pendant l'exécution dans certains cas où la variable était à la fois assignée et lue au cours de la même opération.

    • Cliquez sur le lien « Erreur d'exécution »
      • Fixé problème qui empêchait la réouverture correcte de l'action correspondante dans l'éditeur lorsque l'on cliquait sur des liens d'erreur dans le rapport d'exécution.

    • Mises à jour des dépendances
      • Mise à jour des dépendances Java (Selenium, Appium, bibliothèques HTTP, analyseur JSON) afin de bénéficier des derniers correctifs de sécurité et d'optimisation des performances

    • Renommer le mode « dégradé » en mode « alterné »
      • Le mode de connexion du client de licence lorsque le canal direct canal disponible (proxy d'entreprise restrictif, port WSS bloqué) était appelé « mode dégradé » — un terme qui suscitait une certaine inquiétude, étant donné que l'application fonctionne normalement via le chemin de secours HTTPS. Il a été rebaptisé « mode alternatif » dans l'ensemble de l'interface utilisateur : badge dans le coin supérieur droit, fenêtre contextuelle d'informations, info-bulle du badge du logo et journal d'exécution. Aucune régression fonctionnelle, juste un changement de nom clair pour rassurer l'utilisateur et son service informatique.