most popular test automation frameworks with pros
Dans les derniers didacticiels Selenium, nous avons discuté de divers commandes dans WebDriver , gestion des éléments Web tels que les tableaux Web, les cadres et gestion des exceptions dans les scripts Selenium.
Nous avons discuté de chacune de ces commandes avec des extraits de code et des exemples afin de vous permettre d'utiliser ces commandes efficacement chaque fois que vous êtes confronté à des situations similaires. Parmi les commandes dont nous avons parlé dans le didacticiel précédent, peu d'entre elles ont la plus haute importance.
Alors que nous avançons dans la série Selenium, nous concentrerons notre attention sur Création d'un framework d'automatisation dans les prochains tutoriels à venir. Nous ferions également la lumière sur divers aspects d'un cadre d'automatisation, les types de cadres d'automatisation, les avantages de l'utilisation d'un cadre et les composants de base qui constituent un cadre d'automatisation.
Ce que vous apprendrez:
- Qu'est-ce que Framework?
- Framework d'automatisation des tests
- Types de cadre d'automatisation des tests
- # 1) Cadre de test basé sur des modules
- # 2) Cadre de test d'architecture de bibliothèque
- # 3) Cadre de test basé sur les données
- # 4) Cadre de test basé sur les mots clés
- # 5) Cadre de test hybride
- # 6) Cadre de développement axé sur le comportement
- Conclusion
- lecture recommandée
Qu'est-ce que Framework?
Un cadre est considéré comme une combinaison de protocoles, de règles, de normes et de lignes directrices établis qui peuvent être incorporés ou suivis dans leur ensemble afin de tirer parti des avantages de l'échafaudage fourni par le cadre.
Prenons un scénario réel.
Nous utilisons très souvent des ascenseurs ou des ascenseurs. Il y a quelques lignes directrices qui sont mentionnées dans l'ascenseur à suivre et à prendre en compte afin de tirer le meilleur parti du système et d'un service prolongé.
Ainsi, les utilisateurs ont peut-être remarqué les consignes suivantes:
- Vérifiez la capacité maximale de l'ascenseur et ne montez pas dans un ascenseur si la capacité maximale est atteinte.
- Appuyez sur le bouton d'alarme en cas d'urgence ou de problème.
- Permettez au passager de descendre de l'ascenseur le cas échéant avant d'entrer dans l'ascenseur et de se tenir à l'écart des portes.
- En cas d'incendie dans le bâtiment ou en cas de situation aléatoire, évitez d'utiliser l'ascenseur.
- Ne jouez pas et ne sautez pas dans l'ascenseur.
- Ne fumez pas à l'intérieur de l'ascenseur.
- Appelez à l'aide / assistance si la porte ne s'ouvre pas ou si l'ascenseur ne fonctionne pas du tout. N'essayez pas d'ouvrir les portes avec force.
Il peut y avoir beaucoup plus de règles ou d'ensembles de directives. Ainsi, ces directives, si elles sont suivies, rendent le système plus avantageux, accessible, évolutif et moins gênant pour les utilisateurs.
Maintenant, comme nous parlons de «Test Automation Frameworks», concentrons-nous sur eux.
Framework d'automatisation des tests
Un «cadre d'automatisation de test» est un échafaudage conçu pour fournir un environnement d'exécution pour les scripts de test d'automatisation. Le cadre offre à l'utilisateur divers avantages qui les aident à développer, exécuter et rapporter efficacement les scripts de test d'automatisation. Cela ressemble plus à un système qui a été créé spécifiquement pour automatiser nos tests.
Dans un langage très simple, nous pouvons dire qu'un cadre est un mélange constructif de diverses lignes directrices, normes de codage, concepts, processus, pratiques, hiérarchies de projet, modularité, mécanisme de reporting, injections de données de test, etc. aux tests d'automatisation des piliers. Ainsi, l'utilisateur peut suivre ces directives tout en automatisant l'application pour tirer parti de divers résultats productifs.
Les avantages peuvent prendre différentes formes comme la facilité de script, l'évolutivité, la modularité, la compréhensibilité, la définition de processus, la réutilisation, le coût, la maintenance etc. Ainsi, pour pouvoir profiter de ces avantages, il est conseillé aux développeurs d'utiliser un ou plusieurs des le cadre d'automatisation des tests.
De plus, le besoin d'un Framework d'automatisation de test unique et standard se pose lorsque vous avez un groupe de développeurs travaillant sur les différents modules d'une même application et lorsque nous voulons éviter les situations où chacun des développeurs met en œuvre son approche de l'automatisation.
Noter : Notez qu'un framework de test est toujours indépendant de l'application, c'est-à-dire qu'il peut être utilisé avec n'importe quelle application, quelles que soient les complications (comme la pile technologique, l'architecture, etc.) de l'application testée. Le cadre doit être évolutif et maintenable.
Avantage du cadre d'automatisation des tests
- Réutilisabilité du code
- Couverture maximale
- Scénario de récupération
- Maintenance à faible coût
- Intervention manuelle minimale
- Rapports faciles
Types de cadre d'automatisation des tests
Maintenant que nous avons une idée de base de ce qu'est un Framework d'automatisation, dans cette section, nous vous présentons les différents types de Frameworks d'automatisation de test disponibles sur le marché. Nous essaierions également de faire la lumière sur leurs avantages et inconvénients et leurs recommandations en matière de convivialité.
Il existe une gamme divergente de cadres d'automatisation disponibles de nos jours. Ces cadres peuvent différer les uns des autres en fonction de leur prise en charge de différents facteurs clés pour l'automatisation comme la réutilisabilité, la facilité de maintenance, etc.
c ++ questions et réponses pratiques pdf
Laissez-nous discuter des quelques cadres d'automatisation de test les plus couramment utilisés:
- Cadre de test basé sur des modules
- Framework de test d'architecture de bibliothèque
- Cadre de test basé sur les données
- Cadre de test basé sur les mots clés
- Cadre de test hybride
- Cadre de développement axé sur le comportement
(cliquez sur l'image pour l'agrandir)
Laissez-nous discuter de chacun d'eux en détail.
Mais avant cela, je voudrais également mentionner que malgré le fait d'avoir ce cadre, l'utilisateur est toujours mis à profit pour construire et concevoir son propre cadre qui convient le mieux aux besoins de son projet.
# 1) Cadre de test basé sur des modules
Le cadre de test basé sur des modules est basé sur l'un des concepts de POO les plus connus - l'abstraction. Le cadre divise l'ensemble de «l'application sous test» en un certain nombre de modules logiques et isolés. Pour chaque module, nous créons un script de test distinct et indépendant. Ainsi, lorsque ces scripts de test sont pris ensemble, on construit un script de test plus volumineux représentant plus d'un module.
Ces modules sont séparés par une couche d’abstraction de telle sorte que les modifications apportées dans les sections de l’application n’ont pas d’effet sur ce module.
Avantages:
- Le cadre introduit le haut niveau de modularisation qui conduit à une maintenance plus facile et rentable.
- Le cadre est à peu près évolutif
- Si les modifications sont implémentées dans une partie de l'application, seul le script de test représentant cette partie de l'application doit être corrigé pour laisser toutes les autres parties intactes.
Les inconvénients:
- Lors de l'implémentation des scripts de test pour chaque module séparément, nous intégrons les données de test (données avec lesquelles nous sommes censés effectuer des tests) dans les scripts de test. Ainsi, chaque fois que nous sommes censés tester avec un ensemble différent de données de test, cela nécessite que les manipulations soient effectuées dans les scripts de test.
# 2) Cadre de test d'architecture de bibliothèque
Le Framework de test d'architecture de bibliothèque est fondamentalement et fondamentalement construit sur un Framework de test basé sur des modules avec quelques avantages supplémentaires. Au lieu de diviser l'application testée en scripts de test, nous séparons l'application en fonctions ou plutôt des fonctions communes peuvent également être utilisées par les autres parties de l'application. Nous créons ainsi une bibliothèque commune constituant des fonctions communes pour l'application testée. Par conséquent, ces bibliothèques peuvent être appelées à partir des scripts de test chaque fois que nécessaire.
Le principe de base derrière le cadre est de déterminer les étapes communes et de les regrouper en fonctions sous une bibliothèque et d'appeler ces fonctions dans les scripts de test chaque fois que nécessaire.
Exemple : Les étapes de connexion peuvent être combinées dans une fonction et conservées dans une bibliothèque. Ainsi, tous les scripts de test nécessaires pour se connecter à l'application peuvent appeler cette fonction au lieu d'écrire à nouveau le code.
Avantages:
- À l'instar de Module Based Framework, ce framework introduit également le haut niveau de modularisation qui conduit à une maintenance et une évolutivité plus faciles et rentables.
- Comme nous créons des fonctions communes qui peuvent être utilisées efficacement par les divers scripts de test à travers le Framework. Ainsi, le cadre introduit un grand degré de réutilisation.
Les inconvénients:
- À l'instar de Module Based Framework, les données de test sont logées dans les scripts de test, ainsi toute modification des données de test nécessiterait également des modifications du script de test.
- Avec l'introduction des bibliothèques, le framework devient un peu compliqué.
# 3) Cadre de test basé sur les données
Lors de l'automatisation ou du test d'une application, il peut parfois être nécessaire de tester la même fonctionnalité plusieurs fois avec le jeu différent de données d'entrée. Ainsi, dans de tels cas, nous ne pouvons pas laisser les données de test incorporées dans le script de test. Il est donc conseillé de conserver les données de test dans une base de données externe en dehors des scripts de test.
Data Driven Testing Framework aide l'utilisateur à séparer la logique du script de test et les données de test les unes des autres. Il permet à l'utilisateur de stocker les données de test dans une base de données externe. Les bases de données externes peuvent être des fichiers de propriétés, des fichiers xml, des fichiers Excel, des fichiers texte, des fichiers CSV, des référentiels ODBC, etc. Les données sont classiquement stockées dans des paires «clé-valeur». Ainsi, la clé peut être utilisée pour accéder et peupler les données dans les scripts de test.
Noter : Les données de test stockées dans un fichier externe peuvent appartenir à la matrice de valeur attendue ainsi qu'à la matrice de valeurs d'entrée.
qa manager entretien questions réponses pdf
Exemple:
Comprenons le mécanisme ci-dessus à l'aide d'un exemple.
Considérons la fonctionnalité «Gmail - Connexion».
Étape 1: La première et la plus importante étape consiste à créer un fichier externe qui stocke les données de test (données d'entrée et données attendues). Prenons par exemple une feuille Excel.
Étape 2: L'étape suivante consiste à remplir les données de test dans le script de test d'automatisation. À cette fin, plusieurs API peuvent être utilisées pour lire les données de test.
public void readTD(String TestData, String testcase) throws Exception { TestData=readConfigData(configFileName,'TestData',driver); testcase=readConfigData(configFileName,'testcase',driver); FileInputStream td_filepath = new FileInputStream(TestData); Workbook td_work =Workbook.getWorkbook(td_filepath); Sheet td_sheet = td_work.getSheet(0); if(counter==0) { for (int i = 1,j = 1; i <= td_sheet.getRows()-1; i++){ if(td_sheet.getCell(0,i).getContents().equalsIgnoreCase(testcase)){ startrow = i; arrayList.add(td_sheet.getCell(j,i).getContents()); testdata_value.add(td_sheet.getCell(j+1,i).getContents());}} for (int j = 0, k = startrow +1; k <= td_sheet.getRows()-1; k++){ if (td_sheet.getCell(j,k).getContents()==''){ arrayList.add(td_sheet.getCell(j+1,k).getContents()); testdata_value.add(td_sheet.getCell(j+2,k).getContents());}} } counter++; }
La méthode ci-dessus permet de lire les données de test et l'étape de test ci-dessous aide l'utilisateur à saisir les données de test sur l'interface graphique.
element.sendKeys (obj_value.get (obj_index));
Avantages:
- La caractéristique la plus importante de ce framework est qu'il réduit considérablement le nombre total de scripts requis pour couvrir toutes les combinaisons possibles de scénarios de test. Ainsi, une moindre quantité de code est nécessaire pour tester un ensemble complet de scénarios.
- Tout changement dans la matrice de données de test n'entraverait pas le code du script de test.
- Augmente la flexibilité et la maintenabilité
- Un seul scénario de test peut être exécuté en modifiant les valeurs des données de test.
Les inconvénients:
- Le processus est complexe et nécessite un effort supplémentaire pour trouver les sources de données de test et les mécanismes de lecture.
- Nécessite la maîtrise d'un langage de programmation utilisé pour développer des scripts de test.
# 4) Cadre de test basé sur les mots clés
Le framework de test piloté par mot-clé est une extension du framework de test piloté par les données en ce sens qu'il sépare non seulement les données de test des scripts, mais conserve également le certain ensemble de code appartenant au script de test dans un fichier de données externe.
Ces ensembles de code sont connus sous le nom de mots-clés et, par conséquent, le cadre est ainsi nommé. Les mots-clés sont auto-guidés quant aux actions à effectuer sur l'application.
Les mots-clés et les données de test sont stockés dans une structure de type tabulaire et, par conséquent, il est également généralement considéré comme un cadre piloté par table. Notez que les mots-clés et les données de test sont des entités indépendantes de l'outil d'automatisation utilisé.
ExempleCas de test du framework de test piloté par mots-clés
Dans l'exemple ci-dessus, des mots clés tels que connexion, clic et vérification du lien sont définis dans le code.
En fonction de la nature des mots-clés de l'application peuvent être dérivés. Et tous les mots-clés peuvent être réutilisés plusieurs fois dans un seul scénario de test. La colonne Locator contient la valeur du localisateur qui est utilisée pour identifier les éléments Web à l'écran ou les données de test qui doivent être fournies.
Tous les mots-clés requis sont conçus et placés dans le code de base du framework.
Avantages:
- Outre les avantages fournis par les tests pilotés par les données, le framework piloté par les mots-clés ne nécessite pas que l'utilisateur possède des connaissances en matière de scripts, contrairement aux tests pilotés par les données.
- Un seul mot-clé peut être utilisé dans plusieurs scripts de test.
Les inconvénients:
- L'utilisateur doit être bien familiarisé avec le mécanisme de création de mots-clés pour pouvoir exploiter efficacement les avantages fournis par le cadre.
- Le cadre se complique progressivement à mesure qu'il se développe et qu'un certain nombre de nouveaux mots clés sont introduits.
# 5) Cadre de test hybride
Comme son nom l'indique, le cadre de test hybride est une combinaison de plusieurs cadres mentionnés ci-dessus. La meilleure chose à propos d'une telle configuration est qu'elle tire parti des avantages de toutes sortes de frameworks associés.
Exempledu cadre hybride
La feuille de test contiendrait à la fois les mots-clés et les données.
Dans l'exemple ci-dessus, la colonne de mots-clés contient tous les mots-clés requis utilisés dans le cas de test particulier et la colonne de données gère toutes les données requises dans le scénario de test. Si une étape ne nécessite aucune entrée, elle peut être laissée vide.
# 6) Cadre de développement axé sur le comportement
Le cadre de développement axé sur le comportement permet l'automatisation des validations fonctionnelles dans un format facilement lisible et compréhensible pour les analystes d'affaires, les développeurs, les testeurs, etc. De tels cadres ne nécessitent pas nécessairement que l'utilisateur se familiarise avec le langage de programmation. Il existe différents outils disponibles pour BDD comme le concombre, Jbehave, etc. Les détails du cadre BDD sont discutés plus loin dans le didacticiel Cucumber. Nous avons également discuté des détails sur le langage Gherkin pour écrire des cas de test dans Cucumber.
Composants du cadre de test d'automatisation
Bien que la représentation picturale ci-dessus d'un cadre soit explicite, nous soulignerions tout de même quelques points.
- Référentiel d'objets : L'acronyme du référentiel d'objets comme OR est constitué de l'ensemble des types de localisateurs associés aux éléments Web.
- Données de test: Les données d'entrée avec lesquelles le scénario serait testé et il peut s'agir des valeurs attendues avec lesquelles les résultats réels seraient comparés.
- Fichier de configuration / Constantes / Paramètres d'environnement : Le fichier stocke les informations concernant l'URL de l'application, les informations spécifiques au navigateur, etc. Ce sont généralement les informations qui restent statiques dans tout le framework.
- Génériques / Logiques de programme / Lecteurs : Ce sont les classes qui stockent les fonctions qui peuvent être couramment utilisées dans tout le framework.
- Créer des outils et une intégration continue : Ce sont les outils qui facilitent les capacités du framework pour générer des rapports de test, des notifications par e-mail et des informations de journalisation.
Conclusion
Les frameworks illustrés ci-dessus sont les frameworks les plus populaires utilisés par la fraternité de test. Il existe également divers autres cadres sur place. Pour tous les autres tutoriels, nous nous baserions sur le Cadre de test basé sur les données .
Dans ce didacticiel, nous avons abordé les bases d'un Framework d'automatisation. Nous avons également discuté des types de cadres disponibles sur le marché.
Tutoriel suivant # 21 : Dans le prochain tutoriel, nous allons brièvement vous présenter l'exemple de cadre, le MS Excel qui stockerait les données de test, les manipulations Excel, etc.
Jusque-là, n'hésitez pas à poser vos questions sur les cadres d'automatisation.
lecture recommandée
- 7 facteurs affectant l'estimation du test du projet d'automatisation du sélénium - Tutoriel Selenium # 32
- Introduction à Selenium WebDriver - Tutoriel Selenium # 8
- Script Selenium efficace et scénarios de dépannage - Tutoriel Selenium # 27
- Débogage de scripts Selenium avec des journaux (Tutoriel Log4j) - Tutoriel Selenium # 26
- 30+ meilleurs tutoriels sur Selenium: Apprenez le sélénium avec de vrais exemples
- Tutoriels Eclipse détaillés pour les débutants
- Comment localiser des éléments dans les navigateurs Chrome et IE pour créer des scripts Selenium - Tutoriel Selenium # 7
- Tutoriel Cucumber Selenium: Intégration Cucumber Java Selenium WebDriver