
Lancer un test ou une suite de tests en ligne de commande (`robot mon_test.robot`)
Apprenez à utiliser la commande `robot` pour lancer des tests individuels, des suites complètes et à exploiter les options avancées pour une exécution personnalisée de vos tests Robot Framework.
La commande `robot` : votre portail vers l'exécution des tests
L'outil principal pour exécuter des tests avec Robot Framework est la commande `robot`, accessible depuis votre terminal ou invite de commandes. Une fois Robot Framework correctement installé avec Python et Pip, cette commande devient disponible dans votre environnement système. Sa syntaxe de base est simple : `robot [options]
L'argument principal de la commande `robot` est le chemin vers le ou les fichiers `.robot` (ou d'autres formats supportés comme `.txt` ou `.tsv`) que vous souhaitez exécuter, ou le chemin vers un répertoire contenant ces fichiers. Robot Framework parcourra récursivement les répertoires pour trouver et exécuter tous les cas de test définis.
Par exemple, pour exécuter tous les tests contenus dans un fichier nommé `login_tests.robot` situé dans le répertoire courant, vous utiliseriez :
robot login_tests.robotSi vos tests sont organisés dans une structure de dossiers, comme `project/tests/functional/`, vous pouvez exécuter tous les tests de ce répertoire en spécifiant le chemin :
robot project/tests/functional/Cette simplicité permet de démarrer rapidement, mais la véritable puissance de la commande `robot` réside dans ses nombreuses options qui offrent un contrôle fin sur le processus d'exécution.
Options courantes et utiles pour contrôler l'exécution
Robot Framework propose une vaste gamme d'options en ligne de commande pour affiner l'exécution de vos tests. Voici une sélection des options les plus fréquemment utilisées et leur utilité :
- Sélection des tests à exécuter :
-tou--test: Exécute un ou plusieurs cas de test spécifiques par leur nom. Vous pouvez répéter cette option ou utiliser des patterns (*,?). Exemple :robot -t "Connexion utilisateur valide" -t "Connexion mot de passe incorrect" mes_tests.robot-sou--suite: Exécute une ou plusieurs suites de tests spécifiques. Le nom de la suite correspond généralement au nom du fichier (sans l'extension) ou au nom défini dans la section `*** Settings ***` avec `Suite Name`. Exemple :robot -s LoginTests -s SearchTests mon_projet/-iou--include: Exécute uniquement les tests qui possèdent le tag spécifié.-eou--exclude: Exclut de l'exécution les tests qui possèdent le tag spécifié. Les tags peuvent être combinés avec des opérateurs logiques comme `AND`, `OR`, `NOT`. Exemple :robot --include smoke --exclude wip mes_tests/(exécute les tests "smoke" qui ne sont pas "wip" - Work In Progress).
- Gestion des sorties et des logs :
-dou--outputdir: Spécifie le répertoire où les fichiers de résultats (output.xml,log.html,report.html) seront créés. Par défaut, c'est le répertoire courant. Exemple :robot -d results_output mes_tests.robot-oou--output: Nom du fichier XML de sortie principal. Par défaut, `output.xml`.-lou--log: Nom du fichier de log HTML. Par défaut, `log.html`.-rou--report: Nom du fichier de rapport HTML. Par défaut, `report.html`.-Lou--loglevel: Définit le niveau de verbosité des logs (TRACE,DEBUG,INFO(défaut),WARN,ERROR).TRACEest le plus verbeux.--logtitle/--reporttitle: Personnalise les titres des rapports HTML.
- Passage de variables :
-vou--variable: Permet de définir ou de surcharger la valeur d'une variable scalaire. Très utile pour adapter les tests à différents environnements (par ex., URL de base, identifiants). Exemple :robot -v BASE_URL:http://test.example.com -v USER:john mes_tests.robot--variablefile: Charge des variables depuis un fichier Python externe.
- Contrôle de l'exécution :
--dryrun: Simule une exécution sans réellement exécuter les keywords. Utile pour vérifier la syntaxe et la structure des tests, et pour voir quels tests seraient exécutés avec les options de filtrage actuelles.--exitonerror: Arrête l'exécution dès qu'un test critique échoue.--rerunfailed: Ré-exécute uniquement les tests qui ont échoué lors d'une exécution précédente (basé sur un fichier `output.xml`).
Pour obtenir la liste complète de toutes les options disponibles et leur description détaillée, vous pouvez utiliser la commande :
robot --helpMaîtriser ces options vous donne un contrôle précis sur la manière dont vos tests sont exécutés, ce qui est essentiel pour des campagnes de tests efficaces et adaptées à vos besoins spécifiques, que ce soit pour un développement local rapide ou pour une intégration robuste dans des processus automatisés.
Exemples pratiques d'utilisation de la ligne de commande
Pour illustrer concrètement, voici quelques scénarios d'utilisation de la commande `robot` :
1. Exécuter un seul fichier de test et placer les résultats dans un dossier spécifique :robot --outputdir test_results/scenario_paiement/ tests/paiement/effectuer_un_paiement.robot2. Exécuter tous les tests d'un répertoire, mais uniquement ceux tagués `smoke` et pas ceux tagués `broken` :robot --include smoke --exclude broken tests/functional/3. Exécuter un test spécifique par son nom, en passant une variable pour l'URL du site :robot --test "Vérifier la page de contact" --variable TARGET_URL:https://prod.example.com tests/contact_us.robot4. Lancer une exécution "à blanc" (dry run) pour voir quels tests seraient exécutés avec le tag `regression` :robot --dryrun --include regression tests/5. Ré-exécuter uniquement les tests qui ont échoué lors de la précédente exécution (dont le rapport est `previous_output.xml`) :robot --rerunfailed previous_output.xml --outputdir rerun_results tests/Ces exemples ne sont qu'un aperçu des possibilités. En combinant judicieusement les chemins vers les fichiers/dossiers de tests et les diverses options, vous pouvez orchestrer des exécutions très ciblées et obtenir des rapports personnalisés, ce qui rend Robot Framework extrêmement adaptable à divers contextes de projet et stratégies de test.