Enregistrer le flux
Effectuez un parcours une fois dans une session hébergée et laissez Autonomy rédiger le cas de test à partir de celui-ci.
L'enregistrement est le moyen le plus rapide de rédiger un flux long. Vous effectuez le parcours une fois dans un navigateur hébergé par Autonomy, en marquant vos vérifications au fil de l'eau, et Autonomy transforme la trace capturée en étapes d'intention que vous relisez avant d'enregistrer.
Rien n'est rejoué. L'enregistrement est un input de rédaction — l'agent exécute toujours le cas de test enregistré de façon adaptative, en fonction de l'état du produit au moment de l'exécution.
Disponibilité
L'enregistrement est disponible pour les sessions hébergées Web, iOS et Android. Chaque plateforme utilise une surface de capture différente :
- Web — un navigateur headless provisionné sur l'infrastructure Autonomy.
- iOS — un simulateur iOS démarré sur l'hôte runner, piloté via
agent-device. - Android — un émulateur Android démarré sur l'hôte runner, piloté via
agent-device.
Local Session — l'enregistrement sur votre propre machine via le compagnon Autonomy, qui atteint les applications derrière un VPN — est listé mais pas encore lançable.
Démarrer un enregistrement
- Allez dans Test Cases → New Test Case.
- Remplissez la première étape (Details) : nom, plateformes et environnement du cas de test.
- À la deuxième étape (Method), choisissez Record the flow et continuez.
- La troisième étape (Record) est l'écran de configuration. Définissez :
- Platform — Web, iOS ou Android.
- Capture Surface — Hosted Session (recommandé).
- Pour le Web : choisissez un environnement et une URL de départ. L'environnement fournit l'URL de départ ; remplacez-la dans le champ, ou laissez les deux vides pour démarrer sur une page blanche. Choisissez un viewport (Desktop 1440×900, MacBook Pro 3024×1964 ou iPhone 16 Pro 393×852).
- Pour iOS/Android : choisissez un appareil démarré dans le sélecteur d'appareils et saisissez le bundle ID de l'application (iOS) ou le nom de paquet (Android). Le runner doit avoir l’appareil cible démarré.
- Cliquez sur Launch Hosted Session.
La session affiche Connecting… pendant le provisionnement du navigateur, puis passe en direct.
Pendant la session
Vous pilotez la session hébergée directement dans la page. Pour les sessions web, quatre outils sont situés au-dessus du viewport. Pour les sessions natives, une barre d'outils de gestes (Tap, Swipe, Long press) et des boutons matériels (Back, Home, App switcher, Rotate, Keyboard) remplacent le pointeur de manipulation directe.
Barre d'outils d'assertion
| Outil | Ce qu'il capture |
|---|---|
| Inspect | Sélectionne un élément et y rattache une vérification. Tab navigue entre les cibles, Entrée sélectionne, Échap quitte. Les assertions disponibles dépendent de ce que vous avez sélectionné : Value equals, Is empty, Is enabled, Is visible, Is not present pour les champs de saisie ; Text equals, Text contains, Is visible, Is not present, URL contains pour les vérifications de texte et de page. |
| Visual Compare | Marque l'écran actuel pour comparaison avec une référence. Rattachez la référence ensuite — voir Vérifications visuelles. |
| Validate Network | Marque une attente réseau à ce point du flux. |
| Add note | Enregistre une note en langage courant. Les notes sont traitées comme intention de référence lors de la synthèse ; utilisez-les pour expliquer pourquoi une étape compte. |
Faites vos assertions au moment où vous voyez ce que vous souhaitez garantir. Une vérification capturée en contexte produit une meilleure étape qu'une vérification ajoutée après coup de mémoire.
Contrôles en en-tête : Pause / Resume pour arrêter la capture sans mettre fin à la session, Discard (cliquez deux fois pour confirmer) pour jeter l'enregistrement, et End & review pour terminer et synthétiser.
Inspecteur d'éléments (toutes plateformes)
Le panneau Elements affiche un arbre d'accessibilité en direct de l'écran actuel. Sur le web, il reflète le DOM ; sur iOS et Android, il reflète la hiérarchie d'accessibilité de la plateforme (par ex. Button, Cell, NavigationBar sur iOS). Utilisez-le pour :
- Vérifier les noms et rôles des éléments avant d'effectuer des assertions dessus.
- Rechercher un élément par texte ou par type à l'aide de la barre de recherche.
- Clicquer sur un nœud pour le mettre en surbrillance sur le cadre de l'appareil et afficher ses attributs (identifier, label, rect, état d'interactivité).
L'arbre se rafraîchit automatiquement après chaque lot d'interactions et peut être rafraîchi manuellement avec le bouton de rechargement.
État de l'appareil
Le panneau État de l'appareil permet de modifier l'état de l'appareil pendant un enregistrement — mode sombre, localisation, permissions, presse-papiers, état de l'application, et plus. Ouvrez-le depuis la barre d'outils au-dessus du viewport.
Chaque modification est capturée comme un événement device_state dans la trace et synthétisée en une étape Device State. Le libellé de l'étape affiche la description lisible (par ex. "Passer en mode sombre", "Accorder la permission caméra").
Facettes prises en charge
Toutes les facettes ne fonctionnent pas sur toutes les plateformes. Le tableau ci-dessous montre ce qui est vérifié sur les environnements d'exécution actuels :
| Facette | iOS | Android | Web |
|---|---|---|---|
| Apparence (clair / sombre) | ✅ | ✅ | ✅ |
| Localisation | ✅ | ✅ | ✅ |
| Réseau (mode avion / wifi) | ✅ | ✅ Wi-Fi uniquement | ✅ |
| Animations | ❌ | ✅ | ✅ |
| Permission (la plupart) | ✅ | ✅ | ❌ |
| Permission (caméra, notifications) | ❌ | ✅ | ❌ |
| Refuser une permission | ✅ | ✅ | ❌ |
| Biométrique | ❌ | ✅ (empreinte) | ❌ |
| État de l'app (installation propre) | ✅* | ✅ | ✅ |
| Presse-papiers | ✅ | ❌ | ✅ |
| Notification push | ✅ | ✅ | ❌ |
| Média (photothèque) | ✅ | ✅ | ❌ |
* Sur iOS, la remise à zéro de l'état de l'app désinstalle et réinstalle l'application. Les applications système ne peuvent pas être remises à zéro. Après la remise à zéro, l'app a disparu — toute étape suivante doit la relancer.
Sur Android, le mode avion est bloqué sur les émulateurs API 36 ; le basculement Wi-Fi fonctionne normalement. Les permissions Web ne sont pas prises en charge car les navigateurs ne disposent pas de commandes CLI/d'automatisation pour les gérer.
Le panneau désactive les options non prises en charge sur la plateforme actuelle et affiche la raison spécifique lors du survol. Si vous essayez d'exécuter un cas de test avec une précondition d'état d'appareil non prise en charge, l'exécution échoue avec une erreur claire — elle n'est jamais ignorée silencieusement.
Identité de test
Chaque session d'enregistrement est provisionnée avec une identité jetable afin que les flux d'inscription et de connexion fonctionnent sans toucher aux vrais comptes.
- E-mail : provisionné automatiquement et gratuit. Le panneau affiche l'adresse, la copie au clic et fait apparaître les messages entrants en ligne — y compris l'OTP — pour que vous puissiez terminer une étape de vérification sans quitter la session.
- SMS : non provisionné automatiquement. Les numéros recevables sont rares et facturés ; le panneau affiche Get SMS number et loue un numéro à la demande auprès du fournisseur SMS configuré de votre organisation. Le bail est libéré à la fin de la session.
Si un formulaire n'attend que des chiffres dans un champ téléphone, vous n'avez pas besoin d'un bail. Laissez l'agent décider au moment de l'exécution et réservez les baux aux flux qui reçoivent réellement un code.
De l'enregistrement aux étapes
Lorsque vous cliquez sur End & review, l'enregistrement passe à l'état synthesizing. Autonomy lit la trace capturée et rédige les étapes en utilisant le vocabulaire standard. Ses règles :
- Chaque vérification que vous avez marquée devient une étape
Assert,Visual CompareouValidate Network. Les vérifications ne sont jamais supprimées. - Les champs de type identifiant (e-mail, mot de passe, OTP, code de vérification) deviennent des valeurs choisies par l'agent au lieu du texte que vous avez saisi.
- Les champs remplis depuis la configuration d'environnement conservent la forme
{{env.VAR_NAME}}. - Les cibles contenant des nombres ou des symboles monétaires sont décrites plutôt que citées ; ainsi
Pay $50.00devientthe checkout button. - Les navigations répétées vers la même URL fusionnent en une seule étape.
- Le contexte ambiant de la page est écarté ; vos notes sont conservées et priment sur le détail de la capture brute.
- Les verbes natifs s'adaptent à la plateforme : les appuis sur iOS indiquent « Tapped », les clics sur le web indiquent « Clicked ».
L'enregistrement atteint ensuite l'état drafted et l'assistant avance à la quatrième étape (Steps), où les étapes rédigées apparaissent dans l'éditeur avec l'enregistrement disponible dans un panneau latéral pour référence. Modifiez, réordonnez et supprimez librement, puis continuez vers Review et enregistrez.
Export
Après la synthèse, les étapes rédigées peuvent être exportées depuis le panneau d'origine dans trois formats :
| Format | Fichier | Description |
|---|---|---|
| Autonomy JSON | .json | La liste canonique d'étapes avec métadonnées complètes. Réimportable dans Autonomy. |
| Maestro YAML | .yaml | Un fichier de flux compatible Maestro pour les équipes migrant depuis ou comparant par rapport à Maestro. |
| Playwright Script | .spec.ts | Un script de test Playwright exécutable avec des sélecteurs de type page-object. |
Cliquez sur Export pour télécharger le fichier, ou utilisez le bouton de copie à côté de chaque format pour copier le contenu dans le presse-papiers.
Notes pratiques
- Rien n'est enregistré comme cas de test tant que vous n'avez pas terminé l'assistant. Discard met fin à la session sans rien conserver.
- Réenregistrer est moins coûteux que réparer une mauvaise trace. Si le parcours a dévié à mi-chemin, abandonnez et recommencez.
- Limitez un enregistrement à un seul parcours. Les sessions longues qui traversent plusieurs flux produisent des listes d'étapes que personne ne veut relire.
- Les sessions natives sont mono-tenant : une seule session par appareil à la fois. Si le tableau de bord affiche une session obsolète, fermez-la depuis le panneau de session avant d'en démarrer une nouvelle.
Dépannage
La session ne passe jamais en direct
Web : Confirmez que l'URL de départ est accessible depuis l'internet public. Une session hébergée ne peut pas atteindre localhost, une IP privée ou un hôte accessible uniquement via VPN. Utilisez une URL de prévisualisation ou de préproduction, ou attendez la prise en charge de Local Session.
iOS/Android : Confirmez que l'appareil cible est démarré et que l'hôte runner a agent-device dans le PATH. Vérifiez agent-device list --platform ios --json (ou android) pour confirmer que l’appareil apparaît comme démarré.
L'OTP n'apparaît jamais dans le panneau d'identité
Le produit doit envoyer à l'adresse provisionnée ; collez donc l'adresse depuis le panneau plutôt que d'en saisir une de mémoire. Si le message tarde, restez dans la session plutôt que de la terminer — le panneau se met à jour en direct.
Les étapes rédigées manquent une vérification que j'ai faite
Les vérifications ne sont capturées que via la barre d'outils. Cliquer pour vérifier visuellement quelque chose n'enregistre pas d'assertion. Réenregistrez la section et utilisez Inspect au moment de la vérification.
Les étapes rédigées contiennent un mot de passe en clair
La synthèse réécrit les champs de type identifiant quand elle peut les identifier. Si un champ est inhabituel, modifiez l'étape et remplacez la valeur par une instruction choisie par l'agent avant d'enregistrer.