tester:ui-test
Teste automatiquement une interface utilisateur dans Chrome : navigation, clics, validation visuelle, tests fonctionnels, responsive, comportement et debug. Génère un rapport détaillé avec screenshots et optionnellement un GIF du parcours.
- License 许可
- MIT
- 最近更新
- 2026-03-02
- Stars
- ★ 0
- Forks
- 0
01 前言 Front Matter
- name
- tester:ui-test
- model
- sonnet
- license
- MIT
- version
- 1.0.0
- description
- Teste automatiquement une interface utilisateur dans Chrome : navigation, clics, validation visuelle, tests fonctionnels, responsive, comportement et debug. Génère un rapport détaillé avec screenshots et optionnellement un GIF du parcours.
- allowed-tools
- [ "mcp__claude-in-chrome__tabs_context_mcp", "mcp__claude-in-chrome__tabs_create_mcp", "mcp__claude-in-chrome__navigate", "mcp__claude-in-chrome__read_page", "mcp__claude-in-chrome__find", "mcp__claude-in-chrome__computer", "mcp__claude-in-chrome__form_input", "mcp__claude-in-chrome__javascript_tool", "mcp__claude-in-chrome__read_console_messages", "mcp__claude-in-chrome__read_network_requests", "mcp__claude-in-chrome__resize_window", "mcp__claude-in-chrome__gif_creator", "mcp__claude-in-chrome__update_plan", "Write", "Read", "Bash" ]
03 SKILL.md 正文
Chrome UI Test Skill
Instructions à Exécuter
IMPORTANT : Exécute ce workflow étape par étape de manière proactive.
Usage
/tester:ui-test <URL> [options]
Arguments :
<URL>: URL de la page à tester (obligatoire)
Options :
--scenario="description": Scénario de test à exécuter (ex: "login avec email/password")--responsive: Tester sur 3 tailles d'écran (mobile 375x667 + tablette 768x1024 + desktop 1920x1080)--mobile: Tester uniquement sur mobile (375x667)--tablet: Tester uniquement sur tablette (768x1024)--desktop: Tester uniquement sur desktop (1920x1080)--visual: Capturer des screenshots pour validation visuelle--debug: Activer le mode debug (console logs, network requests)--gif: Enregistrer un GIF du parcours utilisateur--viewport=WIDTHxHEIGHT: Taille de fenêtre custom (ex: 1366x768)--help: Afficher un résumé des actions qui seront effectuées (avec les options actives) et demander confirmation
Exemples :
# Test simple de navigation
/tester:ui-test https://example.com
# Test d'un scénario de login avec GIF
/tester:ui-test https://app.example.com/login --scenario="login avec credentials valides" --gif
# Test responsive (3 tailles : mobile + tablette + desktop)
/tester:ui-test https://example.com --responsive --visual
# Test mobile uniquement
/tester:ui-test https://m.example.com --mobile --visual
# Test desktop uniquement
/tester:ui-test https://example.com --desktop
# Debug d'une page avec erreurs
/tester:ui-test https://example.com/broken-page --debug
# Voir ce qui sera fait avant de lancer
/tester:ui-test https://example.com --mobile --visual --help
Workflow
Phase -1 : Mode Aide (si --help)
IMPORTANT : Cette phase s'exécute UNIQUEMENT si l'option --help est présente.
-
Analyser l'URL et les options
- URL cible : afficher l'URL qui sera testée
- Options actives : lister toutes les options détectées
-
Générer le résumé des actions
RÉSUMÉ DU TEST UI URL cible : [URL] Configuration viewport : [Si --responsive] -> Tests sur 3 viewports (mobile 375x667, tablette 768x1024, desktop 1920x1080) [Si --mobile] -> Test mobile uniquement (375x667) [Si --tablet] -> Test tablette uniquement (768x1024) [Si --desktop] -> Test desktop uniquement (1920x1080) [Si --viewport=WxH] -> Viewport custom WxH [Sinon] -> Viewport par défaut (1920x1080) Actions prévues : 1. Créer un nouvel onglet Chrome dédié 2. [Si viewport spécifique] Redimensionner la fenêtre 3. [Si --gif] Démarrer l'enregistrement GIF 4. Naviguer vers l'URL 5. [Si --scenario] Exécuter le scénario : [description du scénario] 6. [Sinon] Explorer la page (tests basiques) 7. [Si --visual] Capturer des screenshots à chaque étape 8. [Si --debug] Analyser console logs et network requests 9. [Si --responsive] Répéter tests sur chaque viewport 10. [Si --gif] Arrêter enregistrement et exporter le GIF 11. Générer rapport détaillé Options actives : [Liste toutes les options avec leur signification] Résultats attendus : - Rapport Markdown : /tmp/claude-*/scratchpad/ui-test-report-[timestamp].md [Si --visual] - Screenshots : /tmp/claude-*/scratchpad/step-*.png [Si --gif] - GIF animé : téléchargé dans Downloads/ui-test-recording-*.gif [Si --responsive] - [X] screenshots (X par viewport) Durée estimée : [estimer selon options : 30s simple, 1-2min avec scénario, 2-3min responsive, etc.] -
Demander confirmation
- Afficher : "Voulez-vous lancer ce test ? (oui/non)"
- Attendre réponse utilisateur
- Si "oui" ou "yes" ou "o" : continuer vers Phase 0
- Si "non" ou "no" ou "n" : arrêter et afficher "Test annulé"
- Toute autre réponse : redemander
Phase 0 : Initialisation (OBLIGATOIRE)
-
Récupérer le contexte Chrome
Utiliser mcp__claude-in-chrome__tabs_context_mcp avec createIfEmpty=true -
Créer un nouvel onglet dédié
Utiliser mcp__claude-in-chrome__tabs_create_mcp Stocker le tabId pour toutes les opérations suivantes -
Présenter le plan à l'utilisateur
Utiliser mcp__claude-in-chrome__update_plan avec : - domains: liste des domaines qui seront visités - approach: liste des actions qui seront effectuées -
Configurer la fenêtre
- Si
--viewport=WxH: utiliserresize_windowavec les dimensions custom - Si
--mobile: utiliserresize_windowavec 375x667 - Si
--tablet: utiliserresize_windowavec 768x1024 - Si
--desktop: utiliserresize_windowavec 1920x1080 - Si
--responsive: préparer liste des 3 viewports à tester (375x667, 768x1024, 1920x1080) - Sinon (aucune option) : viewport par défaut 1920x1080
- Si
-
Démarrer l'enregistrement GIF (si --gif)
Utiliser gif_creator avec action="start_recording"
Phase 1 : Navigation et Exploration
-
Naviguer vers l'URL
Utiliser navigate avec l'URL fournie et le tabId Attendre le chargement complet (wait 2-3 secondes) -
Capturer screenshot initial (si --visual ou --gif)
Utiliser computer avec action="screenshot" Sauvegarder avec nom descriptif -
Lire la structure de la page
Utiliser read_page pour obtenir l'arbre d'accessibilité Identifier les éléments clés : formulaires, boutons, liens -
Mode debug (si --debug)
- Lire console_messages avec pattern pertinent - Lire network_requests pour voir les appels API - Identifier erreurs JavaScript ou requêtes échouées
Phase 2 : Exécution du Scénario
Si --scenario est fourni :
-
Analyser le scénario
- Décomposer en étapes atomiques
- Identifier les éléments à manipuler
- Définir les validations attendues
-
Exécuter chaque étape
Pour chaque action : a. find ou read_page pour localiser l'élément b. computer (click/type) ou form_input pour interagir c. Attendre réaction (wait 1-2s) d. Vérifier résultat (read_page, console, network) e. Screenshot si --visual -
Validations
- Vérifier les changements de page (navigate, URL)
- Vérifier les messages d'erreur ou de succès
- Vérifier les appels API (network_requests)
- Vérifier la console (pas d'erreurs JS)
Sinon (exploration libre) :
- Tests basiques
- Vérifier que la page charge sans erreur 404/500
- Vérifier absence d'erreurs JavaScript console
- Tester les liens principaux (clic sur 2-3 liens majeurs)
- Vérifier formulaires (remplir et valider un formulaire si présent)
Phase 3 : Tests Responsive (si --responsive)
Viewports à tester :
- Mobile : 375x667 (iPhone)
- Tablette : 768x1024 (iPad)
- Desktop : 1920x1080
Pour chaque viewport :
resize_windowavec les dimensionswait1 seconde pour le reflowscreenshotavec nom incluant la tailleread_pagepour vérifier éléments visibles- Valider :
- Pas d'overflow horizontal
- Éléments empilés correctement
- Pas d'éléments coupés
- Menu mobile fonctionnel (si < 768px)
Phase 4 : Génération du Rapport
-
Arrêter l'enregistrement GIF (si --gif)
- gif_creator avec action="stop_recording" - gif_creator avec action="export", download=true - Attendre téléchargement -
Compiler les résultats
- Résumé des actions effectuées
- Screenshots capturés (liste avec descriptions)
- Erreurs détectées (console, network, visuel)
- Validations réussies/échouées
- Recommandations d'amélioration
-
Créer rapport Markdown
# Rapport de Test UI - [URL] **Date :** [timestamp] **Scénario :** [description ou "exploration libre"] **Viewport(s) :** [liste] ## Résumé - Tests réussis : X - Tests échoués : Y - Avertissements : Z ## Actions Effectuées 1. Navigation vers [URL] 2. [liste des actions] ## Résultats par Catégorie ### Navigation et Chargement - Page charge en Xs - [détails] ### Fonctionnalités - [résultats des interactions] ### Console et Erreurs - [erreurs JS trouvées] ### Network - [appels API, erreurs HTTP] ### Visuel (si --visual) - Screenshots : [liste avec chemins] ### Responsive (si --responsive) - Mobile : [résultat] - Tablette : [résultat] - Desktop : [résultat] ## Recommandations 1. [amélioration 1] 2. [amélioration 2] ## Fichiers Générés - GIF : [chemin] (si --gif) - Screenshots : [liste] -
Sauvegarder le rapport
Utiliser Write pour créer : /tmp/claude-*/scratchpad/ui-test-report-[timestamp].md
Gestion des Erreurs
Erreurs de Navigation
- URL invalide -> arrêter et signaler
- Page 404/500 -> noter dans rapport et continuer
- Timeout -> réessayer 1 fois, puis noter
Erreurs d'Interaction
- Élément introuvable -> noter et passer au suivant
- Clic échoué -> réessayer avec coordonnées ajustées
- Formulaire non soumis -> vérifier console/network
Erreurs Chrome
- Tab invalide -> recreate tab avec tabs_create_mcp
- Extension non responsive -> attendre 5s max puis timeout
Bonnes Pratiques
-
Toujours attendre après interactions
- 1-2s après click/type
- 2-3s après navigation
- Éviter les race conditions
-
Screenshots descriptifs
- Nommer :
step-01-homepage.png - Capturer AVANT et APRÈS actions critiques
- Nommer :
-
GIF Recording
- Démarrer AVANT première action
- Arrêter APRÈS dernière validation
- Screenshot initial et final pour frames propres
-
Console Logs
- Utiliser
patternpour filtrer (éviter spam) - Chercher
error|warn|failedsi debug clear=trueaprès lecture pour éviter doublons
- Utiliser
-
Network Requests
- Utiliser
urlPatternsi recherche spécifique - Vérifier status codes (4xx, 5xx)
- Noter les API lentes (> 2s)
- Utiliser
Notes Importantes
- TOUJOURS créer un nouvel onglet (tabs_create_mcp) au début
- TOUJOURS utiliser le même tabId pour toutes les opérations
- JAMAIS réutiliser un tabId d'une session précédente
- TOUJOURS présenter le plan (update_plan) avant d'agir
- Sauvegarder tous les fichiers dans le scratchpad
- Mode debug active automatiquement console + network
- GIF enregistre toutes les interactions automatiquement
04 同仓库更多 Skills
twig:make-component
Génère un Twig Component Symfony UX (classe PHP + template Twig)
symfony:voter
Genere un Voter de securite Symfony pour le controle d'acces granulaire
symfony:message
Genere un Message Symfony Messenger avec son Handler pour traitement asynchrone
symfony:mailer
Genere un email Symfony (TemplatedEmail ou Notification) avec template Twig
symfony:form
Genere un FormType Symfony avec contraintes de validation et options
symfony:event
Genere un Event Symfony + EventSubscriber ou EventListener