Aller au contenu

Un agent de codage peut tester l’inscription de votre app comme le ferait une personne : la compiler, la lancer dans le iOS Simulator, remplir le formulaire avec une adresse de test Proxy Mail QA, puis saisir le code ou ouvrir le lien de l’e-mail. Proxy Mail QA fournit à l’agent l’adresse et le code ou lien de l’e-mail ; les propres outils de l’agent pilotent le simulateur.

Chaque configuration ci-dessous commence avec Proxy Mail QA connecté à l’agent : collez la configuration en un seul prompt, ou connectez le MCP server à la main.

Pour essayer avant de lancer un agent sur votre propre app, utilisez l’exemple iOS : une petite inscription avec activation par e-mail et sans serveur. Vous envoyez vous-même son e-mail d’activation, depuis votre propre compte de messagerie, et l’agent récupère le code depuis Proxy Mail QA.

Claude Code Desktop sur un Mac peut exécuter votre app dans un simulateur à côté de la conversation, la parcourir et lire l’écran (guide de Anthropic). Il faut Xcode avec la plateforme iOS installée, et vous autorisez Claude à utiliser chaque simulateur une fois.

Ouvrez votre projet iOS dans une session Claude Code Desktop avec Proxy Mail QA connecté, et demandez :

Compile l’app et exécute-la dans le simulateur. Inscris-toi avec une nouvelle adresse de test Proxy Mail QA, avec le mot de passe qu’elle te donne, puis saisis le code de vérification de l’e-mail et vérifie que l’app affiche le compte comme vérifié.

Claude ensuite :

  1. Compile et lance l’app dans le simulateur.
  2. Appelle create_address, avec password: true, pour obtenir une nouvelle adresse et un mot de passe.
  3. Touche le formulaire d’inscription et les saisit.
  4. Appelle wait_for_code (ou wait_for_link) pour obtenir le code ou le lien de l’e-mail.
  5. Saisit le code, ou ouvre le lien dans le simulateur pour que l’app le traite. L’ouverture d’un lien suit le mode d’autorisation de votre session.

Pour un lien qui doit ouvrir l’app, demandez ce lien : « ouvre le lien de vérification de l’e-mail dans l’app ». Si l’e-mail contient à la fois un lien web et un lien d’app (myapp://…), le lien web vient en premier ; wait_for_link avec app: true (ou app=true de REST API) demande celui de l’app. iOS demande « Ouvrir dans votre app ? » avant qu’un lien d’app l’ouvre, et Claude touche Ouvrir.

L’écran du simulateur peut afficher une étape avec un léger retard : Claude vérifie donc sur une capture d’écran ce qu’il a saisi avant de toucher le bouton, et en prend une autre avant de conclure qu’une étape a échoué.

Les captures du volet du simulateur sont envoyées à Anthropic comme le reste de la conversation : n’utilisez donc que des comptes de test sur ce simulateur. Les adresses et mots de passe Proxy Mail QA sont des comptes de test par conception.

Xcode peut partager ses outils de compilation et de projet avec un agent que vous exécutez en dehors, via son propre MCP server de Xcode (guide d’Apple) :

  1. Dans Xcode, choisissez Xcode → Settings → Intelligence, et sous Model Context Protocol, activez Allow external agents to use Xcode tools.

  2. Ajoutez les outils de Xcode à l’agent :

    claude mcp add --transport stdio xcode -- xcrun mcpbridge

    Pour Codex :

    codex mcp add xcode -- xcrun mcpbridge
  3. Ouvrez votre projet dans Xcode, puis donnez à l’agent la consigne ci-dessus.

Avec les deux serveurs connectés, l’agent compile via Xcode et obtient l’adresse de test et l’e-mail via Proxy Mail QA.

Les agents intégrés de Xcode (Claude Agent, Codex et Gemini) peuvent utiliser des serveurs MCP supplémentaires depuis leurs dossiers de configuration sous ~/Library/Developer/Xcode/CodingAssistant/ (ClaudeAgentConfig, codex et gemini), et installer des plug-ins d’agent depuis Intelligence settings → Plug-ins → Add Plug-in (guide d’Apple).

Notre plugin pour Claude Code regroupe le MCP server et une skill qui décrit le parcours d’inscription ; l’ajouter depuis son URL devrait donner les mêmes outils à Claude Agent de Xcode. Nous n’avons pas encore testé la prise en charge des plug-ins de Xcode : si cela ne fonctionne pas, utilisez plutôt Claude Code ou Codex avec Xcode.

Quelle que soit la façon dont l’agent est connecté, il peut couvrir davantage du parcours :

  • Un code réparti en cases. Beaucoup d’apps affichent une case par chiffre. L’agent touche la première case et saisit le code entier, que la plupart des apps répartissent entre les cases, puis vérifie que chaque chiffre est en place avant de continuer : un code partiel compte comme une tentative erronée.
  • Un formulaire d’inscription plus long. Pour un formulaire qui demande aussi un nom d’utilisateur avec des règles, une date de naissance ou un pays, form_values fournit une valeur pour chaque champ à partir d’une nouvelle adresse créée pour lui.
  • L’e-mail lui-même. Une fois le code ou le lien reçu, check_email avec expect_host défini sur le domaine qu’ouvrent les liens de votre app (son domaine Universal Link, par exemple) vérifie que le lien y mène, ainsi que SPF, DKIM, DMARC et une expiration indiquée. count_emails détecte un second e-mail envoyé par erreur.
  • Un serveur de développement sur votre Mac. Le simulateur joint votre Mac à l’adresse localhost : les liens vers localhost:3000 d’une version de développement sont donc attendus. Demandez à l’agent de le marquer comme environnement de développement (mark_dev_host), ou ajoutez-le dans les paramètres du projet, et check_email accepte ces liens au lieu de les faire échouer.
  • Le même compte la prochaine fois. Demandez à l’agent d’enregistrer où le compte est utilisé (environment, comme staging, et des tags comme ios) lors de sa création, afin que list_addresses le retrouve. Avec une clé d’API autorisée à lire les mots de passe enregistrés, get_sign_in renvoie le compte et son mot de passe en un seul appel.
  • Un rapport. Demandez un rapport d’exécution : l’agent appelle start_run au début et finish_run à la fin, qui renvoie le rapport en Markdown.

Les mêmes outils testent ce que l’app envoie après l’inscription :

  • Le coupon. Après l’inscription à une offre dans l’app, l’agent attend avec wait_for_code et kind: coupon, qui renvoie le coupon avec sa remise et sa date de fin, ainsi que le délai (after_seconds). Il saisit le coupon dans le champ promo de l’app, réparti en cases comme pour un code.
  • Le paiement, uniquement en sandbox. Utilisez les tests StoreKit dans Xcode ou le mode test propre à l’app, jamais une vraie carte ni un vrai achat. L’agent enregistre ce qu’a fait l’app avec record_coupon_result : accepted, rejected ou error, avec le message de l’app. Réessayer le même code vérifie qu’un code à usage unique est refusé.
  • Un coupon sous forme de lien qui ouvre l’app, comme myapp://redeem?code=… : wait_for_link avec app: true le renvoie, et l’agent l’ouvre dans le simulateur avec xcrun simctl openurl booted et le lien.
  • Une offre par personne. S’inscrire à nouveau avec une variante de la même adresse (get_address_variants les liste, comme name+promo1@…), puis check_offers, montre si l’app a accordé l’offre deux fois.
  • Noms et mots de passe délicats. get_name_variants et get_password_variants fournissent des valeurs pour les autres champs du formulaire (apostrophes, accents, autres écritures, chaque classe de symboles, les limites du champ) ; l’agent saisit chacune et indique ce qu’a fait l’application.
  • Consentement. Options d’inscription et paramètres de notification : l’agent enregistre son choix avec record_consent (et si l’option était activée au départ), et check_email évalue le marketing qui suit selon les règles du lieu de résidence du persona.
  • Désabonnement, depuis l’écran des paramètres de l’app ou via le lien de l’e-mail ouvert dans le simulateur : l’agent appelle alors mark_unsubscribed, et plus tard check_unsubscribe liste tout e-mail marketing reçu ensuite. Les reçus doivent continuer d’arriver.

Pour Android, consultez Tester les apps Android avec un agent de codage.

Pour conserver la vérification sous forme de test UI exécuté dans CI, consultez iOS (XCUITest), ou Maestro pour un parcours qui couvre aussi Android. Leurs helpers font la même chose dans un test : vérifier et compter les e-mails, se connecter avec un compte enregistré ou en emprunter un, et ajouter chaque test au rapport de la pull request.

Une question sur cette page ?

Posez votre question dans la langue de votre choix. La documentation peut y répondre tout de suite, ou vous pouvez l'envoyer à l'équipe Proxy Mail QA, qui répond en anglais.

Interroger la documentation