Dans Robot Framework, la fonctionnalité Template (modèle de test) est très utile car elle permet de transformer un cas de test basé sur des mots-clés en un style de test piloté par des données. Cela signifie que vous pouvez exécuter la même logique de test avec plusieurs ensembles d'entrées différentes.
Comprendre le modèle de test
En résumé :
- Test piloté par mots-clés : Le cas de test se compose d'une série de mots-clés et de leurs paramètres.
- Test piloté par données (via Template) : Le corps du cas de test n'est plus composé de séquences de mots-clés spécifiques, mais plutôt d'un ensemble de données de test. Vous devez définir un mot-clé modèle, qui définit la logique de test à répéter, et chaque ligne de données dans le cas de test est transmise en tant que paramètre à ce mot-clé modèle.
Un seul [Template] peut être utilisé dans un cas de test, et vous ne pouvez pas mélanger des mots-clés avec [Template] et des mots-clés ordinaires dans le même cas de test.
Comment configurer un modèle de test
Il existe deux façons principales de cnofigurer un modèle de test :
- Pour un seul cas de test : Utiliser
[Template]à l'intérieur du cas de test. - Pour tous les cas de test : Utiliser
Test Templatedans la section Settings du fichier de test. Si un cas de test définit individuellement[Template], cela écrase leTest Templatedéfini au niveau du fichier.
Utilisation détaillée des modèles de test
Examinons quelques scénarios courants pour comprendre comment utiliser les modèles.
1. Utilisation de base
C'est la méthode la plus directe : vous avez un mot-clé qui accepte des paramètres, puis vous utilisez le modèle pour appeler ce mot-clé avec plusieurs ensembles de données.
*** Cas de Tests ***
Cas de test normal
Exemple de mot-clé premier argument deuxième argument
Cas de test utilisant un modèle
[Template] Exemple de mot-clé
premier argument deuxième argument
troisième argument quatrième argument
cinquième argument sixième argument
*** Mots-clés ***
Exemple de mot-clé
[Arguments] ${arg1} ${arg2}
Log Argument 1: ${arg1}, Argument 2: ${arg2}
Dans cet exemple, "Cas de test utilisant un modèle" exécute trois fois le mot-clé "Exemple de mot-clé".
Version de test Web (utilisant SeleniumLibrary)
*** Paramètres ***
Bibliothèque SeleniumLibrary
Bibliothèque Collections
*** Variables ***
${NAVIGATEUR} chrome
${URL_CONNEXION} http://localhost:8080/login
${RETARD} 0.5
*** Cas de Tests ***
Test de fonction de connexion Web piloté par données
[Template] Modèle de test de connexion Web
[Configuration] Ouvrir navigateur vers page de connexion
[Nettoyage] Fermer navigateur
# Nom d'utilisateur Mot de passe Résultat attendu Élément attendu
utilisateur_test mot_de_passe_correct succès id:message_bienvenue
mauvais_utilisateur mauvais_mot_de_passe échec id:message_erreur
${VIDE} certains_mots_de_passe échec id:erreur_nom_utilisateur
utilisateur_test ${VIDE} échec id:erreur_mot_de_passe
*** Mots-clés ***
Ouvrir navigateur vers page de connexion
Ouvrir Navigateur ${URL_CONNEXION} ${NAVIGATEUR}
Définir Taille Fenêtre 1200 800
Définir Vitesse Selenium ${RETARD}
Fermer navigateur
Fermer Navigateur
Modèle de test de connexion Web
[Arguments] ${nom_utilisateur} ${mot_de_passe} ${resultat_attendu} ${élément_attendu}
# Effacer et saisir nom d'utilisateur
Exécuter Mot-clé Si '${nom_utilisateur}' != '${VIDE}' Saisir Texte id:nom_utilisateur ${nom_utilisateur}
# Effacer et saisir mot de passe
Exécuter Mot-clé Si '${mot_de_passe}' != '${VIDE}' Saisir Texte id:mot_de_passe ${mot_de_passe}
# Cliquer sur bouton de connexion
Cliquer Bouton id:bouton_connexion
# Valider selon résultat attendu
Exécuter Mot-clé Si '${resultat_attendu}' == 'succès' Valider Connexion Réussie ${élément_attendu}
... SINON Valider Connexion Échouée ${élément_attendu}
# Retourner à la page de connexion si nécessaire
Exécuter Mot-clé Et Ignorer Erreur Aller À ${URL_CONNEXION}
Valider Connexion Réussie
[Arguments] ${élément_attendu}
Attendre Jusqu'à Ce Que L'Élément Soit Visible ${élément_attendu} 5s
Log Validation de connexion réussie passée
Valider Connexion Échouée
[Arguments] ${élément_attendu}
Attendre Jusqu'à Ce Que L'Élément Soit Visible ${élément_attendu} 5s
Log Validation de connexion échouée passée
Exemple de rapport de test
Après l'exécution des tests ci-dessus, vous obtiendrez un rapport similaire à celui-ci :
Cas de test: Les identifiants de connexion valides devraient réussir
├── Tester fonction de connexion (utilisateur_test, mot_de_passe_correct, succès, message_bienvenue) ✓ PASS
├── Tester fonction de connexion (admin, admin123, succès, bienvenue) ✓ PASS
└── Tester fonction de connexion (user@test.com, Pass123!, succès, tableau_de_bord) ✓ PASS
Cas de test: Les identifiants de connexion invalides devraient échouer
├── Tester fonction de connexion (utilisateur_invalide, mauvais_mot_de_passe, échec, nom d'utilisateur ou mot de passe incorrect) ✓ PASS
├── Tester fonction de connexion (, mot_de_passe_correct, échec, nom d'utilisateur ne peut être vide) ✓ PASS
├── Tester fonction de connexion (utilisateur_test, , échec, mot de passe ne peut être vide) ✓ PASS
└── Tester fonction de connexion (, , échec, veuillez entrer un nom d'utilisateur et un mot de passe) ✓ PASS